ChatCrawlerпоиск по публичному Telegram Открыть приложение
P

Python Community | Chat

снимок за ноябрь 2025
‹ ноябрь 2025 ›×
I
Фотография
нажмите — покажем
🖥 Аккуратный выход из Python-скриптов через sys.exit В продакшене важно правильно сигнализировать системе об успехе или ошибке. В Python это делается через sys.exit(): 0 — успешное завершение неноль — ошибка, которую может поймать CI/CD, Docker, cron или любой supervisor В примере выше try/except использует это правило: - при ошибке деления выводится сообщение и скрипт завершается с кодом 1 - при успешной операции — вывод “Operation successful!” и код 0 Такой паттерн обязателен для CLI-утилит, сервисных скриптов, пайплайнов и автоматизации: он делает выполнение предсказуемым и даёт внешним системам корректно реагировать на сбои. @Python_Community_ru
938 ·
Фотография
нажмите — покажем
🖥 Современная панель для мониторинга Docker-контейнеров в реальном времени Что умеет: - следит за локальными и удалёнными Docker-хостами в одном окне - умно перезапускает контейнеры с настраиваемой логикой повторов - шлёт алерты в Telegram, Slack, Discord, Gotify и почту - обновляет контейнеры по расписанию - позволяет разворачивать Docker Run и Compose-пресеты прямо из UI - показывает health-чеки и события в реальном времени Github: https://github.com/darthnorse/dockmon @Python_Community_ru
864 ·
I
Видео
c2233f4c04420ac868e48b659bfdc92b_452337_1762811183.mp4 · 774 КБ · нажмите — покажем
🖥 Python задака Напиши функцию, которая распарсит вложенные структуры (списки, кортежи, множества, генераторы) в одну последовательность, но не трогает строки и не падает из-за циклов. Вот как сделать это без рекурсии, только через стек: def flatten(obj): stack = [obj] seen = set() while stack: x = stack.pop() if isinstance(x, (str, bytes)): yield x elif isinstance(x, (list, tuple, set)): xid = id(x) if xid in seen: continue seen.add(xid) stack.extend(reversed(list(x))) else: yield x # пример data = [1, [2, 3], ("ab", [4, 5]), 6] data.append(data) # создаём цикл print(list(flatten(data))) @Python_Community_ru
874 ·
I
Фотография
нажмите — покажем
Фотография
нажмите — покажем
1K ·
I
Видео
755b7c3588f14d81936f52611bc0fdef_452337_1763026520.mp4 · 1.2 МБ · нажмите — покажем
🖥СОВЕТ ДЛЯ 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()) @Python_Community_ru
829 ·
I
Фотография
нажмите — покажем
💡 Qwen-Image-Edit получил полезное обновление. Лаборатория eigen ai labs выпустила новую LoRA под названием Eigen-Banana. Она ориентирована на быстрые и точные правки изображений по текстовым подсказкам. Работает на высоких скоростях и хорошо понимает как английские, так и китайские запросы. Важно: лицензия разрешает только некоммерческое использование. Ссылка: https://huggingface.co/eigen-ai-labs/eigen-banana-qwen-image-edit @Python_Community_ru
856 ·
I
Видео
f9464fe199877a0a47861fce5ee29b6d_452337_1763220467.mp4 · 1.1 МБ · нажмите — покажем
⚡️ ПРИЁМ ДЛЯ ГЛАДКОЙ ПЕРЕДАЧИ ДАННЫХ В 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()) @Python_Community_ru
934 ·
I
Фотография
нажмите — покажем
⚡ Microsoft выкатили **amplifier** - новую экспериментальную платформу для сборки AI-инструментов без лишнего кода. Что это: - способ описать экспертный процесс в виде шагов и автоматически превратить его в работающий инструмент; - возможность комбинировать такие инструменты между собой, создавая цепочки автоматизации; - платформа для исследований, поэтому всё ещё активно меняется. Чем хорош инструмент: - позволяет быстро превращать повторяющиеся задачи в автономные AI-процессы; - помогает строить «агентов» с ролями — исследователь, критик, исполнитель; - снижает порог входа: достаточно описать логику, а не писать всю реализацию. Это пока исследовательский проект, но потенциал — большой. 👉 Репозиторий: https://github.com/microsoft/amplifier @Python_Community_ru
948 ·
I
Фотография
нажмите — покажем
🧩 Удобная библиотека для логирования с контекстом Unilogging упрощает процесс логирования в Python-приложениях, используя Dependency Injection для управления контекстом логов. Это позволяет легко отслеживать события, связанные с конкретными запросами, без необходимости передавать данные через все уровни приложения. 🚀Основные моменты: - Логирование с использованием контекста для упрощения отслеживания запросов. - Поддержка Dependency Injection для гибкости и удобства. - Минимизация дублирования кода при передаче данных логирования. - Интеграция с FastAPI и другими фреймворками. 📌 GitHub: https://github.com/goduni/unilogging @Python_Community_ru
901 ·
I
Видео
c34a0939876d613bd2acc5977ad3ef43_452337_1763457398.mp4 · 997 КБ · нажмите — покажем
⚡️ Хитрый трюк по работе со статикой Если заранее посчитать 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() @Python_Community_ru
895 ·
I
Видео
6e02e1d773594d7a84949dfc24d76a15_452337_1763565084.mp4 · 825 КБ · нажмите — покажем
🖥 Очистка 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
813 ·
Фотография
нажмите — покажем
✔️ 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
865 ·
I
Фотография
нажмите — покажем
🚀 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
829 ·
I
Фотография
нажмите — покажем
🚀 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
849 ·
🔥 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
823 ·
I
Видео
928a88b7608c1825b92b2165107229f8_452337_1763802027.mp4 · 1.3 МБ · нажмите — покажем
853 ·
I
Фотография
нажмите — покажем
🧵 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
I
Видео
8089547d67326cfdf89fa96c24594085_452337_1764017320.mp4 · 882 КБ · нажмите — покажем
🔥 Коварная ловушка с замыканиями в 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
896 ·
I
Фотография
нажмите — покажем
🌀 В 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
883 ·
I
Видео
9d35aa1d84e8278bcc39a64a23c8d2d6_452337_1764168103.mp4 · 1.0 МБ · нажмите — покажем
🔥 Безопасный запуск 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", "/"])) @Python_Community_ru
782 ·
Фотография
нажмите — покажем
Изучаем Python, Docker, Git и выходим в DevOps с абсолютного нуля — нашли огромную библиотеку с сотнями подробных материалов. • Сильная теоретическая база: язык программирования, сети, базы данных, система контроля версий. • Короткие, но насыщенные уроки — учись по дороге на работу, в обед или во время короткого перерыва. • Много практики — закрепишь навыки, соберёшь проекты и усилишь своё портфолио. • Всё объясняется пошагово, простым языком — подойдёт даже тем, кто только сегодня услышал слово «программирование». https://kodekloud.com/studio/labs @Python_Community_ru
855 ·
I
Фотография
нажмите — покажем
🛠️ Tracer для системных вызовов на macOS strace-macos — это инструмент для отслеживания системных вызовов на macOS с использованием API отладчика LLDB. Он работает с включенной защитой целостности системы и написан на чистом Python, что исключает необходимость в расширениях ядра. 🚀 Основные моменты: - Поддержка SIP без отключения - Вывод в формате JSON и текстовом формате - Фильтрация системных вызовов по имени и категории - Символическое декодирование аргументов - Статистика вызовов и ошибок 📌 GitHub: https://github.com/Mic92/strace-macos @Python_Community_ru
840 ·
I
Фотография
нажмите — покажем
🔧 Утилиты для C++ и Python Этот репозиторий предлагает набор полезных утилит для работы с C++ и Python, упрощая взаимодействие между этими языками. Он включает функции для обработки данных, работы с файлами и выполнения различных задач, что делает его идеальным для разработчиков, работающих с обоими языками. 🚀 Основные моменты: - Инструменты для обработки и анализа данных - Удобные функции для работы с файлами - Поддержка взаимодействия между C++ и Python - Легкая интеграция в проекты - Документация для быстрого старта 📌 GitHub: https://github.com/xZepyx/cpp-pyutils @Python_Community_ru
803 ·
I
Фотография
нажмите — покажем
🎤 Быстрый текст-в-речь с Supertonic Supertonic — это высокопроизводительная система текст-в-речь, работающая на вашем устройстве. Она обеспечивает молниеносное создание речи с минимальными затратами ресурсов и полным соблюдением конфиденциальности. Никаких облачных решений — всё происходит локально. 🚀Основные моменты: - ⚡ Генерация речи до 167× быстрее реального времени - 🪶 Легковесная архитектура с 66M параметрами - 📱 Полная обработка на устройстве без задержек - 🎨 Обработка сложных текстов без предварительной подготовки - ⚙️ Гибкая настройка параметров и развертывания 📌 GitHub: https://github.com/supertone-inc/supertonic #python @Python_Community_ru
Календарь: ноябрь 2025
Архив по месяцам
Открыть в Telegram Каталог площадок Искать в ChatCrawler

Слепок открытой публичной ленты из поискового индекса ChatCrawler — «Google по публичному Telegram»; обновляется по мере обхода площадки. Время — UTC.

Только публичный контент, официальный API Telegram. О проекте · Вопросы · Чего мы не делаем · Убрать страницу из выдачи · Каталог