en
Feedback
Python/ django

Python/ django

Open in Telegram

📈 Analytical overview of Telegram channel Python/ django

Channel Python/ django (@pythonl) in the Russian language segment is an active participant. Currently, the community unites 58 979 subscribers, ranking 2 170 in the Technologies & Applications category and 10 190 in the Russia region.

📊 Audience metrics and dynamics

Since its creation on невідомо, the project has demonstrated rapid growth, gathering an audience of 58 979 subscribers.

According to the latest data from 27 August, 2026, the channel demonstrates stable activity. Although there has been a change in the number of participants by -317 over the last 30 days and by -26 over the last 24 hours, overall reach remains high.

  • Verification status: Not verified
  • Engagement rate (ER): The average audience engagement rate is 6.25%. Within the first 24 hours after publication, content typically collects 3.50% reactions from the total number of subscribers.
  • Post reach: On average, each post receives 3 684 views. Within the first day, a publication typically gains 2 067 views.
  • Reactions and interaction: The audience actively supports content: the average number of reactions per post is 20.
  • Thematic interests: Content is focused on key topics such as github, claude, контекст, архитектура, api.

📝 Description and content policy

The author describes the resource as a platform for expressing subjective opinions:
по всем вопросам @workakkk @itchannels_telegram - 🔥 все ит каналы @ai_machinelearning_big_data -ML @ArtificialIntelligencedl -AI @datascienceiot - 📚 @pythonlbooks РКН: clck.ru/3Fm...

Thanks to the high frequency of updates (latest data received on 28 August, 2026), the channel maintains relevance and a high level of publication reach. Analytics show that the audience actively interacts with content, making it an important point of influence in the Technologies & Applications category.

58 979
Subscribers
-2624 hours
+837 days
-31730 days
Posts Archive
🔥 Безопасный запуск Linux-команд из Python Если нужно из Python безопасно выполнять системные команды в Linux, используй изоляцию через subprocess с принудительным сбросом привилегий. Такой приём позволяет запускать команды даже в окружениях с потенциально небезопасным вводом, блокируя доступ к опасным системным вызовам и снижая риск эксплуатации.

import subprocess
import os

def safe_run(cmd):
    # Запускаем процесс без наследования переменных окружения
    env = {"PATH": "/usr/bin:/bin"}
    
    # Сбрасываем привилегии, если процесс запущен от root
    def drop_priv():
        os.setgid(65534)
        os.setuid(65534)

    result = subprocess.run(
        cmd,
        env=env,
        preexec_fn=drop_priv,
        stdout=subprocess.PIPE,
        stderr=subprocess.PIPE,
        text=True,
        timeout=3,
    )
    return result.stdout

print(safe_run(["ls", "/"]))
@pythonl

🌀 В Python есть встроенная функция reversed(), но работает она не со всеми структурами данных. Быстрый разбор: ✓ Список можн
🌀 В 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}))) @pythonl

🔥 Коварная ловушка с замыканиями в 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]

+2
Cursor мощно прокачался — релизнулась версия 2.1, которая еще быстрее находит баги, делает ревью кода, пишет и оптимизирует программы. • Разрабы внедрили кнопку «Find issues» — агент автоматически правит баги, делает ревью и подсвечивает проблемы в боковой панели. Да, все СРАЗУ и без нескольких промптов. • Поиск ускорили в разы — теперь он работает на базе векторов и шерстит даже массивную кодовую базу за секунды. • Улучшили режим планирования — агент будет задавать еще больше уточняющих вопросов, когда ты утверждаете задачу. Отвечать нужно в интерактивном режиме. И да, сейчас на Cursor Pro есть скидка — реально приятная. Вместо 22 тысяч — 7000 рублей! Так что если думали — это тот самый момент «пока недорого». Купить можно на сайте 👉 по ссылке Или можно купить на авито напрямую у продавца по ссылке

🤖 SelfDiscord: Мощный Discord Selfbot за 2 минуты настройки SelfDiscord — это удобный selfbot для Discord с множеством коман
🤖 SelfDiscord: Мощный Discord Selfbot за 2 минуты настройки SelfDiscord — это удобный selfbot для Discord с множеством команд и утилит. Он позволяет отслеживать ключевые слова, добавлять пользовательские команды и реакции, а также автоматизировать множество задач, таких как поиск изображений и управление сообщениями. 🚀Основные моменты: - Логирование ключевых слов и уведомления о сообщениях. - Автоматическая смена аватаров и статусов. - Сохранение изображений и поиск источников. - Пользовательские команды и реакции с возможностью сохранения. - Уведомления и таймеры для задач. 📌 GitHub: https://github.com/tagal6727/SelfDiscord #python

🧵 CPython 3.15 делает распаковку данных намного быстрее В новой версии CPython улучшили производительность декомпрессии: - Z
🧵 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 @pythonl

🔥 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))
@pythonl

🚀 myfy - модульный Python-фреймворк с фронтендом «из коробки» Зачем он нужен: FastAPI - идеален для API, но без нормального
🚀 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 @pythonl

🚀 GigaChat Ultra & Lightning — новые MoE-модели от Сбера 💡 Что это такое Две открытые модели нового поколения, обученные с
🚀 GigaChat Ultra & Lightning — новые MoE-модели от Сбера 💡 Что это такое Две открытые модели нового поколения, обученные с нуля — без чужих весов. Созданы, чтобы ускорять разработку, уменьшать рутину и быть удобным напарником для разработчиков. 🔥 Что внутри - Ultra: 702B параметров, контекст до 131k, стабильная работа экспертов - Lightning: 10B параметров, контекст до 256k, лёгкая и быстрая - Генерация нескольких токенов одновременно - Экономия памяти, оптимизация KV-кеша - Совместимость с Hugging Face, vLLM и SGLang 🎯 Почему стоит использовать - Сбер снимает часть технических забот, чтобы сосредоточиться на экспериментах - Ускоряет локальное прототипирование и работу с AI-помощниками - Подходит для масштабных решений и небольших проектов @pythonl

🚀 django-keel - мощный стартовый шаблон для Django-проектов 💡 Что это такое Готовый современный каркас для Django-приложени
🚀 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 @pythonl

✔️ CPython может получить обязательную зависимость от Rust к версии Python 3.17. Эмма Смит и Кирилл Подопригора из core-team
✔️ CPython может получить обязательную зависимость от Rust к версии Python 3.17. Эмма Смит и Кирилл Подопригора из core-team Python опубликовали предварительное предложение (Pre-PEP), в котором описывается план постепенного внедрения Rust в кодовую базу CPython. На первом этапе Rust хотят использовать для необязательных модулей стандартной библиотеки, находящихся в каталоге Modules/. Дальше — больше: если эксперимент окажется успешным, то к выходу Python 3.17 Rust может стать обязательной сборочной зависимостью. Это позволит улучшить безопасность, производительность и надёжность низкоуровневых частей интерпретатора. Подробнее: https://peps.python.org/pep-0011/ @pythonl

🖥 Очистка 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)

⚡️ Хитрый трюк по работе со статикой Если заранее посчитать ETag для статических файлов, сервер сможет мгновенно отвечать 304 Not Modified без чтения с диска. Это резко ускоряет отдачу статики на Python.

import os, hashlib
from http.server import SimpleHTTPRequestHandler, HTTPServer

STATIC = "static"
etag = {f: hashlib.md5(open(os.path.join(STATIC, f),"rb").read()).hexdigest()
        for f in os.listdir(STATIC)}

class H(SimpleHTTPRequestHandler):
    def end_headers(self):
        name = self.path.lstrip("/")
        if name in etag:
            self.send_header("ETag", etag[name])
        super().end_headers()

HTTPServer(("0.0.0.0", 8000), H).serve_forever()

Как обучить свою первую ML-модель — и не утонуть в теории? Машинное обучение звучит сложно — пока вы не попробуете на практик
Как обучить свою первую ML-модель — и не утонуть в теории? Машинное обучение звучит сложно — пока вы не попробуете на практике. 24 ноября в 18:00 МСК на открытом уроке вы обучите модель для задачи классификации прямо во время занятия.  Разберём: – как работает алгоритм дерева решений; – как решать задачи классификации на Python; – что нужно, чтобы перейти от экспериментов к реальной работе с ML. Вы шаг за шагом создадите первую модель, увидите, как она принимает решения, и поймёте, как из простого кода рождается интеллект. ➡️ Открытый урок проходит в преддверии старта курса «Machine Learning. Basic». Регистрируйтесь — начните путь в Data Science с практики, а не с теории:  https://otus.pw/iOTK/?erid=2W5zFJdCjix Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.

🧩 Удобная библиотека для логирования с контекстом Unilogging упрощает процесс логирования в Python-приложениях, используя De
🧩 Удобная библиотека для логирования с контекстом Unilogging упрощает процесс логирования в Python-приложениях, используя Dependency Injection для управления контекстом логов. Это позволяет легко отслеживать события, связанные с конкретными запросами, без необходимости передавать данные через все уровни приложения. 🚀Основные моменты: - Логирование с использованием контекста для упрощения отслеживания запросов. - Поддержка Dependency Injection для гибкости и удобства. - Минимизация дублирования кода при передаче данных логирования. - Интеграция с FastAPI и другими фреймворками. 📌 GitHub: https://github.com/goduni/unilogging @pythonl

⚡ Microsoft выкатили **amplifier** - новую экспериментальную платформу для сборки AI-инструментов без лишнего кода. Что это:
⚡ Microsoft выкатили **amplifier** - новую экспериментальную платформу для сборки AI-инструментов без лишнего кода. Что это: - способ описать экспертный процесс в виде шагов и автоматически превратить его в работающий инструмент; - возможность комбинировать такие инструменты между собой, создавая цепочки автоматизации; - платформа для исследований, поэтому всё ещё активно меняется. Чем хорош инструмент: - позволяет быстро превращать повторяющиеся задачи в автономные AI-процессы; - помогает строить «агентов» с ролями — исследователь, критик, исполнитель; - снижает порог входа: достаточно описать логику, а не писать всю реализацию. Это пока исследовательский проект, но потенциал — большой. 👉 Репозиторий: https://github.com/microsoft/amplifier @pythonl

🔥 Подборка полезных ресурсов для программистов. Здесь ты найдёшь всё это - коротко, по делу и без воды. Пока другие ищут, где “подглядеть решение”, ты уже используешь самые свежие инструменты! AI: t.me/ai_machinelearning_big_data Python: t.me/pythonl Linux: t.me/linuxacademiya Devops: t.me/DevOPSitsec Собеседования DS: t.me/machinelearning_interview C++ t.me/cpluspluc Docker: t.me/DevopsDocker Хакинг: t.me/linuxkalii Data Science: t.me/data_analysis_ml Javascript: t.me/javascriptv C#: t.me/csharp_1001_notes Java: t.me/java_library Базы данных: t.me/sqlhub Python собеседования: t.me/python_job_interview Мобильная разработка: t.me/mobdevelop Golang: t.me/Golang_google React: t.me/react_tg Rust: t.me/rust_code ИИ: t.me/vistehno PHP: t.me/phpshka Android: t.me/android_its Frontend: t.me/front Big Data: t.me/bigdatai МАТЕМАТИКА: t.me/data_math Kubernets: t.me/kubernetc Разработка игр: https://t.me/gamedev Haskell: t.me/haskell_tg Физика: t.me/fizmat 💼 Папка с вакансиями: t.me/addlist/_zyy_jQ_QUsyM2Vi Папка Go разработчика: t.me/addlist/MUtJEeJSxeY2YTFi Папка Python разработчика: t.me/addlist/eEPya-HF6mkxMGIy Папка ML: https://t.me/addlist/2Ls-snqEeytkMDgy Папка FRONTEND: https://t.me/addlist/mzMMG3RPZhY2M2Iy Папка Linux:https://t.me/addlist/w4Doot-XBG4xNzYy 😆ИТ-Мемы: t.me/memes_prog 🇬🇧Английский: t.me/english_forprogrammers 🧠ИИ: t.me/vistehno 🎓954ГБ ОПЕНСОРС КУРСОВ: @courses 📕Ит-книги бесплатно: https://t.me/addlist/BkskQciUW_FhNjEy Сохрани себе, чтобы не потерять!

⚡️ ПРИЁМ ДЛЯ ГЛАДКОЙ ПЕРЕДАЧИ ДАННЫХ В ASYNCIO В сетевом Python можно «мягко» ограничивать скорость передачи данных без троттлинга на уровне сокета. Приём - отправлять данные кусками и вставлять короткий await asyncio sleep после каждого drain(): это отдаёт управление циклу, даёт шанс другим корутинам и предотвращает монополизацию CPU. Полезно в высоконагруженных стримерах.

 простой «мягкий» троттлинг передачи данных

import asyncio

CHUNK = 32_000

async def send_smooth(writer, data: bytes):
    for i in range(0, len(data), CHUNK):
        writer.write(data[i:i+CHUNK])
        await writer.drain()
        await asyncio.sleep(0)  # отдаём управление циклу

async def handle(reader, writer):
    payload = b"x" * 5_000_000
    await send_smooth(writer, payload)
    writer.close()
    await writer.wait_closed()

async def main():
    srv = await asyncio.start_server(handle, "0.0.0.0", 8888)
    async with srv:
        await srv.serve_forever()

asyncio.run(main())
@pythonl

💡 Qwen-Image-Edit получил полезное обновление. Лаборатория eigen ai labs выпустила новую LoRA под названием Eigen-Banana. Он
💡 Qwen-Image-Edit получил полезное обновление. Лаборатория eigen ai labs выпустила новую LoRA под названием Eigen-Banana. Она ориентирована на быстрые и точные правки изображений по текстовым подсказкам. Работает на высоких скоростях и хорошо понимает как английские, так и китайские запросы. Важно: лицензия разрешает только некоммерческое использование. Ссылка: https://huggingface.co/eigen-ai-labs/eigen-banana-qwen-image-edit @pythonl

🖥СОВЕТ ДЛЯ PYTHON ASYNCIO В продвинутых asyncio-сетях главная редкая проблема — неконтролируемый рост буфера, когда клиент принимает данные слишком медленно. Python по умолчанию спокойно складывает мегабайты в память, пока сокет забит. Решение - вручную ограничить размер буфера транспорта через `set write buffer limits и всегда ждать writer.drain. Тогда при медленном клиенте корутины просто «замрут» в drain(), а не раздуют памяиь. Подписывайся, больше фишек каждый день !

 пример контролируемой по памяти передачи данных

import asyncio

async def handle(reader, writer):
    writer.transport.set_write_buffer_limits(high=500_000, low=200_000)

    while True:
        writer.write(b"x" * 65536)
        await writer.drain()  # остановит корутину, если клиент не успевает

async def main():
    server = await asyncio.start_server(handle, "0.0.0.0", 8888)
    async with server:
        await server.serve_forever()

asyncio.run(main())