🖥 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
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
Когда мы используем модуль 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
Wikipedia
Вихрь Мерсенна
генератор псевдослучайных чисел (ГПСЧ), разработанный в 1997 году японскими учёными Макото Мацумото и Такудзи Нисимура
Отличный курс для тех, кто хочет разобраться в нейронках с нуля от Андрея Карпати (OpenAI/Tesla).
Внутри бесплатная серия лекций на YouTube (и репа на GitHub), где ты с нуля учишься собирать нейронки. Всё максимально hands-on:
Автор не просто рассказывает теорию, а пишет код вместе с тобой — от самых азов до тренировки сетей.
https://github.com/karpathy/nn-zero-to-hero/
@Python_Community_ru
Внутри бесплатная серия лекций на 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
Если в функции задать аргумент по умолчанию как 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
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
Что это:
- Ищет опасные конструкции в 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
🌟 Он предоставляет простой и интуитивно понятный интерфейс для выполнения поиска ближайших соседей, поддерживая различные бэкенды и методы оценки. Основная цель 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
✨ Возможности:
- Объединение и разделение файлов
- Поворот и обрезка страниц
- Перестановка и удаление страниц
- Интуитивный 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
Многие считают, что 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
Что такое `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
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
cc-sessions — это инструмент, который оптимизирует работу с Claude Code, устраняя его основные недостатки. Он обеспечивает контроль над процессом программирования, заставляя Claude сначала обсуждать изменения, прежде чем вносить их в код.
🚀Основные моменты:
- Обеспечивает управление состоянием и памятью о задачах.
- Устраняет случайные изменения в коде.
- Сохраняет контекст между сессиями.
- Принуждает к обсуждению перед реализацией изменений.
📌 GitHub:
#python
@Python_Community_ru
https://github.com/GWUDCAP/cc-sessions
GitHub
GitHub - GWUDCAP/cc-sessions: An opinionated extension set for Claude Code (hooks, subagents, commands, task/git management infrastructure)
An opinionated extension set for Claude Code (hooks, subagents, commands, task/git management infrastructure) - 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
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
Lucy Edit — это модель для редактирования видео, позволяющая выполнять изменения по текстовым инструкциям. Она поддерживает разнообразные редактирования, включая смену одежды, замену персонажей и изменение сцен, сохраняя при этом движение и композицию.
🚀 Основные моменты:
- 🏃♂️ Сохранение движения и композиции видео
- 🎯 Надежные и точные редактирования
- 🧢 Изменение одежды и аксессуаров
- 🧌 Замена персонажей на животных или известных личностей
- 🗺️ Замена сцен по текстовым описаниям
📌 GitHub:
#python
@Python_Community_ru
https://github.com/DecartAI/Lucy-Edit-ComfyUI
GitHub
GitHub - DecartAI/Lucy-Edit-ComfyUI
Contribute to DecartAI/Lucy-Edit-ComfyUI development by creating an account on GitHub.
🗣️ 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
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
GitHub
GitHub - KoljaB/RealtimeVoiceChat: Have a natural, spoken conversation with AI!
Have a natural, spoken conversation with AI! Contribute to KoljaB/RealtimeVoiceChat development by creating an account on GitHub.
👍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
→ Проанализируй 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 можно на лету добавлять методы в уже созданный класс. Это удобно для плагинов, тестов или динамических 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
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