Python Portal
57.2K subscribers
2.27K photos
303 videos
51 files
834 links
Всё самое интересное из мира Python

Связь: @devmangx

РКН: https://clck.ru/3GMMF6
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
Принес крутейший репо для тех, кто любит учиться на реальных примерах. Тут собрано более сотни опенсорсных клонов популярных сервисов: от Airbnb до YouTube

Каждый проект снабжен ссылками на исходный код, демками, описанием стека и количеством звезд на GitHub. А у некоторых даже есть туторы по созданию

Забирайте на GitHub 🍯

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍179
Media is too big
VIEW IN TELEGRAM
Самый простой способ писать документацию к коду

Открытый проект Davia позволяет генерировать аккуратную внутреннюю документацию с визуальными диаграммами для любого кода.

Просто установи его на свою систему, следуй шагам из их документации, запусти команду в папке проекта и вуаля, он сгенерирует полную документацию со структурированными визуалами, которые можно просматривать и редактировать 💯

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍119🔥3
Ловите годноту: сети для самых маленьких - очень качественный и структурированный материал по сетям

Здесь по-человечески разбирают всё: планирование сети, настройку маршрутизаторов, коммутацию, маршрутизацию, STP, NAT, VPN, BGP, MPLS и прочие страшные буквы, которые на деле не так уж страшны

Без воды, простыми словами и с примерами. Забираем тут ☕️

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥28👍6
Экосистема Notepad просто безумная.

• Можно писать Python в Notepad
• Можно писать Java в Notepad
• Можно писать JavaScript в Notepad
• Можно писать Shell-скрипты в Notepad
• Можно собирать Dockerfile в Notepad
• Можно писать Terraform в Notepad
• Можно править YAML в Notepad

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
😁99🔥2011🤯5👍3
Выложили записи конфы «Я про бэкенд» - той самой, где раскрывали, как устроен бэкенд сегодня

Мир ускоряется: всё вокруг оцифровывается, RPS растёт, ML проникает во все сервисы подряд. Архитектуры усложняются, и поддерживать стабильность при таких масштабах - уже само по себе искусство. Но российские команды этот челлендж держат уверенно

4 октября в Москве на «Я про бэкенд» эксперты наших бигтехов делились, как решают реальные продовые задачи: от ML-инфраструктуры до рекомендательных и генеративных систем.

Особенно зашёл доклад Антона Полднева, руководителя инфраструктуры Яндекс Рекламы. Он рассказал, как их рекомендательный движок ежегодно экономит 200 тысяч CPU, и как команда перестроила архитектуру, которая держит более миллиона запросов в секунду.

Антон поделился конкретными подходами к оптимизации: от хаков на стыке с GPU до тонкой настройки балансировки. А ещё разобрал ключевые тренды в развитии инфраструктуры рекомендаций, без которых невозможно серьёзно нарастить эффективность.

В общем получилось очень насыщенно. Такое мы смотрим 👍

Посмотреть это выступление и другие доклады можно здесь:
- YouTube
- VK Видео

Реклама. ООО "Яндекс". ИНН 7736207543 Erid 2VSb5wAKbPX
8👍4
Фотоскрейпинг наконец-то подъехал!

В новом v2 эндпоинте Firecrawl теперь можно тянуть картинки с сайтов. Подходит для мультимодальных LLM-приложений, дообучения моделей и прочих задач.

Можно навесить фильтры по разрешению, соотношению сторон или типу изображения.

Уже больше 66 тысяч звезд на GitHub 😁

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
23👍5
Когда атрибут определён и в экземпляре, и в классе, при обращении Python всегда берет значение из экземпляра.

Атрибут класса используется только если в экземпляре его нет.

class Warehouse:
purpose = "storage"
region = "west"

w1 = Warehouse()
print(w1.purpose, w1.region) # storage west

w2 = Warehouse()
w2.region = "east"
print(w2.purpose, w2.region) # storage east


👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1910👍5
Опытных видно сразу

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
😁84💊9👍31
Nano-vLLM - облегченная реализация vLLM, созданная с нуля.

Это минималистичный движок для инференса LLM размером примерно 1200 строк кода на Python, который при этом показывает производительность на уровне vLLM и иногда даже выше.

Главная идея простая - дать быстрый, понятный и лёгкий движок, который можно разобрать буквально за вечер и адаптировать под свои задачи. Поддерживается кеширование, тензорный параллелизм и работа на GPU. Работает локально, без зависимости от облаков.

На тестах с моделью Qwen3-0.6B и 256 параллельными запросами Nano-vLLM показал скорость 1314.65 токенов/с против 1353.86 у vLLM. Разница не превышает 3%, при этом код Nano-vLLM проще и доступнее для модификаций.

Интерфейс совместим с vLLM, за исключением метода генерации. Примеры использования включены в репозиторий.

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
17👍5👀4🔥1
Знаешь, что неприятно реализовывать в Python?

Функцию скользящего среднего.

Ручное хранение всех значений в окне, тот ещё гемор.

Если только ты не используешь collections.deque.

Её параметр maxlen позволяет автоматически выбрасывать лишние значения из окна.

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19🔥87👀4💊1
Сегодня разработчики представили новый формат данных под названием TOON. Его уже успели окрестить сменщиком JSON. Идея простая: дать ИИ понятный, компактный и быстрый формат без лишнего мусора и перегруженной структуры.

TOON экономит токены, ускоряет обработку и уменьшает объем передаваемых данных. По заявлениям авторов, формат оптимизирован не только для хранения, но и для взаимодействия с моделями искусственного интеллекта, включая гибридные и мультимодальные системы.

Поддержка уже заявлена для JavaScript, Python, Rust, Java и еще нескольких языков, а значит разработчики могут попробовать формат прямо сейчас, без ожидания экосистемы и сторонних библиотек.

Goodbye JSON, hello TOON. 🌟

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
42🤔14
This media is not supported in your browser
VIEW IN TELEGRAM
Весь мир: простая понятная капча
Китайцы: почисть лоток

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
55😁32🤣12👍7
78 тем, которые необходимо освоить в области Data Science

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
😢42🔥15👍86
Представляю Goldman Sachs GS-Quant

Python-инструментарий для количественного анализа, созданный Goldman Sachs.

GS Quant — это Python-набор инструментов для квант-финансов, построенный на базе одной из самых мощных платформ управления рисками.

GS Quant создан для ускорения разработки квант-трейдинговых стратегий и решений для риск-менеджмента. В его основе более 25 лет опыта работы на глобальных рынках.

Чтобы получить доступ к API, нужен client id и secret. Они доступны только институциональным клиентам Goldman Sachs.

Исходники GS-Quant можно найти на GitHub:
https://github.com/goldmansachs/gs-quant

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
111👍3🔥3
Ловите очередной полезный гайд

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥88😁1613👍3
This media is not supported in your browser
VIEW IN TELEGRAM
Теперь в Minecraft можно генерировать 3D-объекты по одному промпту.

Мод Falcraft добавляет в игру продвинутый AI. Можно на лету менять текстуры блоков через NanoBanana или генерировать целые 3D-структуры одной командой прямо во время игры. 🌟

Скачать на GitHub: https://github.com/blendi-remade/falcraft?tab=readme-ov-file

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
26😁5💊4👀1
Совет по чистым тестам в Python:

В большинстве случаев твои тесты должны покрывать:

- все happy path сценарии
- edge/corner/boundary кейсы
- негативные тесты
- проверки на безопасность и некорректные вводы

import uuid
from dataclasses import dataclass
from typing import Optional


@dataclass
class User:
username: str


class InMemoryUserRepository:
def __init__(self):
self._users = []

def add(self, user: User) -> None:
self._users.append(user)

def search(self, query: Optional[str] = None) -> list[User]:
if query is None:
return self._users
else:
return [
user
for user in self._users
if query in user.username
]


# happy path
def test_search_users_without_query_lists_all_users():
user1 = User(username="john@doe.com")
user2 = User(username="marry@doe.com")
repository = InMemoryUserRepository()
repository.add(user1)
repository.add(user2)

assert repository.search() == [user1, user2]


# happy path
def test_search_users_with_email_part_lists_all_matching_users():
user1 = User(username="john@doe.com")
user2 = User(username="bob@example.com")
user3 = User(username="marry@doe.com")
repository = InMemoryUserRepository()
repository.add(user1)
repository.add(user2)
repository.add(user3)

assert repository.search("doe") == [user1, user3]


# edge test case
def test_search_users_with_empty_query_lists_all_users():
user1 = User(username="john@doe.com")
user2 = User(username="marry@doe.com")
repository = InMemoryUserRepository()
repository.add(user1)
repository.add(user2)

assert repository.search("") == [user1, user2]


# negative test case
def test_search_users_with_random_query_lists_zero_users():
user1 = User(username="john@doe.com")
repository = InMemoryUserRepository()
repository.add(user1)

assert repository.search(str(uuid.uuid4())) == []


# security test
def test_search_users_with_sql_injection_has_no_effect():
user1 = User(username="john@doe.com")
repository = InMemoryUserRepository()
repository.add(user1)

repository.search("DELETE FROM USERS;")
assert repository.search() == [user1]


👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
33👍3👀2
Junior нам не нужен, нам нужен младший разработчик

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
😁104🤣43💊10👍21🤝1
Media is too big
VIEW IN TELEGRAM
Большая новость: теперь Google Colab можно запускать прямо внутри VS Code.

То есть можно писать код в нормальном редакторе, а ноутбук подключать к Colab GPU/TPU окружению для ML/AI задач.

Настройка занимает пару минут. И бесплатно.

Как стартануть:

1. Ставишь расширение Google Colab из Marketplace в VS Code
2. Открываешь .ipynb
3. Выбираешь ядро Colab
4. Авторизуешься и всё, поехали

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
237👍13🔥7💊1
Oxylabs это довольно известная компания в сфере веб-скрейпинга с десятилетним опытом.

Они выпустили Python-пакет для веб-парсинга. С его помощью можно вытаскивать данные из e-commerce сайтов, поисковиков, сервисов недвижимости и многого другого.

Вот простой пример парсинга результатов Bing:

from oxylabs import RealtimeClient

# Указываем данные для авторизации в Oxylabs API
username = "username"
password = "password"

# Создаем Realtime-клиент с нашими кредами
client = RealtimeClient(username, password)

# Используем bing_search, чтобы получить результаты Bing по запросу "nike"
result = client.bing.scrape_search("nike")

# Выводим сырые данные (как есть)
print(result.raw)


Oxylabs умеет работать практически с любыми сайтами, но у них есть отдельные, более заточенные API для популярных площадок:

- Amazon
- Google
- Google Shopping
- Bing
- Kroger
- Wayfair
- YouTube Transcript

Подробнее про Oxylabs можно узнать на их сайте
Если нужен только Python-пакет для веб-скрейпинга, его можно найти на GitHub

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
22👍6🔥3