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

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

@ai_machinelearning_big_data -ML

@ArtificialIntelligencedl -AI

@datascienceiot - 📚

@pythonlbooks

РКН: clck.ru/3FmxmM
加入频道
🖥 pre-commit — ваш автоматический код-ревьюер.

Эта библиотека превращает Git-хуки в мощную систему контроля качества кода.

Вместо ручного запуска линтеров перед каждым комитом, pre-commit автоматически проверяет изменения на качество — будь то синтаксические ошибки в Python или форматирование SCSS-файлов.

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

@python_job_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 Radon — инструмент, помогающий разработчикам находить проблемы в коде с помощью метрик.

В отличие от других линтеров, Radon дает количественную оценку: сколько тестов нужно для функции и насколько она переусложнена.

Проект работает с Python 2.7–3.12 без внешних зависимостей. Результаты можно получить через командную строку или интегрировать в CI/CD-пайплайны.

📌 GitHub

@pythonl
Please open Telegram to view this post
VIEW IN TELEGRAM
🔎 ClatScope — это мощный инструмент для проведения разведки с использованием открытых источников (OSINT), разработанный для сбора разнообразной информации об IP-адресах, доменах, электронных почтах, номерах телефонов и многом другом!

🔐 Лицензия: Apache-2.0

🖥 Github

@pythonl
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 FinMind — проект, предлагающий более 50 автоматически обновляемых датасетов, охватывающих рынки Тайваня, США и мировые активы.

Причем это не просто архив исторических котировок. Здесь собраны:
▪️Технические данные (от тиковых данных до индикаторов PER/PBR)
▪️Отчётность, дивиденды, выручка
▪️Фьючерсы, опционы
▪️Ставки ЦБ, сырьё, облигации

💯 При этом проект полностью открыт и ориентирован на образовательные цели. Данные доступны через простой Python-клиент, что делает FinMind удобной альтернативой платным Bloomberg Terminal или Quandl для учебных проектов и прототипирования.

🤖 GitHub

@pythonl
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡️ Asyncer — мини-библиотека для удобной работы с асинхронным кодом от создателя FastAPI. Важно уточнить, что это не фреймворк, а набор хелперов, которые упрощают работу с асинхронностью: делают код чище, а подсказки в IDE — полезнее.

Библиотека заточена под удобство разработчика: улучшает автодополнение, помогает избегать ошибок на этапе проверки типов данных и снижает барьер для смешивания асинхронного и синхронного кода. Сейчас в Asyncer всего 4 функции, так что интеграция в проект займёт минуты.

🤖 GitHub

@pythonl
🖥Textcase — это библиотека на Python, предназначенная для преобразования строк между различными стилями написания (кейсов).

Библиотека поддерживает такие форматы, как snake_case, kebab-case, camelCase, PascalCase, CONSTANT_CASE, а также преобразование в нижний, верхний и титульный регистры. ​

Основные особенности Textcase:
- Обработка акронимов: корректно распознает и форматирует акронимы в строках, например, HTTPRequest.​
GitHub

- Поддержка символов вне ASCII: правильно работает с символами, выходящими за пределы ASCII. Однако библиотека не делает выводов о языке ввода; например, диграф 'ij' в голландском не будет капитализирован как единый символ. ​

- Высокая производительность: эффективная реализация без использования регулярных выражений.​

- Отсутствие внешних зависимостей: библиотека не имеет внешних зависимостей, что делает ее легковесной и простой для интеграции. ​

Установка:
pip install textcase

Пример использования:


from textcase import case, convert

print(convert("example string", case.SNAKE)) # example_string
print(convert("ExampleString", case.KEBAB)) # example-string
print(convert("example-string", case.CAMEL)) # exampleString
print(convert("Example String", case.PASCAL)) # ExampleString


🖥 Github
📌 Документация
Please open Telegram to view this post
VIEW IN TELEGRAM
📚 Cosmic Python: Building Clean Architectures for Welcome Failure"

Бесплатная книга, которая проведет читателя через процесс построения сложного приложения на Python с использованием современных архитектурных подходов.

Целевая аудитория: Python-разработчики, которые уже знакомы с основами языка, но хотят научиться проектировать и строить большие приложения, избегая кривой структуры проектов и "спагетти-кода".

Ключевые темы и концепции, анонсированные в предисловии:
Архитектурные паттерны: В частности, акцент на чистых архитектурах (Clean Architecture), таких как Ports and Adapters (Hexagonal Architecture). Идея в том, чтобы изолировать ядро бизнес-логики от внешних зависимостей (базы данных, веб-фреймворки, внешние API).
Предметно-ориентированное проектирование (Domain-Driven Design - DDD): Как моделировать сложную бизнес-логику, фокусируясь на предметной области.
Событийно-ориентированная архитектура (Event-Driven Architecture - EDA): Использование событий для взаимодействия компонентов системы, что способствует слабой связанности.
Разделение ответственности запросов и команд (Command Query Responsibility Segregation - CQRS): Паттерн для разделения операций чтения и записи данных, что может улучшить производительность и масштабируемость.
Тестирование: Подчеркивается важность тестирования на разных уровнях (модульное, интеграционное, сквозное) как неотъемлемой части процесса разработки и поддержки архитектуры.
Управление зависимостями (Dependency Injection): Техники для создания слабосвязанных компонентов.

🔗 Книга
🖥 Вот 17 топовых GitHub-репозиториев для изучения Python с ссылками:

1. 30-Days-Of-Python — 30-дневный челлендж по основам Python.
2. Python Basics — азы Python для новичков, просто и с примерами.
3. Learn Python — справочник с кодом, пояснениями и практикой.
4. Python Guide — гайд по практикам, инструментам и сложным темам.
5. Learn Python 3 — руководство по Python 3 с практикой для начинающих.
6. Python Programming Exercises — 100+ задач по Python.
7. Coding Problems — алгоритмы и структуры данных для собесов.
8. Project-Based-Learning — Python через реальные проекты.
9. Projects — идеи проектов для прокачки навыков.
10. 100-Days-Of-ML-Code — ML на Python шаг за шагом.
11. TheAlgorithms/Python — алгоритмы и структуры данных на Python.
12. Amazing-Python-Scripts — полезные скрипты: от утилит до автоматизации.
13. Geekcomputers/Python — скрипты для сети, файлов и задач.
14. Materials — код и проекты от Real Python.
15. Awesome Python — топ фреймворков, библиотек и ресурсов.
16. 30-Seconds-of-Python — короткие сниппеты для быстрых решений.
17. Python Reference — скрипты, туториалы и лайфхаки.

#python #github #learning

@pythonl
Please open Telegram to view this post
VIEW IN TELEGRAM
🗂️ Ballista — распределённый движок запросов, построенный на базе Apache DataFusion. Инструмент позволяет параллельно выполнять запросы на множестве узлов, сохраняя совместимость с существующими SQL-запросами, включая сложные JOIN, подзапросы и CTE.

Развёртывание упрощено благодаря Docker-образам и поддержке Kubernetes, а встроенные бенчмарки показывают, что Ballista уже способна конкурировать с Spark по скорости обработки TPC-H-подобных запросов.

🤖 GitHub

@pythonl
🖥 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
🔌 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
🚀 Как 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