Python Community
12.6K subscribers
1.29K photos
54 videos
15 files
791 links
Python Community RU - СНГ сообщество Python-разработчиков

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

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

РКН реестр:
https://knd.gov.ru/license?id=67847dd98e552d6b54a511ed&registryType=bloggersPermission
Download Telegram
🖥 PlutoPrint — быстрое создание PDF и PNG из HTML с помощью Python

PlutoPrint — это лёгкая и удобная библиотека на Python для генерации качественных PDF и изображений напрямую из HTML или XML. Она основана на мощном рендеринг-движке PlutoBook, что делает её идеальной для отчетов, счетов, билетов и визуализаций.

Основные возможности

Поддержка PDF и PNG – можно создавать как статичные изображения, так и печатные документы из
Простота установки и использования — установка через pip install plutoprint; пример для командной строки:

plutoprint input.html output.pdf --size=A4

🟠 Github (https://github.com/plutoprint/plutoprint)



@Python_Community_ru
🖥 Что такое псевдослучайность в Python

Когда мы используем модуль random, числа выглядят случайными, но на самом деле они вычисляются по алгоритму. Поэтому такие числа называют псевдослучайными.

Главное:
- Если задать одинаковый seed (зерно), генератор выдаст одинаковую последовательность. Это удобно для тестов и экспериментов — результат можно воспроизвести.
- Алгоритм по умолчанию — Mersenne Twister (https://ru.wikipedia.org/wiki/%D0%92%D0%B8%D1%85%D1%80%D1%8C_%D0%9C%D0%B5%D1%80%D1%81%D0%B5%D0%BD%D0%BD%D0%B0). Он быстрый и подходит для моделирования, но не годится для безопасности.
- Для генерации паролей, токенов и других защищённых данных нужно использовать модуль secrets, который делает случайность криптографически стойкой.

Просто правило:
- Для экспериментов → random с фиксированным seed.
- Для безопасности → secrets.



Пример работы seed
import random

random.seed(42)
print([random.random() for _ in range(3)])

random.seed(42)
print([random.random() for _ in range(3)]) те же числа

Криптографически безопасные значения
import secrets
print(secrets.token_hex(8))
print(secrets.randbelow(10))

@Python_Community_ru
Отличный курс для тех, кто хочет разобраться в нейронках с нуля от Андрея Карпати (OpenAI/Tesla).

Внутри бесплатная серия лекций на YouTube (и репа на GitHub), где ты с нуля учишься собирать нейронки. Всё максимально hands-on:

Автор не просто рассказывает теорию, а пишет код вместе с тобой — от самых азов до тренировки сетей.

https://github.com/karpathy/nn-zero-to-hero/



@Python_Community_ru
🔥3
This media is not supported in your browser
VIEW IN TELEGRAM
🔥 Совет по Python: неожиданное поведение с изменяемыми аргументами по умолчанию

Если в функции задать аргумент по умолчанию как list или dict, то этот объект создаётся один раз — при определении функции.

Из-за этого все вызовы будут делить один и тот же объект, что часто приводит к багам.

Правильный способ — использовать `None` и создавать новый объект внутри функции.


def bad_append(x, data=[]):
data.append(x)
return data

print(bad_append(1)) # [1]
print(bad_append(2)) # [1, 2]

@Python_Community_ru
🤔1
🎙️ VibeVoice: Инновационная модель TTS для длинных разговоров

VibeVoice — это передовая система синтеза речи, способная генерировать выразительное аудио для длительных разговоров, включая подкасты. Она решает проблемы традиционных TTS-систем, обеспечивая высокую согласованность голосов и естественное взаимодействие между несколькими спикерами.

🚀 Основные моменты:
- Синтезирует речь до 90 минут с 4 различными спикерами.
- Использует токенизаторы непрерывной речи для повышения эффективности.
- Поддерживает высокое качество звука при низкой частоте кадров.
- Применяет диффузионные модели для понимания контекста и потока диалога.

📌 GitHub: https://github.com/microsoft/VibeVoice



@Python_Community_ru
This media is not supported in your browser
VIEW IN TELEGRAM
⚡️ Hexora — статический анализ Python-скриптов на вредоносные паттерны

Что это:
- Ищет опасные конструкции в Python-коде: чтение буфера обмена, exec/eval (включая обфускации), подозрительные импорты (pickle, ctypes, marshal), загрузку бинарей, длинные base64/hex-строки и т. п.
- Полезен для аудита зависимостей (supply chain), проверки скриптов из Pastebin/GitHub, triage после инцидентов и ревью пакетов из PyPI.

Быстрый старт:

pip install hexora # или: uv tool install hexora
hexora --help

# Проверить одиночный файл
hexora audit path/to/script.py

# Проверить каталог (с удобным выводом)
hexora audit --output-format terminal ./resources/test/

# Аудит пакетов из venv (и фильтрация шумных правил)
hexora audit \
--exclude HX5020,HX5030,HX5040,HX5050,HX5060 \
--min-confidence high \
.venv/lib/python3.11/site-packages/


🔗Github (https://github.com/rushter/hexora)

@Python_Community_ru
👩‍💻 Vicinity (https://github.com/MinishLab/vicinity) — легковесное хранилище векторов с поддержкой гибких бэкендов для поиска ближайших соседей!

🌟 Он предоставляет простой и интуитивно понятный интерфейс для выполнения поиска ближайших соседей, поддерживая различные бэкенды и методы оценки. Основная цель Vicinity — унифицировать взаимодействие с различными методами поиска ближайших соседей, устраняя необходимость изучения отдельных интерфейсов для каждого из них.

🌟 Ключевые особенности Vicinity включают минимальные зависимости, высокую производительность, поддержку динамического обновления данных (вставка и удаление элементов), сериализацию для сохранения и загрузки хранилищ векторов, а также простоту использования. Поддерживаемые бэкенды включают BASIC, HNSW, FAISS, ANNOY, PyNNDescent и другие, каждый из которых предлагает свои параметры настройки для оптимизации поиска.

🔐 Лицензия: MIT

🖥 Github (https://github.com/MinishLab/vicinity)

@Python_Community_ru
🆕 PDF Arranger — лёгкий и удобный инструмент для работы с PDF.

Возможности:
- Объединение и разделение файлов
- Поворот и обрезка страниц
- Перестановка и удаление страниц
- Интуитивный drag-and-drop интерфейс

💻 Доступен для Linux, Windows (включая портативную версию) и BSD.
Полностью опенсорс (GPL-3.0).

Идеален, если нужно быстро подготовить PDF к печати или презентации — без сложных настроек.

📌 GitHub (https://github.com/pdfarranger/pdfarranger)

#PDF #opensource #Linux #devtools

@Python_Community_ru
This media is not supported in your browser
VIEW IN TELEGRAM
🖥 Полезный совет по ускорению Python-кода

Многие считают, что list comprehension всегда оптимален. Но при больших объёмах данных связка map + filter может быть быстрее: она выполняется на уровне C и не создаёт лишних промежуточных структур.

Когда нужно одновременно фильтровать и преобразовывать элементы, map + filter часто выигрывает по скорости.


def transform(x):
return x * x

data = range(10_000_000)

# Медленнее: создаём лишние промежуточные объекты
res1 = [transform(x) for x in data if x % 2 == 0]

# Быстрее: map и filter не создают лишних списков
res2 = list(map(transform, filter(lambda x: x % 2 == 0, data)))

print(res1[:5], res2[:5])

@Python_Community_ru
🖥 Новинка: `pyx` — Python-native пакетный реестр от Astral (в Beta)

Что такое `pyx`:
- Python-native registry, часть платформы Astral и продвинутый бэкенд для uv.
- Обеспечивает более быструю, безопасную и GPU-осознанную работу с пакетами (как приватными, так и публичными, включая PyPI и PyTorch).

Почему это важно:
- Следует философии Astral: поддержка open-source, без превращения инструментов в конкурирующие SaaS-продукты.
- Первый шаг к вертикальной интеграции с существующими open-source инструментами.
- Уже в бета-версии с ранними партнёрами — Ramp, Intercom и fal.

Впечатление:
pyx выглядит как обдуманный, open-source-ориентированный подход к packaging infrastructure, который может сделать разработку Python-экосистемы быстрее и мощнее.

https://simonwillison.net/2025/Aug/13/pyx/#atom-tag

@Python_Community_ru
👍1
Программируешь на Python? Попробуй оживить робота своим алгоритмом и поборись за призовой фонд в 10 250 000 рублей на True Tech Champ 2025.

True Tech Champ 2025 — это третий всероссийский чемпионат по программированию от МТС с онлайн-этапами отбора и грандиозным шоу-финалом в Москве.

Тебя ждут два трека — выбирай:

I. Алгоритмический [призовой фонд 2 750 000 рублей].

Если классический олимпиадный формат — твоя стихия, этот трек для тебя. Блесни математическими навыками, покажи скилы в работе со структурами данных и написании алгоритмов — и окажись выше соперников в турнирной таблице.

II. Программирование роботов [призовой фонд 7 500 000 рублей].

Запрограммируй робота на скоростное прохождение лабиринта в симуляторе и пройди в финал. На финале участники встретятся офлайн и сразятся на четырех уровнях с полосой препятствий, вспышками света, лазерами и другими препятствиями.

Трек будет интересен начинающим и опытным разработчикам: С++, Go, Python, JS, Java, C# и не только.

Подробности на (https://truetechchamp.ru/)сайте (https://truetechchamp.ru/?utm_source=tg_seeding&utm_medium=payed_posev&utm_campaign=True_tech_champ_2025&utm_content=pythonl&erid=2W5zFH7tWCQ). Регистрация открыта до 20 октября.

@Python_Community_ru
🚀 Улучшаем взаимодействие с Claude Code

cc-sessions — это инструмент, который оптимизирует работу с Claude Code, устраняя его основные недостатки. Он обеспечивает контроль над процессом программирования, заставляя Claude сначала обсуждать изменения, прежде чем вносить их в код.

🚀Основные моменты:
- Обеспечивает управление состоянием и памятью о задачах.
- Устраняет случайные изменения в коде.
- Сохраняет контекст между сессиями.
- Принуждает к обсуждению перед реализацией изменений.

📌 GitHub:

#python

@Python_Community_ru

https://github.com/GWUDCAP/cc-sessions
This media is not supported in your browser
VIEW IN TELEGRAM
🎬 HomeTube - Удобный загрузчик видео для вашего HomeLab

HomeTube предлагает простой веб-интерфейс для загрузки видео с различных платформ, включая YouTube, с автоматической организацией файлов для медиа-серверов, таких как Plex и Jellyfin. Идеальное решение для интеграции любимых видео в локальный медиаплеер.

🚀Основные моменты:
- 🎯 Загрузка видео в высоком качестве с автоматической организацией
- 📱 Доступ через веб-интерфейс с любого устройства в сети
- 🚫 Поддержка блокировки рекламы и спонсоров
- 🍪 Возможность разблокировки ограниченного контента с помощью cookies
- ⚙️ Поддержка более 1800 платформ

📌 GitHub: https://github.com/EgalitarianMonkey/hometube



#python

@Python_Community_ru
🎥 Редактирование видео с Lucy Edit

Lucy Edit — это модель для редактирования видео, позволяющая выполнять изменения по текстовым инструкциям. Она поддерживает разнообразные редактирования, включая смену одежды, замену персонажей и изменение сцен, сохраняя при этом движение и композицию.

🚀 Основные моменты:
- 🏃‍♂️ Сохранение движения и композиции видео
- 🎯 Надежные и точные редактирования
- 🧢 Изменение одежды и аксессуаров
- 🧌 Замена персонажей на животных или известных личностей
- 🗺️ Замена сцен по текстовым описаниям

📌 GitHub:

#python

@Python_Community_ru

https://github.com/DecartAI/Lucy-Edit-ComfyUI
🗣️ RealtimeVoiceChat — живой голосовой чат с ИИ.

RealtimeVoiceChat (https://github.com/KoljaB/RealtimeVoiceChaT) — это open-source проект, который позволяет общаться с LLM в реальном времени голосом. Он объединяет распознавание речи, LLM и синтез речи в единую систему с минимальной задержкой — около 500 мс при локальной установке.

➡️ Как работает:

1. Запись речи в браузере
2. Передача аудио по WebSocket на сервер
3. Распознавание речи через RealtimeSTT (на базе Whisper)
4. Ответ от LLM (Ollama, OpenAI и др.)
5. Озвучка ответа через RealtimeTTS (Coqui XTTSv2, Kokoro и др.)
6. Обратная передача аудио в браузер
7. Поддержка прерываний и динамики через turndetect.py

Особенности:

- Задержка ~500 мс
- Поддержка разных LLM и TTS движков
- Быстрый запуск через Docker Compose
- Чистый веб-интерфейс на Vanilla JS + Web Audio API

✔️ Стек:

- Backend: Python + FastAPI
- Frontend: JS + WebSockets
- ML: transformers, torchaudio, Ollama, Whisper, TTS
- Контейнеризация: Docker

✔️ Требуется CUDA-совместимая видеокарта (для Whisper/TTS) и Docker.

🔥 Отличный проект для тех, кто хочет интегрировать голосовой интерфейс с LLM — например, для ассистентов, чат-ботов, презентаций или UX-экспериментов.

🔜 Репозиторий: https://github.com/KoljaB/RealtimeVoiceChat
🔜 Демо: https://www.youtube.com/watch?v=-1AD4gakCKw



#tts #llm #opensource

@Python_Community_ru
👍1
IT_ONE Cup. Code & Analyst — хакатон для аналитиков и разработчиков, где ты узнаешь, как работает IT-команда, и получишь сильный кейс в портфолио. Выбери трек и реши одну из задач:
→ Проанализируй BPMN-модель кредитного процесса и подготовь ТЗ на систему мониторинга эффективности.
→ Разработай сервис, который в реальном времени следит за переводами и оповещает о подозрительных операциях.

🏆 Призовой фонд: 900 000 рублей
💻 Формат: онлайн
🗓 Регистрация до 16 октября: https://cnrlink.com/itonecupmsupythonl (https://cnrlink.com/itonecupmsupythonl?erid=2W5zFJGEo9a)

Приглашаем системных аналитиков, разработчиков и менеджеров проектов. Размер команды — от 1 до 5 человек.

Что тебя ждёт:
• Применишь навыки системного анализа, построения архитектуры и работы с потоковыми данными.
• Получишь готовый проект в портфолио.
• Для участников ТОП-5 команд в каждом треке — фирменный мерч.

Задачи соревнования:
Трек 1. Навигатор оптимизации. Проанализируй кредитный процесс банка, выяви узкие места и создай ТЗ для системы мониторинга производительности. Решение поможет оптимизировать критически важные процессы.

Трек 2. Финансовый радар. Разработай сервис для анализа транзакций в реальном времени. Архитектура должна включать правила обнаружения мошенничества и поддержку различных алгоритмов обработки.

Ждём тебя на IT_ONE Cup. Code & Analyst — старт 17 октября на Codenrock: https://cnrlink.com/itonecupmsupythonl

@Python_Community_ru
This media is not supported in your browser
VIEW IN TELEGRAM
🔥 Python трюк: динамическое добавление методов в класс

Мало кто знает, но в Python можно на лету добавлять методы в уже созданный класс. Это удобно для плагинов, тестов или динамических API.

Пример 👇


class User:
def __init__(self, name):
self.name = name

# Обычный объект
u = User("Alice")

# Функция, которую хотим "подмешать"
def greet(self):
return f"Hello, {self.name}!"

# Вклиниваем метод в класс
User.greet = greet

print(u.greet()) # Hello, Alice!


Приём называется monkey patching.

Это мощный инструмент — но им надо пользоваться аккуратно, чтобы не сломать читаемость кода.

https://www.youtube.com/shorts/64-dqXJZ8RM

@Python_Community_ru
🐍 Простые фишки парсинга в Python

1️⃣ Парсинг больших JSON-файлов без загрузки в память

import ijson

with open("big.json", "r") as f:
for item in ijson.items(f, "records.item"):
print(item) # потоковый парсинг, не держим всё в памяти


2️⃣ HTML-парсинг с поддержкой XPath через lxml


from lxml import html

doc = html.fromstring("Hello")
print(doc.xpath("//span/text()")[0]) # Hello


3️⃣ Парсинг логов с регулярками и именованными группами


import re

line = '2025-08-23 12:10:45 [INFO] User=egor Action=login'
pattern = r'(?P\d{4}-\d{2}-\d{2}) .* User=(?P\w+) Action=(?P\w+)'
m = re.search(pattern, line)
print(m.groupdict())
# {'date': '2025-08-23', 'user': 'egor', 'action': 'login'}


4️⃣ Парсинг YAML c поддержкой типов


import yaml

data = yaml.safe_load("""
user: egor
active: true
age: 30
""")
print(data) # {'user': 'egor', 'active': True, 'age': 30}

5️⃣ Парсинг бинарных данных (struct)



import struct

raw = b"\x01\x00\x00\x00\x2A\x00"
id, value = struct.unpack("

@Python_Community_ru