Python Community
12.4K subscribers
1.34K photos
76 videos
15 files
839 links
Python Community RU - СНГ сообщество Python-разработчиков

Чат канала: @python_community_chat

Сотрудничество: @cyberJohnny и @Sergey_bzd

РКН реестр:
https://knd.gov.ru/license?id=67847dd98e552d6b54a511ed&registryType=bloggersPermission
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
🖥 Очистка python кода!

Чтобы сильно упростить очистку Python-кода, вынеси мелкие предикаты, фильтры и маппинги в именованные функции. Это делает пайплайны короче, уменьшает вложенность и ускоряет отладку. Такой приём особенно полезен, когда список операций растёт и становится нечитаемым. Подписывайся, больше фишек каждый день !


def is_valid(user):
return user.get("active") and user.get("role") != "banned"

def normalize(user):
user["name"] = user["name"].strip().title()
return user

def enrich(user):
user["score"] = user.get("score", 0) + 10
return user

users = [... ] # внешний источник

cleaned = [enrich(normalize(u)) for u in users if is_valid(u)]

print(cleaned)

@Python_Community_ru
👍3
✔️ CPython может получить обязательную зависимость от Rust к версии Python 3.17.

Эмма Смит и Кирилл Подопригора из core-team Python опубликовали предварительное предложение (Pre-PEP), в котором описывается план постепенного внедрения Rust в кодовую базу CPython.
На первом этапе Rust хотят использовать для необязательных модулей стандартной библиотеки, находящихся в каталоге Modules/.

Дальше — больше: если эксперимент окажется успешным, то к выходу Python 3.17 Rust может стать обязательной сборочной зависимостью. Это позволит улучшить безопасность, производительность и надёжность низкоуровневых частей интерпретатора.

Подробнее: https://peps.python.org/pep-0011/

@Python_Community_ru
👍2
🚀 django-keel - мощный стартовый шаблон для Django-проектов

💡 Что это такое
Готовый современный каркас для Django-приложений, который позволяет запускать новый проект за минуты — с правильной архитектурой, CI, Docker и продуманной конфигурацией.

🔥 Что внутри
- Поддержка Python 3.12+ и Django 5.2+
- Несколько видов проектов: SaaS, API-backend, web-app, internal tools
- Docker + Docker Compose
- Настроенные линтеры, тесты, coverage и GitHub Actions
- 12-factor конфигурация, разделённые settings (dev/test/prod)
- Варианты API: DRF или GraphQL
- Поддержка фронта: Next.js или HTMX + Tailwind

🎯 Почему стоит использовать
- Экономит недели рутинной настройки
- Даёт единообразную и поддерживаемую архитектуру
- Ускоряет разработку MVP, внутренних сервисов и SaaS-продуктов

🛠 Быстрый старт

copier copy gh:CuriousLearner/django-keel my-project


Репозиторий: https://github.com/CuriousLearner/django-keel

@Python_Community_ru
🔥3
🚀 GigaChat Ultra & Lightning — новые MoE-модели от Сбера

💡 Что это такое
Две открытые (https://ria.ru/20251120/sber-2056388219.html) модели нового поколения, обученные с нуля — без чужих весов. Созданы, чтобы ускорять разработку, уменьшать рутину и быть удобным напарником для разработчиков.

🔥 Что внутри
- Ultra: 702B параметров, контекст до 131k, стабильная работа экспертов
- Lightning: 10B параметров, контекст до 256k, лёгкая и быстрая
- Генерация нескольких токенов одновременно
- Экономия памяти, оптимизация KV-кеша
- Совместимость с Hugging Face, vLLM и SGLang

🎯 Почему стоит использовать
- Сбер снимает часть технических забот, чтобы сосредоточиться на экспериментах
- Ускоряет локальное прототипирование и работу с AI-помощниками
- Подходит для масштабных решений и небольших проектов

@Python_Community_ru
👍1
🚀 myfy - модульный Python-фреймворк с фронтендом «из коробки»

Зачем он нужен: FastAPI - идеален для API, но без нормального фронта.

myfy берёт лучшее из FastAPI и добавляет полноценную модульность, DI и встроенный UI.

🔥 Главное
- Модульная архитектура с жизненным циклом (`start/stop`)
- Type-based DI без скрытой магии
- Фронтенд сразу из коробки:
Jinja2 + DaisyUI + Tailwind + Vite + HMR
Можно делать UI без React/Vue, идеально для внутренних тулов
- Чистая структура проекта, минимум бойлерплейта

🚀 Быстрый старт

pip install myfy
myfy init
myfy frontend init
myfy run


https://github.com/psincraian/myfy

@Python_Community_ru
🔥2
🔥 10 однострочных Python-функций, которые экономят время каждый день

Держи небольшой набор из 10 функций-однострочников, которые полезно просто закинуть в свой utils.py.
Они помогают быстро работать со списками, файлами, JSON, статистикой и частотами, без лишнего шума в коде.
Скопируй блок целиком и используй нужные функции по месту.


from pathlib import Path
from collections import Counter
import json, statistics as stats

chunks = lambda it, n: [it[i:i + n] for i in range(0, len(it), n)]

flatten = lambda lst: [x for sub in lst for x in sub]

unique = lambda seq: list(dict.fromkeys(seq))

sliding = lambda it, n: [it[i:i + n] for i in range(len(it) - n + 1)]

freqs = lambda seq: Counter(seq)

read_text = lambda p: Path(p).read_text(encoding="utf-8")

write_text = lambda p, text: Path(p).write_text(text, encoding="utf-8")

read_json = lambda p: json.loads(Path(p).read_text(encoding="utf-8"))

write_json = lambda p, obj: Path(p).write_text(json.dumps(obj, ensure_ascii=False, indent=2), encoding="utf-8")

mean_std = lambda xs: (stats.mean(xs), stats.pstdev(xs))

@Python_Community_ru
🔥1
🧵 CPython 3.15 делает распаковку данных намного быстрее

В новой версии CPython улучшили производительность декомпрессии:

- Zstandard (zstd) распаковывается на 25–30% быстрее
- zlib — на 10–15% быстрее, если размер данных больше 1 MiB

Такого ускорения добились за счёт более эффективной работы с выходными буферами во время распаковки.

Подробнее: emmatyping.dev/decompression-is-up-to-30-faster-in-cpython-315.html

@Python_Community_ru
🔥3
Cursor мощно прокачался — релизнулась версия 2.1, которая еще быстрее находит баги, делает ревью кода, пишет и оптимизирует программы.

• Разрабы внедрили кнопку «Find issues» — агент автоматически правит баги, делает ревью и подсвечивает проблемы в боковой панели. Да, все СРАЗУ и без нескольких промптов.
• Поиск ускорили в разы — теперь он работает на базе векторов и шерстит даже массивную кодовую базу за секунды.
• Улучшили режим планирования — агент будет задавать еще больше уточняющих вопросов, когда ты утверждаете задачу. Отвечать нужно в интерактивном режиме.

И да, сейчас на Cursor Pro есть скидка — реально приятная. Вместо 22 тысяч — 7000 рублей!
Так что если думали — это тот самый момент «пока недорого».
Купить можно на сайте 👉 по ссылке (https://cursorpro.ru/?utm_source=tg&utm_medium=post&utm_campaign=pr1)
Или можно купить на авито напрямую у продавца по ссылке (https://cursorpro.ru/avito?utm_source=tg&utm_medium=post&utm_campaign=pr1)

@Python_Community_ru
This media is not supported in your browser
VIEW IN TELEGRAM
🔥 Коварная ловушка с замыканиями в Python

Многие хитрые баги в Python появляются из-за того, что разработчики неверно понимают область видимости переменных в замыканиях.

Частая ошибка - внутри цикла создавать функции-лямбды, которые «помнят» одно и то же финальное значение переменной, а не значение на каждой итерации. В итоге весь список функций ведёт себя одинаково. Чтобы избежать ловушки, фиксируйте значение через аргумент по умолчанию или используйте functools.partial.



funcs = []

for i in range(5):
funcs.append(lambda x=i: x) # фиксируем i как значение по умолчанию

print([f() for f in funcs]) # [0, 1, 2, 3, 4]

@Python_Community_ru
👍3
🌀 В Python есть встроенная функция reversed(), но работает она не со всеми структурами данных. Быстрый разбор:

✓ Список можно развернуть
reversed([1, 2, 3]) возвращает итератор.
list(reversed([1, 2, 3])) → [3, 2, 1]

✓ Кортежи тоже разворачиваются
Можно итерироваться по reversed((1, 2, 3))

✓ Множества не разворачиваются
reversed({1, 2, 3}) → TypeError: 'set' object is not reversible
Причина: множества *не имеют порядка*, а значит разворачивать нечего.

Если нужно развернуть множество — сначала сделай его списком:
list(reversed(list({1, 2, 3})))

@Python_Community_ru