Telegram Web
🖥 "Think Python" - базовая книга от O'Reilly

Это одна из лучших книг для изучения Python.

❤️‍🔥 Как вам обложка?

❯ 3 издание (https://allendowney.github.io/ThinkPython/)
❯ 2 издание (https://greenteapress.com/thinkpython2/thinkpython2.pdf)
@Python_Community_ru
🖥 Как отлаживать код на Python, не покидая редактора, с использованием встроенного модуля pdb.

🔍 Пример быстрой отладки с помощью pdb

Часто, когда код не работает должным образом, мы начинаем добавлять много print(). Это неудобно, медленно и засоряет код. Вместо этого вставь в нужное место следующую строку:

import pdb; pdb.set_trace()

Когда выполнение дойдет до этой строки, ты попадешь в интерактивную консоль отладчика прямо в терминале. Далее можно:

- n (next) — перейти к следующей строке;
- s (step) — зайти внутрь функции;
- c (continue) — продолжить выполнение;
- l (list) — показать текущий контекст;
- p var — вывести значение переменной var.

💡 Пример

def calc(a, b):
import pdb; pdb.set_trace()
result = a + b
return result

calc(2, 3)

На строке с pdb.set_trace() ты остановишься и сможешь изучить, что происходит внутри.

Зачем это нужно?

- Понять, почему что-то идет не так.
- Посмотреть, какие значения у переменных в момент ошибки.
- Быстро отладить без запуска IDE — удобно в Docker, SSH или при работе с cron.

Попробуй — один раз освоишь, и уже не захочешь возвращаться к print().
@Python_Community_ru
This media is not supported in your browser
VIEW IN TELEGRAM
📞 SSHClick (https://github.com/karlot/sshclick) — это инструмент для управления SSH-конфигурациями, созданный на Python с использованием фреймворков Click, Rich и Textual.

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

🌟 Основные возможности SSHClick включают парсинг существующих SSH-конфигураций, добавление метаданных для группировки и фильтрации хостов, а также удобный текстовый интерфейс (TUI) для работы непосредственно в терминале. Инструмент помогает быстро находить и редактировать записи, сокращая время, затрачиваемое на ручное управление конфигурациями.

🔐 Лицензия: MIT

🖥 Github (https://github.com/karlot/sshclick)

@linuxacademiya
@Python_Community_ru
FastOpenAPI

FastOpenAPI – это библиотека, предназначенная для создания и интеграции схем OpenAPI с использованием Pydantic v2 и различных фреймворков, таких как Falcon, Flask, Quart, Sanic, Starlette и Tornado.

Проект вдохновлён FastAPI и предлагает разработчикам схожий удобный опыт создания API с автоматической генерацией документации.
С помощью FastOpenAPI вы можете просто определять маршруты, выполнять валидацию данных и генерировать документацию в формате Swagger UI и ReDoc, что делает процесс разработки и поддержки API более простым.
Быстрая интеграция с поддержкой строгой типизации через модели Pydantic делает библиотеку надёжным инструментом для создания современных веб-приложений.
FastOpenAPI распространяется под лицензией MIT, что позволяет свободно использовать и изменять его в коммерческих и некоммерческих проектах.

Github (https://github.com/mr-fatalyst/fastopenapi)

@pythol
@Python_Community_ru
🖥 Radon — это инструмент, который помогает разработчикам выявлять проблемы в коде с использованием метрик.

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

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

📌 GitHub (https://github.com/rubik/radon)
@Python_Community_ru
🔎 ClatScope (https://github.com/Clats97/ClatScope) — это эффективный инструмент для проведения разведки с применением открытых источников (OSINT), созданный для сбора различной информации об IP-адресах, доменах, электронных почтах, номерах телефонов и многом другом!

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

🖥 Github (https://github.com/Clats97/ClatScope)
@Python_Community_ru
⚡️ Asyncer — это небольшая библиотека, предназначенная для упрощения работы с асинхронным кодом, созданная автором FastAPI. Стоит отметить, что это не фреймворк, а набор вспомогательных инструментов, которые делают код более аккуратным и улучшают подсказки в IDE.

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

🤖 GitHub (https://github.com/fastapi/asyncer)
@Python_Community_ru
🖥 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 (https://github.com/zobweyt/textcase)
📌 Документация (https://zobweyt.github.io/textcase/#features)
@Python_Community_ru
📚 "Космический Python: Создание Чистых Архитектур для Приветствия Неудач"

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

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

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

🔗 Книга (https://www.cosmicpython.com/book/introduction.html)
@Python_Community_ru
🖥 Вот 17 лучших репозиториев на GitHub для изучения Python с ссылками:

1. 30-Days-Of-Python (https://github.com/Asabeneh/30-Days-Of-Python) — 30-дневный челлендж по основам Python.
2. Python Basics (https://github.com/mikeckennedy/python-basics-exercises) — основы Python для новичков, просто и с примерами.
3. Learn Python (https://github.com/trekhleb/learn-python) — справочник с кодом, пояснениями и практическими примерами.
4. Python Guide (https://github.com/realpython/python-guide) — гайд по практикам, инструментам и сложным темам.
5. Learn Python 3 (https://github.com/jerry-git/learn-python3) — руководство по Python 3 с практическими заданиями для начинающих.
6. Python Programming Exercises (https://github.com/zhiwehu/Python-programming-exercises) — более 100 задач по Python.
7. Coding Problems (https://github.com/MTrajK/coding-problems) — алгоритмы и структуры данных для собеседований.
8. Project-Based-Learning (https://github.com/practical-tutorials/project-based-learning) — изучение Python через реальные проекты.
9. Projects (https://github.com/karan/Projects) — идеи проектов для улучшения навыков.
10. 100-Days-Of-ML-Code (https://github.com/Avik-Jain/100-Days-Of-ML-Code) — машинное обучение на Python шаг за шагом.
11. TheAlgorithms/Python (https://github.com/TheAlgorithms/Python) — алгоритмы и структуры данных на Python.
12. Amazing-Python-Scripts (https://github.com/aviaryan/amazing-python-scripts) — полезные скрипты: от утилит до автоматизации.
13. Geekcomputers/Python (https://github.com/geekcomputers/Python) — скрипты для работы с сетью, файлами и задачами.
14. Materials (https://github.com/realpython/materials) — код и проекты от Real Python.
15. Awesome Python (https://github.com/vinta/awesome-python) — лучшие фреймворки, библиотеки и ресурсы.
16. 30-Seconds-of-Python (https://github.com/30-seconds/30-seconds-of-python) — короткие сниппеты для быстрого решения задач.
17. Python Reference (https://github.com/rasbt/python_reference) — скрипты, туториалы и полезные советы.

#python #github #learning
@Python_Community_ru
🗂️ Ballista — это распределённый движок для выполнения запросов, основанный на Apache DataFusion. Этот инструмент позволяет одновременно обрабатывать запросы на нескольких узлах, при этом сохраняя совместимость с существующими SQL-запросами, включая сложные операции объединения, подзапросы и общие табличные выражения.

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

🤖 GitHub (https://github.com/apache/datafusion-ballista)
@Python_Community_ru
🖥 Watchdog — это библиотека, которая предназначена для мониторинга изменений в файловой системе и имеет стильный дизайн.

Этот инструмент позволяет фиксировать различные операции с файлами и папками, такие как создание, удаление, модификация и перемещение, и работает в средах Linux, macOS и Windows.

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

🔗 Watchdog (https://github.com/gorakhargosh/watchdog)
🔗 Документация (https://python-watchdog.readthedocs.io/en/stable/quickstart.html)
@Python_Community_ru
🖥 DeepGit: Repo Discovery — это бесплатный инструмент на основе искусственного интеллекта, который помогает находить полезные репозитории на GitHub с помощью семантического поиска.

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

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

🖥 GitHub (https://github.com/zamalali/DeepGit)
@Python_Community_ru
Ibis — это библиотека, которая сочетает в себе SQL и Python.

Устали постоянно переключаться между SQL и pandas?

С помощью Ibis вы можете использовать SQL-запросы и Python-пайплайны в одном коде.

Установка (с поддержкой DuckDB и примерами):

```
pip install 'ibis-framework[duckdb,examples]'
```

Пример:

```python
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 и всей экосистемой Python.

Подробнее [здесь](http://bis-project.org/)
На Github [здесь](https://github.com/ibis-project/ibis)
@Python_Community_ru
🗣 OuteTTS 1.0 — это современный инструмент с открытым исходным кодом для синтеза речи (Text-to-Speech), который фокусируется на высоком качестве озвучивания, клонировании голосов и поддержке множества языков. Основные функции:

🔊 Ключевые возможности:
Высокая производительность:
Способен создавать аудио длительностью до 42 секунд (~8192 токена) за один раз.

Тем не менее, для достижения наилучших результатов рекомендуется ограничивать объем до ~7000 токенов.

- Поддержка клонирования голоса:
Использует образец голоса длиной, например, 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)

📥 Ссылка на репозиторий (https://github.com/edwko/OuteTTS)
@Python_Community_ru
🔌 python-kasa — это библиотека для управления умными устройствами TP-Link с помощью Python.

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

🤖 GitHub (https://github.com/python-kasa/python-kasa)
@Python_Community_ru
🚀 Как Duolingo удалось увеличить производительность микросервисов на 40% с помощью асинхронного Python 🐍

Duolingo поделилась тем, как им удалось существенно улучшить эффективность своих Python-сервисов, перейдя на использование async/await, и сделали это не ради моды, а для снижения затрат.

💸 Мотивация: повышение производительности и уменьшение расходов
Duolingo управляет множеством микросервисов, которые обрабатывают большие объемы трафика. Несмотря на высокую нагрузку, многие их Python-сервисы простаивали в ожидании ввода-вывода — например, при сетевых запросах или взаимодействии с базой данных. Это приводило к неэффективному использованию процессора, и, соответственно, деньги на облачный хостинг расходовались впустую.

Асинхронный код — это способ “переключаться” между задачами во время ожидания, что позволяет более эффективно использовать процессор. Именно это и стало главной мотивацией: не просто стать асинхронными, а сократить расходы.

⚙️ Как проходила миграция
Процесс был постепенным и тщательно продуманным. Вот ключевые шаги:

Переход не “всё или ничего”
Команда не начала с переписывания всего сервиса с нуля. Они начали с изменения отдельных маршрутов на async def, добавляя асинхронность по частям.

Постепенная адаптация инструментов
Пришлось обновить библиотеки и инструменты внутри компании:
HTTP-клиент переписали с использованием aiohttp,
систему аутентификации адаптировали к async-контекстам,
обновили логирование, трассировку и метрики для работы с async-архитектурой.

Тестирование и инфраструктура
Асинхронные изменения потребовали пересмотра тестов. Они внедрили поддержку pytest-asyncio и переосмыслили подход к мокам и фикстурам.

Постепенный запуск в продакшене
Сначала маршруты работали в синхронном режиме. Затем их перевели в асинхронный режим и замерили разницу. Это помогло выявить “узкие места” до массового внедрения.

📈 Результаты: +40% производительности на экземпляр
Эффективнее стал использоваться процессор у каждого экземпляра микросервиса.
Уменьшилось среднее время ответа (latency).
Снизилось количество необходимых экземпляров — экономия в деньгах.
Код стал легче масштабировать и поддерживать в среде с высокой интенсивностью ввода-вывода.

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

🔍 Выводы
Duolingo подчеркивает:
асинхронность не нужна “просто потому что это модно”.
Но если у вас сервис с большим числом операций ввода-вывода и важна производительность — асинхронный Python может обеспечить реальный прирост и экономию.

Оригинальный пост (https://blog.duolingo.com/async-python-migration/)

@Python_Community_ru
2025/06/16 11:49:50
Back to Top
HTML Embed Code: