Инструмент даёт возможность фиксировать любые операции с файлами и директориями (создание, удаление, модификация, перемещение) и поддерживает работу в средах Linux, macOS и Windows
Библиотека будет особенно полезна в таких случаях, как:
▪ автоматический перезапуск серверов при обновлениях файлов
▪ обработка вновь загружаемых файлов в заданную директорию
▪ синхронизация содержимого папок
▪ создание механизмов резервного копирования, оперативно реагирующих на изменения
🔗 Watchdog
🔗 Документация
@pythonl
Please open Telegram to view this post
VIEW IN TELEGRAM
Он основан на системе LangGraph, использует анализ кода, документации и сигналов из сообщества, чтобы отфильтровывать малоизвестные, но перспективные проекты.
Ключевые возможности:
▪ Семантическая проверка: ищет не просто по ключевым словам, а «понимает» содержание.
▪ Многогранный анализ: учитывает не только код, но и документацию, активность и отзывы сообщества.
▪ GitHub-интеграция: фокусируется на данном экосистемном источнике, упрощая отбор качественных проектов.
@pythonl
Please open Telegram to view this post
VIEW IN TELEGRAM
Надоело переключаться между SQL и pandas?
Ibis — это библиотека, которая объединяет лучшее из двух миров: SQL-запросы и Python-пайплайны в одном коде.
📦 Установка (с DuckDB и примерами):
bash pip install 'ibis-framework[duckdb,examples]'
🔍 Пример:
import ibis
penguins = ibis.examples.penguins.fetch()
# SQL внутри Python
res = penguins.sql(\"""
SELECT species, island, count(*) AS count
FROM penguins GROUP BY 1, 2
\""")
# Python-стиль фильтрации и сортировки
res.order_by("count")
┏━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━┓
┃ species ┃ island ┃ count ┃
┡━━━━━━━━━━━╇━━━━━━━━━━━╇━━━━━━━┩
│ string │ string │ int64 │
├───────────┼───────────┼───────┤
│ Adelie │ Biscoe │ 44 │
│ Adelie │ Torgersen │ 52 │
│ Adelie │ Dream │ 56 │
│ Chinstrap │ Dream │ 68 │
│ Gentoo │ Biscoe │ 124 │
└───────────┴───────────┴───────┘
📌 Что умеет Ibis: — SQL-прослойка прямо по датафреймам
— Один и тот же код работает с DuckDB, PostgreSQL, BigQuery, SQLite и др.
— Унифицированный синтаксис независимо от движка
— Отлично вписывается в data science-пайплайны
📊 Где пригодится:
— Аналитика
— Дашборды
— EDA и быстрые прототипы
— Интеграция SQL в ноутбуках без боли.
Совместим с Jupyter, Airflow, и всей питоновской экосистемой.
🔗 Подробнее
🔗 Github
@pythonl
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
🗣 OuteTTS 1.0 — это современный open-source инструмент для синтеза речи (Text-to-Speech), который делает акцент на высоком качестве озвучки, клонировании голоса и поддержке множества языков. Основные особенности:
🔊 Ключевые возможности:
Высокая производительность:
Способен генерировать аудио до 42 секунд (~8192 токена) за один прогон.
Однако для наилучших результатов рекомендуется ограничиваться ~7000 токенами.
- Поддержка клонирования голоса:
Использует референсный голос (speaker reference) длиной, например, 10 секунд. В таком случае контекст для синтеза сокращается: доступно около 32 секунд активного контента (из 42).
- 20 языков:
Поддерживает озвучку на 20 различных языках, что делает его универсальным решением для мультиязычных проектов.
🛠️ Под капотом:
Хотя подробностей о модели в описании немного, из GitHub-репозитория следует, что:
Используются современные архитектуры трансформеров для TTS.
Поддерживается реалистичное клонрование голоса по короткому фрагменту.
Скорость генерации и качество аудио находятся на уровне лучших TTS-систем с открытым кодом.
Установка:
📥 Ссылка на репозиторий
@pythonl
🔊 Ключевые возможности:
Высокая производительность:
Способен генерировать аудио до 42 секунд (~8192 токена) за один прогон.
Однако для наилучших результатов рекомендуется ограничиваться ~7000 токенами.
- Поддержка клонирования голоса:
Использует референсный голос (speaker reference) длиной, например, 10 секунд. В таком случае контекст для синтеза сокращается: доступно около 32 секунд активного контента (из 42).
- 20 языков:
Поддерживает озвучку на 20 различных языках, что делает его универсальным решением для мультиязычных проектов.
🛠️ Под капотом:
Хотя подробностей о модели в описании немного, из GitHub-репозитория следует, что:
Используются современные архитектуры трансформеров для TTS.
Поддерживается реалистичное клонрование голоса по короткому фрагменту.
Скорость генерации и качество аудио находятся на уровне лучших TTS-систем с открытым кодом.
Установка:
git clone https://github.com/edwko/OuteTTS.git
cd OuteTTS
pip install -r requirements.txt
python
from outetts import OuteTTS
tts = OuteTTS(
reference_speaker_path="reference_audio/igor_voice.wav",
language="ru" # поддерживаются и другие языки, например: "en", "ja"
)
text = "Привет, Python разработчик! Я твой кастомный голосовой ассистент."
audio = tts.generate(text)
with open("output.wav", "wb") as f:
f.write(audio)
📥 Ссылка на репозиторий
@pythonl
Инженеры и любители работать с железом, отмечаем даты: 25 и 26 апреля в Москве пройдет Repair Cafe.
Когда-то Яндекс начинался с Поиска, а сегодня в компании полный in-house цикл производства железа: роботы-доставщики, автономный транспорт, умные устройства для дома и многое другое. И для тех, кто разделяет этот инженерный дух и не боится пробовать и создавать, Яндекс проводит Repair Cafe.
Оба дня будет работать мастерская — сердце всего мероприятия. Место для тех, кто хочет припаять контакты, починить наушники или разобрать проигрыватель под чутким присмотром опытных наставников. Там же будет доступно целое меню паяльников и нужных запчастей. А любителей ретро-железа ждет починка культового ПК «Ленинград», который выпускался еще в конце 80-х годов.
Кроме того, можно послушать доклады, где спикеры поговорят про неочевидные особенности термодизайна серверов и расскажут, как им удалось сделать устройство для чтения ДНК напильником.
Зарегистрироваться и ознакомиться с программой можно здесь. Прием заявок открыт до 16 апреля.
Когда-то Яндекс начинался с Поиска, а сегодня в компании полный in-house цикл производства железа: роботы-доставщики, автономный транспорт, умные устройства для дома и многое другое. И для тех, кто разделяет этот инженерный дух и не боится пробовать и создавать, Яндекс проводит Repair Cafe.
Оба дня будет работать мастерская — сердце всего мероприятия. Место для тех, кто хочет припаять контакты, починить наушники или разобрать проигрыватель под чутким присмотром опытных наставников. Там же будет доступно целое меню паяльников и нужных запчастей. А любителей ретро-железа ждет починка культового ПК «Ленинград», который выпускался еще в конце 80-х годов.
Кроме того, можно послушать доклады, где спикеры поговорят про неочевидные особенности термодизайна серверов и расскажут, как им удалось сделать устройство для чтения ДНК напильником.
Зарегистрироваться и ознакомиться с программой можно здесь. Прием заявок открыт до 16 апреля.
🔌 python-kasa — управление умными устройствами TP-Link из Python.
Если у вас есть умные розетки, лампы или другие устройства TP-Link и вы хотели бы автоматизировать их через Python, обратите внимание на эту библиотеку. С её помощью можно легко включать/выключать устройства, проверять их статус и даже управлять через командную строку. Поддерживаются как модели Kasa, так и Tapo, включая розетки, выключатели, лампы и даже камеры.
🤖 GitHub
@pythonl
Если у вас есть умные розетки, лампы или другие устройства TP-Link и вы хотели бы автоматизировать их через Python, обратите внимание на эту библиотеку. С её помощью можно легко включать/выключать устройства, проверять их статус и даже управлять через командную строку. Поддерживаются как модели Kasa, так и Tapo, включая розетки, выключатели, лампы и даже камеры.
🤖 GitHub
@pythonl
Создание собственной игры в духе легендарного Super Mario Bros — это отличный способ прокачать навыки программирования, погрузиться в основы геймдева и просто повеселиться.
Гайд по разработке простой платформенной игры с нуля Python, используя библиотеку Pygame.
📌 Гайд
@pythonl
Please open Telegram to view this post
VIEW IN TELEGRAM
🚀 Летняя школа бэкенда Яндекса открыла набор!
Хочешь провести лето с пользой, развивая реальные сервисы в команде с профи? Это твой шанс!
Если ты:
• Уверенно пишешь на Python, Java или C++
• Понимаешь основы алгоритмов и структур данных
— подавай заявку в Летнюю школу бэкенд‑разработки Яндекса.
🗓 Формат обучения:
• 2 июня – 27 июля — онлайн-лекции и практика
• 28 июля – 24 августа — работа над проектами (онлайн или офлайн)
💡 Что тебя ждёт:
• Реальные задачи и работа в фулстек-команде
• Наставничество от инженеров Яндекса
• Возможность получить офер: >50% выпускников становятся стажёрами или сотрудниками компании
• Нетворкинг, лекторий и крутая атмосфера
📍Участие бесплатное.
🕓 Заявки принимаются до 27 апреля. Не упусти!
🔗 Подробнее
#backend #летняяшкола #яндекс #стажировка #разработка #python #java #cplusplus
Хочешь провести лето с пользой, развивая реальные сервисы в команде с профи? Это твой шанс!
Если ты:
• Уверенно пишешь на Python, Java или C++
• Понимаешь основы алгоритмов и структур данных
— подавай заявку в Летнюю школу бэкенд‑разработки Яндекса.
🗓 Формат обучения:
• 2 июня – 27 июля — онлайн-лекции и практика
• 28 июля – 24 августа — работа над проектами (онлайн или офлайн)
💡 Что тебя ждёт:
• Реальные задачи и работа в фулстек-команде
• Наставничество от инженеров Яндекса
• Возможность получить офер: >50% выпускников становятся стажёрами или сотрудниками компании
• Нетворкинг, лекторий и крутая атмосфера
📍Участие бесплатное.
🕓 Заявки принимаются до 27 апреля. Не упусти!
🔗 Подробнее
#backend #летняяшкола #яндекс #стажировка #разработка #python #java #cplusplus
🚀 Как Duolingo ускорил микросервисы на 40% с помощью асинхронного Python 🐍⚡
Duolingo рассказали, как им удалось значительно повысить производительность своих Python-сервисов, переведя их на
💸 Мотивация: производительность и снижение затрат
Duolingo работает с большим количеством микросервисов, обрабатывающих огромные объёмы трафика. Несмотря на высокую нагрузку, многие их Python-сервисы простаивали в ожидании I/O — например, сетевых запросов или операций с базой данных. Это означало неэффективное использование CPU, а значит — деньги на облачный хостинг тратились зря.
Асинхронный код — способ “переключаться” между задачами во время ожидания, используя CPU с большей отдачей. Именно это стало главной мотивацией: не “просто быть async”, а снизить расходы.
⚙️ Как проходила миграция
Процесс был постепенным и продуманным. Ниже ключевые шаги:
▪ Переход не “всё или ничего”
Команда не бросалась переписывать весь сервис с нуля. Они начали с конвертации отдельных маршрутов (routes) на async def, добавляя поддержку асинхронности по частям.
▪ Инструменты постепенно адаптировали
Библиотеки и инструменты внутри компании пришлось обновить:
▪ свой HTTP-клиент переписали под aiohttp,
▪ систему аутентификации сделали совместимой с async-контекстами,
▪ логирование, трассировка и метрики обновили под async-архитектуру.
▪ Тесты и инфраструктура
Асинхронные изменения требовали пересмотра тестов. Они внедрили поддержку pytest-asyncio и переосмыслили подход к мокам и фикстурам.
▪ Запуск в проде — поэтапно
Сначала маршруты работали в синхронном режиме. Потом их перевели в async-режим и замерили разницу. Так удалось отловить “узкие места” до массового внедрения.
📈 Результаты: +40% производительности на инстанс
▪ У каждого экземпляра микросервиса CPU начал использоваться эффективнее.
▪ Снизилось среднее время ответа (latency).
▪ Уменьшилось количество необходимых инстансов — экономия в $$$.
▪ Код стал удобнее масштабировать и поддерживать в I/O-интенсивной среде.
Пока один запрос “ждёт”, процессор может выполнять другие задачи.
🔍 Выводы
Duolingo подчёркивает:
асинхронность не нужна “просто потому что модно”.
Но если у вас сервис с большим числом I/O-операций и важна производительность — async Python может дать реальный прирост и экономию.
➡ Оригинальный пост
@pythonl
Duolingo рассказали, как им удалось значительно повысить производительность своих Python-сервисов, переведя их на
async/await
, и сделали это не ради хайпа, а ради экономии.💸 Мотивация: производительность и снижение затрат
Duolingo работает с большим количеством микросервисов, обрабатывающих огромные объёмы трафика. Несмотря на высокую нагрузку, многие их Python-сервисы простаивали в ожидании I/O — например, сетевых запросов или операций с базой данных. Это означало неэффективное использование CPU, а значит — деньги на облачный хостинг тратились зря.
Асинхронный код — способ “переключаться” между задачами во время ожидания, используя CPU с большей отдачей. Именно это стало главной мотивацией: не “просто быть async”, а снизить расходы.
⚙️ Как проходила миграция
Процесс был постепенным и продуманным. Ниже ключевые шаги:
▪ Переход не “всё или ничего”
Команда не бросалась переписывать весь сервис с нуля. Они начали с конвертации отдельных маршрутов (routes) на async def, добавляя поддержку асинхронности по частям.
▪ Инструменты постепенно адаптировали
Библиотеки и инструменты внутри компании пришлось обновить:
▪ свой HTTP-клиент переписали под aiohttp,
▪ систему аутентификации сделали совместимой с async-контекстами,
▪ логирование, трассировка и метрики обновили под async-архитектуру.
▪ Тесты и инфраструктура
Асинхронные изменения требовали пересмотра тестов. Они внедрили поддержку pytest-asyncio и переосмыслили подход к мокам и фикстурам.
▪ Запуск в проде — поэтапно
Сначала маршруты работали в синхронном режиме. Потом их перевели в async-режим и замерили разницу. Так удалось отловить “узкие места” до массового внедрения.
📈 Результаты: +40% производительности на инстанс
▪ У каждого экземпляра микросервиса CPU начал использоваться эффективнее.
▪ Снизилось среднее время ответа (latency).
▪ Уменьшилось количество необходимых инстансов — экономия в $$$.
▪ Код стал удобнее масштабировать и поддерживать в I/O-интенсивной среде.
Пока один запрос “ждёт”, процессор может выполнять другие задачи.
🔍 Выводы
Duolingo подчёркивает:
асинхронность не нужна “просто потому что модно”.
Но если у вас сервис с большим числом I/O-операций и важна производительность — async Python может дать реальный прирост и экономию.
➡ Оригинальный пост
@pythonl
🚀 Автоматизируй Docker для Python за 1 команду с Python
📦 Dockerpyze — мощный опенсорс-инструмент, который превращает любой Python-проект на uv или poetry в Docker-образ без ручной возни.
💡 Просто добавь -
🔧 Поддерживает:
✅ PEP-621
✅ uv и poetry
✅ кастомные переменные, порты и зависимости
✅ CI/CD (в т.ч. GitHub Actions)
🔥 Подходит для быстрой упаковки ML-сервисов, REST API, CLI-инструментов и всего, что крутится на Python.
▪ Github
#python #docker #poetry #uv #devtools #opensource #cli
@pythonl
📦 Dockerpyze — мощный опенсорс-инструмент, который превращает любой Python-проект на uv или poetry в Docker-образ без ручной возни.
💡 Просто добавь -
[tool.dpy]
в pyproject.toml
, укажи entrypoint
— и собирай образы одной командой. Без Dockerfile, без боли.🔧 Поддерживает:
✅ PEP-621
✅ uv и poetry
✅ кастомные переменные, порты и зависимости
✅ CI/CD (в т.ч. GitHub Actions)
🔥 Подходит для быстрой упаковки ML-сервисов, REST API, CLI-инструментов и всего, что крутится на Python.
▪ Github
#python #docker #poetry #uv #devtools #opensource #cli
@pythonl
🧠 Python-задача на внимательность и знание подводных камней
Что выведет этот код?
❓ Варианты ответа:
A)0 1 2
В) 2 2 2
C)0 0 0
D)Ошибка на этапе выполнения
✅ Ответ: 0 1 2
📘 Объяснение:
🔹 Цикл for i in range(3) проходит по значениям 0, 1, 2.
🔹 В каждой итерации вызывается wrapper(x=i) — это копирует текущее значение i в локальную переменную x.
🔹 Затем возвращается lambda: x, которая запоминает это конкретное значение x.
🔹 В итоге:
a() → 0
b() → 1
c() → 2
Если бы мы не использовали x=i по умолчанию, а писали просто lambda: i, все функции замкнули бы одну и ту же переменную i, и на момент вызова она бы уже была равна 3.
@pythonl
Что выведет этот код?
def make_funcs():
funcs = []
for i in range(3):
def wrapper(x=i):
return lambda: x
funcs.append(wrapper())
return funcs
a, b, c = make_funcs()
print(a(), b(), c())
❓ Варианты ответа:
A)0 1 2
В) 2 2 2
C)0 0 0
D)Ошибка на этапе выполнения
📘 Объяснение:
🔹 В каждой итерации вызывается wrapper(x=i) — это копирует текущее значение i в локальную переменную x.
🔹 Затем возвращается lambda: x, которая запоминает это конкретное значение x.
🔹 В итоге:
a() → 0
b() → 1
c() → 2
Если бы мы не использовали x=i по умолчанию, а писали просто lambda: i, все функции замкнули бы одну и ту же переменную i, и на момент вызова она бы уже была равна 3.
@pythonl
🐍 Задача по Python: Замыкания и области видимости
Что выведет следующий код?
Варианты ответа:
A)
B)
C)
D) Ошибка выполнения
---
✅ Правильный ответ:A
Почему:
Функция создаёт замыкание. Переменная сохраняется между вызовами , потому что — замыкает и изменяет её с помощью . Это классический пример использования замыканий в Python.
@pythonl
Что выведет следующий код?
def outer():
x = 5
def inner():
nonlocal x
x += 1
return x
return inner
f = outer()
print(f())
print(f())
print(f())
Варианты ответа:
A)
7
8
B)
5
5
C)
6
6
D) Ошибка выполнения
---
✅ Правильный ответ:
Почему:
Функция
outer
x
f
inner
x
nonlocal
@pythonl
Forwarded from Machinelearning
Python уже несколько лет уверенно лидирует среди языков программирования, а теперь стал ещё ближе к железу. На GTC 2025 NVIDIA объявила о полноценной интеграции Python в свой CUDA-стек.
Это значит, что писать код для GPU можно будет напрямую на Python — без погружения в C++ или Fortran. Как подчеркнул Стивен Джонс, архитектор CUDA, цель — сделать инструмент естественным для Python-разработчиков: «Это не перевод синтаксиса C на Python. Все должно работать так, как привыкли разработчики».
Раньше CUDA требовала глубокого понимания низкоуровневых языков и это здорово ограничивало аудиторию. Сейчас, когда Python стал стандартом в ML и DS, NVIDIA открывает двери для миллионов программистов. По данным The Futurum Group, в 2023 году CUDA использовали 4 миллиона человек — теперь их число может резко вырасти.
Техническая часть такая же обширная, как и ожидания этого события профессиональным сообществом.
cuPyNumeric
— аналог NumPy
, который переносит вычисления с CPU на GPU буквально заменой импорта.Но главное — новый подход к параллельным вычислениям. Вместо ручного управления потоками, как в C++, NVIDIA предлагает модель CuTile, которая оперирует массивами, а не отдельными элементами. Это упрощает отладку и делает код читаемым, не жертвуя скоростью. По сути, разработчики получают высокоуровневую абстракцию, скрывающую сложности железа, но сохраняющую гибкость.
Пока CuTile доступен только для Python, но в планах — расширение для C++. Это часть стратегии NVIDIA по поддержке новых языков: Rust и Julia уже на походе.
Python-сообщество уже может экспериментировать — например, интегрировать CUDA-ядра в PyTorch или вызывать привычные библиотеки. Теперь даже те, кто никогда не писал на C++, смогут использовать всю мощь GPU — осталось проверить, как это скажется на скорости создания прекрасных LLM светлого будущего.
@ai_machinelearning_big_data
#AI #ML #Python #CUDA #NVIDIA
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM