Python/ django
58.9K subscribers
2.08K photos
62 videos
47 files
2.79K links
по всем вопросам @haarrp

@itchannels_telegram - 🔥 все ит-каналы

@ai_machinelearning_big_data -ML

@ArtificialIntelligencedl -AI

@datascienceiot - 📚

@pythonlbooks

РКН: clck.ru/3FmxmM
加入频道
🖥 Watchdog — это библиотека, специализирующаяся на отслеживании изменений в файловой системе, но в стильном дизайне.

Инструмент даёт возможность фиксировать любые операции с файлами и директориями (создание, удаление, модификация, перемещение) и поддерживает работу в средах Linux, macOS и Windows

Библиотека будет особенно полезна в таких случаях, как:
 автоматический перезапуск серверов при обновлениях файлов
 обработка вновь загружаемых файлов в заданную директорию
 синхронизация содержимого папок
 создание механизмов резервного копирования, оперативно реагирующих на изменения

🔗 Watchdog
🔗 Документация

@pythonl
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 DeepGit: Repo Discovery — это открытый AI-инструмент, который помогает находить полезные репозитории на GitHub с помощью семантического поиска.

Он основан на системе LangGraph, использует анализ кода, документации и сигналов из сообщества, чтобы отфильтровывать малоизвестные, но перспективные проекты.

Ключевые возможности:
Семантическая проверка: ищет не просто по ключевым словам, а «понимает» содержание.
Многогранный анализ: учитывает не только код, но и документацию, активность и отзывы сообщества.
GitHub-интеграция: фокусируется на данном экосистемном источнике, упрощая отбор качественных проектов.

🖥 GitHub

@pythonl
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 Ibis — SQL и Python в одном флаконе

Надоело переключаться между 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-систем с открытым кодом.

Установка:
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 апреля.
🔌 python-kasaуправление умными устройствами TP-Link из Python.

Если у вас есть умные розетки, лампы или другие устройства TP-Link и вы хотели бы автоматизировать их через Python, обратите внимание на эту библиотеку. С её помощью можно легко включать/выключать устройства, проверять их статус и даже управлять через командную строку. Поддерживаются как модели Kasa, так и Tapo, включая розетки, выключатели, лампы и даже камеры.

🤖 GitHub

@pythonl
🖥 Разработка игры в стиле Mario с нуля на Python

Создание собственной игры в духе легендарного 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
🚀 Как Duolingo ускорил микросервисы на 40% с помощью асинхронного Python 🐍

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-образ без ручной возни.

💡 Просто добавь - [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-задача на внимательность и знание подводных камней

Что выведет этот код?


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)Ошибка на этапе выполнения

Ответ: 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
🐍 Задача по Python: Замыкания и области видимости

Что выведет следующий код?


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) Ошибка выполнения

---

Правильный ответ: A

Почему:
Функция
outer создаёт замыкание. Переменная x сохраняется между вызовами f, потому что inner — замыкает x и изменяет её с помощью nonlocal. Это классический пример использования замыканий в Python.

@pythonl
Forwarded from Machinelearning
🌟 NVIDIA добавила нативную поддержку Python в CUDA.

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 буквально заменой импорта.

🟢Во-вторых, CUDA Core переосмыслен для Python: здесь сделан упор на JIT-компиляцию и минимизацию зависимостей.

🟢В-третьих, добавлены инструменты для профилирования и анализа кода, а ускоренные C++-библиотеки теперь доступны из Python без потерь в производительности.

Но главное — новый подход к параллельным вычислениям. Вместо ручного управления потоками, как в C++, NVIDIA предлагает модель CuTile, которая оперирует массивами, а не отдельными элементами. Это упрощает отладку и делает код читаемым, не жертвуя скоростью. По сути, разработчики получают высокоуровневую абстракцию, скрывающую сложности железа, но сохраняющую гибкость.

Пока CuTile доступен только для Python, но в планах — расширение для C++. Это часть стратегии NVIDIA по поддержке новых языков: Rust и Julia уже на походе.

Python-сообщество уже может экспериментировать — например, интегрировать CUDA-ядра в PyTorch или вызывать привычные библиотеки. Теперь даже те, кто никогда не писал на C++, смогут использовать всю мощь GPU — осталось проверить, как это скажется на скорости создания прекрасных LLM светлого будущего.

🔜 Посмотреть полную презентацию на GTC 2025


@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