PYTHONOMANIA
273 subscribers
195 photos
3 videos
1 file
616 links
Откройте для себя мир Python в PYTHONOMANIA!

Идеально подходит как для начинающих, так и для опытных разработчиков. Присоединяйтесь к нам, чтобы достичь совершенства в Python!

Сайт: https://pythonomania.github.io/
Download Telegram
📱BlackSheep.

BlackSheep
— это асинхронный веб-фреймворк для создания событийных веб-приложений на Python. Он вдохновлён Flask, ASP.NET Core и работами Юрия Селиванова.

🔹Особенности:

🔘Асинхронность: Построен на Python async/await для высокой производительности.

🔘Простота и гибкость: Интуитивно понятный синтаксис, вдохновлённый Flask.

🔘CLI для быстрого старта: Инструмент командной строки для быстрого создания новых проектов.

🔻Пример кода:
from datetime import datetime  
from blacksheep import Application, get

app = Application()

@get("/")
async def home():
return f"Hello, World! {datetime.utcnow().isoformat()}"


💻CLI для быстрого старта:

BlackSheep предоставляет CLI для быстрого создания проектов.

#Python #WebDevelopment #Async #BlackSheep #Разработка #ВебФреймворк

📱Ссылка на репозиторий:
https://github.com/Neoteroi/BlackSheep
Please open Telegram to view this post
VIEW IN TELEGRAM
1⚡3👍2
📱Kreuzberg.

Kreuzberg
— это библиотека для простого и удобного извлечения текста из PDF-файлов, изображений и офисных документов без лишней возни.

🔹Возможности:

🔘Извлечение текста из PDF, изображений, офисных документов и др.

🔘Поддержка асинхронности (anyio) и аннотаций типов.

🔘Продвинутая обработка ошибок для лёгкого отладки.

#️⃣Поддерживаемые форматы:

PDF, DOCX, PPTX, ODT, RTF, JPEG, PNG, TIFF, BMP, GIF, WebP, CSV, TSV, HTML, TXT, Markdown, LaTeX и др.

🎯Планы развития:

🔘Улучшение извлечения таблиц из PDF.

🔘Извлечение метаданных.

🔘Поддержка дополнительных форматов.

#Python #PDF #OCR #TextExtraction #Kreuzberg #Async #OpenSource #DevTools

📱Ссылка на репозиторий:
https://github.com/Goldziher/kreuzberg
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥3👍2
📱Pydoll.

Pydoll
— это инновационная библиотека Python, которая переосмысляет автоматизацию браузера Chromium! В отличие от других решений, Pydoll полностью исключает необходимость в веб-драйверах, обеспечивая более плавный и надежный процесс автоматизации.

❓Почему Pydoll?

🔘Без веб-драйверов — забудьте о проблемах совместимости и настройке.

🔘Обход капчи — встроенная поддержка Cloudflare Turnstile и reCAPTCHA v3 *.

🔘Высокая производительность благодаря нативной асинхронности.

🔘Реалистичное поведение — имитация действий человека.

🔘Система событий для сложных и реактивных сценариев.

#Python #Pydoll #Automation #WebAutomation #Async #Chromium #CaptchaBypass #SeleniumAlternative

📱Ссылка на репозиторий:
https://github.com/thalissonvs/pydoll
Please open Telegram to view this post
VIEW IN TELEGRAM
1⚡4👍3🔥1
📱Clypi.

Clypi — это легковесный, асинхронный и типобезопасный Python-фреймворк для создания CLI-приложений.

🔹Основные возможности:

🔘Типобезопасность: CLI-параметры определяются как аннотации типов (dataclass-like стиль).

🔘Асинхронность: подходит для задач с I/O, сетевыми запросами и подзадачами.

🔘Гибкость и тестируемость: можно переиспользовать аргументы, удобно тестировать парсинг и выполнение команд.

🔘Красивый UI: кастомизация тем, стили текста, спиннеры, цветной вывод.

🔘Автодокументирование: описание команд автоматически попадает в --help.

🔘Интуитивная работа с подкомандами: легко объединять CLI-команды в группы.

🔻Пример простого CLI:
from clypi import Command

class MyCli(Command):
name: str # Аргумент автоматически парсится как `--name <NAME>`

async def run(self):
print(f"Привет, {self.name}!")

cli = MyCli.parse()
cli.run()


🔘Сравнение с другими библиотеками:

🔺Argparse – встроенный, но устаревший и ограниченный.

🔺Click – удобный, но не поддерживает асинхронность и строгую типизацию.

🔺Typer – мощный, но зависит от Click и не дает гибкости в аргументах.

🔺Rich – хорош для UI, но сложный для интеграции в CLI.

🔺Clypi – объединяет лучшее от всех: типизация, асинхронность, красивый UI и удобные команды!

✅Отличный выбор для создания продвинутых CLI-приложений!

#Python #CLI #Clypi #Automation #Async

📱Ссылка на репозиторий:
https://github.com/danimelchor/clypi
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍2👎2🔥2
📱Multiplex.

Multiplex — мощный CLI-мультиплексор и Python API для параллельного запуска процессов.

✅Если вам нужно одновременно запустить несколько процессов (например, веб-сервер, очередь задач и базу данных) и грамотно управлять их завершением — используйте Multiplex.

❓Что умеет Multiplex:

🔘Запускает несколько команд параллельно.

🔘Позволяет задавать задержки и зависимости между процессами.

🔘Грациозно завершает все дочерние процессы.

🔘Объединяет stdout/stderr в удобный для парсинга вывод.

🔘Имеет лаконичный синтаксис и полноценный Python API.

🔹Пример:
Запустить сервер, подождать 2 сек, затем выполнить бенчмарк и завершить всё:
multiplex "SERVER|silent=python3 -m http.server" "+2s|end=ab -n1000 http://localhost:8000/"


#Python #DevTools #CLI #Async #Multiprocessing #Automation #DevOps #Multiplex #OpenSource #Параллелизм #Скрипты #PythonTools #Разработка

📱Ссылка на репозиторий:
https://github.com/sebastien/multiplex
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍3⚡2🔥1
📱Robinzhon.

robinzhon
— это высокопроизводительная Python-библиотека для быстрых и параллельных загрузок объектов из S3(Amazon Simple Storage Service, облачное хранилище от AWS).

🔹Возможности:

🔘Скорость — асинхронные загрузки с несколькими потоками.

🔘Надёжность — продолжает загрузку даже при ошибках отдельных файлов.

🔘Простота — удобный API для одиночных и пакетных загрузок.

🔘Отчётность — подробная статистика успехов и ошибок.

🔻Пример:
from robinzhon import S3Downloader

client = S3Downloader("us-east-1")
client.download_file("bucket", "object", "./object")


📊 Тест производительности (1000 файлов):

🔘robinzhon: 10.30s (97.1 файлов/сек).

🔘threaded boto3: 24.16s.

🔘aioboto3: 27.70s.

🏆 robinzhon в 2.3× быстрее boto3 и в 2.7× быстрее aioboto3

#python #aws #s3 #async #aio #performance #opensource #devtools #cloud #robinzhon

📱Ссылка на репозиторий:
https://github.com/rohaquinlop/robinzhon
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍2🔥1
📱Trio.

Trio — это современная библиотека для Python (3.9+), которая упрощает работу с асинхронным кодом и параллельным I/O.

✅Вместо сложностей с asyncio или Twisted, Trio предлагает структурированную конкуррентность, делая асинхронные программы более читаемыми, надёжными и простыми в сопровождении

🔹Когда пригодится:

🔘Веб-сканер, загружающий тысячи страниц параллельно.

🔘Веб-сервер с множеством загрузок и WebSocket-подключений.

🔘Супервизор для управления процессами.

🔘Любые программы, где нужно «делать много дел одновременно».

❓Почему именно Trio?

🔘Простая и понятная архитектура.

🔘Надёжность (широко используется в продакшене).

🔘Удобство и меньше ошибок при разработке.

🔘Совместимость: Linux, macOS, Windows, FreeBSD.

💡Trio — это про удобство, читаемость и структурированный подход к асинхронности.

#Python #Async #Concurrency #IOLibrary #StructuredConcurrency #Trio #OpenSource #Backend #AsyncAwait #PyPI

📱Ссылка на репозиторий:
https://github.com/python-trio/trio
Please open Telegram to view this post
VIEW IN TELEGRAM
4👍2
📱AuthTuna.

AuthTuna
— современный асинхронный фреймворк безопасности для Python.

✅Оптимизирован для FastAPI, но с ядром, независимым от фреймворка.

🔹Возможности:

🔘Аутентификация и управление сессиями.

🔘RBAC (ролевая модель доступа).

🔘SSO (Google, GitHub и др.).

🔘MFA (многофакторная аутентификация).

🔘Гибкая настройка через .env, Secrets Manager или код.

🔘Проверка прав и ролей прямо в роутерах FastAPI.

🚀Быстрый старт:
pip install authtuna fastapi uvicorn[standard] asyncpg aiosqlite python-dotenv


🔻Простейший пример:
from fastapi import FastAPI, Depends
from authtuna.middlewares.session import DatabaseSessionMiddleware
from authtuna.integrations.fastapi_integration import get_current_user

app = FastAPI()
app.add_middleware(DatabaseSessionMiddleware)

@app.get("/me")
async def me(user=Depends(get_current_user)):
return {"id": user.id, "username": user.username}


#Python #FastAPI #Security #Auth #RBAC #SSO #MFA #Async #DevTools #OpenSource

📱Ссылка на репозиторий:
https://github.com/shashstormer/authtuna
Please open Telegram to view this post
VIEW IN TELEGRAM
1⚡3🔥22
📱Logly.

Logly — это высокопроизводительная библиотека логирования, вдохновлённая Loguru, но построенная на Rust.

✅Она сочетает привычный API и безопасность через систему владения Rust.

🔹Особенности:

🔘Rust-backend с PyO3/Maturin — скорость и безопасность.

🔘Потокобезопасность и нулевая стоимость абстракций.

🔘Поддержка TRACE, DEBUG, INFO, SUCCESS, WARNING, ERROR, CRITICAL.

🔘JSON-логирование, контекст, автоматический стек ошибок.

🔘Умное управление файлами: ротация, сжатие, хранение.

🔘Асинхронная запись и колбэки в фоне.

🔘Гибкое форматирование, цветной вывод, фильтрация по модулям и уровням.

🔻Установка:
pip install logly


#Python #Rust #Logging #Loguru #Performance #PyO3 #Maturin #Async #DevTools

📱Ссылка на репозиторий:
https://github.com/muhammad-fiaz/logly
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥4👍2
📱FastScheduler.

FastScheduler — это простой, лёгкий планировщик задач для Python с поддержкой async, учётом часовых поясов, cron‑выражениями и удобным дашбордом.

🔹Особенности:

🔘Простое API: @scheduler.every(10).seconds, @scheduler.daily.at("09:00"), @scheduler.cron("*/15 * * * *") вешаются прямо на функции (sync или async).

🔘Богатый контроль: таймауты .timeout(30), ретраи .retries(5) с экспоненциальным backoff, отключение догоняющих запусков .no_catch_up(), pause/resume/cancel по ID или имени функции.

🔘Наблюдаемость: JSON‑персистентность (история, статистика, dead‑letter queue) и real‑time FastAPI‑дашборда с SSE, таблицей джобов, историей и вкладкой фейлов.

⚙️Как поставить и запустить:

🔘Установка:
базово: pip install fastscheduler.
с дашбордом: pip install fastscheduler[fastapi].
с cron: pip install fastscheduler[cron].
всё сразу: pip install fastscheduler[all].

🔘Минимальный пример:
  from fastscheduler import FastScheduler

scheduler = FastScheduler(quiet=True)

@scheduler.every(10).seconds
def task():
print("Task executed")

@scheduler.daily.at("14:30")
async def daily_task():
print("Daily task at 2:30 PM")

scheduler.start()


#FastScheduler #Python #Async #TaskScheduler #Cron #FastAPI #BackgroundJobs #DevTools #Monitoring #DeadLetterQueue

📱Ссылка на репозиторий:
https://github.com/MichielMe/fastscheduler
Please open Telegram to view this post
VIEW IN TELEGRAM
12⚡1👍1
📱WebRockets.

WebRockets — это высокопроизводительный WebSocket-сервер для Python с нативной поддержкой Django. Ядро написано на Rust (PyO3 + axum + fastwebsockets) для максимальной скорости — до 10x быстрее Daphne в бенчмарках.

🔹Ключевые фичи:

🔘Производительность — Rust-ядро, 10x выше throughput на 100 соединениях (Thinkpad i7, Linux).
🔘Django-интеграция — аутентификация (Session, Token из cookie/header/query), команды runwebsockets.
🔘Pattern Matching — роутинг по дискриминатору + Pydantic-валидация JSON.
🔘Broadcasting — Redis/RabbitMQ из коробки.
🔘Async/Sync — колбэки на Python, полная async-поддержка.

🔻Быстрый старт (standalone):

from webrockets import WebsocketServer
server = WebsocketServer(host="0.0.0.0", port=8080)
echo = server.create_route("ws/echo/", "echo")

@echo.connect("before")
def on_connect(conn): print(f"Connected: {conn.path}")

@echo.receive
def on_message(conn, data): conn.send(f"You said: {data}")

server.start()


Django (websockets.py в app):
from webrockets.django import server
from webrockets.django.auth import SessionAuthentication

chat = server.create_route("ws/chat/", "chat", authentication_classes=[SessionAuthentication()])

@chat.connect("before")
def on_connect(conn): print(f"User {conn.user} joined")

@chat.receive(match=Match("type", "message"), schema=ChatMessage)
def on_message(conn, data: ChatMessage): conn.broadcast([data.room], data.content)

# Запуск: python manage.py runwebsockets


🔻Установка:
pip install webrockets[django,schema].

#WebRockets #WebSocket #Django #Rust #Python #Async #HighPerformance #WebDev #OpenSource

📱Ссылка на репозиторий:
https://github.com/ploMP4/webrockets
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍6🔥22
📱Runloom.

Runloom
- это библиотека для Python, которая позволяет запускать сотни тысяч задач одновременно, не усложняя при этом код.

Если говорить простыми словами: обычно, чтобы сделать программы в Python быстрыми и параллельными, разработчикам приходится переписывать весь проект под async и await. Runloom позволяет писать самый обычный, понятный код (без асинхронной «лапши»), но выполняет его так же быстро и эффективно, как язык Go (Golang).

❓В чём главная фишка.

🔘Без async и await: Вы пишете привычные функции, а библиотека сама незаметно переключает задачи в фоновом режиме, пока одна из них ждет ответа от сети или диска.

🔘Молниеносная скорость: Переключение между задачами написано на низкоуровневом Ассемблере и C. Переход от одной задачи к другой занимает считанные наносекунды.

🔘Работа на всех ядрах: Идеально раскрывается на новых версиях Python (3.13+ и 3.14+ с отключенным GIL), позволяя честно загрузить процессор на 100%.

🔘Каналы как в Go: Позволяет удобно и безопасно передавать данные между параллельными процессами.

🔘Прокачка старого кода в 1 строчку: Функция runloom.monkey.patch() умеет на лету превращать стандартные «медленные» библиотеки (например, urllib или socket) в параллельные без переписывания вашего кода.

🔻Простой пример:

import threading
import runloom
from urllib.request import urlopen

# Делаем стандартные сетевые запросы параллельными
runloom.monkey.patch()

def download(url):
# Код выглядит так, будто он блокирует программу и ждет ответа...
# Но Runloom не дает ему зависнуть и скачивает всё одновременно!
body = urlopen(url).read()
print("Скачано байт:", len(body))

def main():
# Запускаем 64 скачивания параллельно
for _ in range(64):
runloom.fiber(download, "http://example.com")

# Распределяем работу на 8 ядер процессора
runloom.run(8, main)


📦Установка:

pip install runloom


✅Отличное решение, если нужно выжать максимум скорости из параллельных запросов, но нет желания усложнять проект асинхронными фреймворками!

#Python #Runloom #Performance #Async #Concurrency #Go #Golang #DevTools #OpenSource #Программирование

📱Ссылка на репозиторий:
https://github.com/robertsdotpm/runloom
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍2🔥21
📱TonIO.

TonIO
- это многопоточный асинхронный рантайм для free-threaded Python (сборки без GIL), написанный на Rust поверх крейта mio и вдохновленный архитектурой Tokio, Trio и TinyIO.

В отличие от стандартного asyncio, чей цикл событий (event loop) жестко привязан к одному системному потоку, TonIO спроектирован под реалии современного многопоточного Python 3.13+ (PEP 703): рантайм автоматически распределяет и исполняет корутины параллельно на нескольких ядрах процессора.

🔹Ключевые особенности:

🐱Два стиля синтаксиса (Coloring vs Uncolored):

🔘Модуль tonio.colored предоставляет привычный синтаксис async / await.

🔘Базовый модуль tonio позволяет писать асинхронный код через обычные генераторы и yield, полностью избавляя от проблемы «цветных функций».

✔️Rust-ядро на mio: Высокопроизводительный неблокирующий системный I/O (epoll, kqueue, IOCP) и планировщик задач прямо под капотом Python.

✔️Структурная конкурентность (Structured Concurrency):

🔘tonio.scope() гарантирует корректную отмену и сбор всех дочерних корутин при выходе из контекста или возникновении исключений.

🔘tonio.select() для конкурентных гонок задач (отменяет оставшиеся корутины при первом завершении).

✔️Синхронизация и MPMC-каналы:

🔘События Event и комбинируемые ожидатели Waiter через операторы пересечения и объединения (w1 & w2, w1 | w2).

🔘Lock, Semaphore, Barrier и каналы передачи сообщений (bounded и unbounded) с неблокирующими методами send_nowait / receive_nowait.

✔️Сетевой стек и системные примитивы:

🔘Высокоуровневые стримы для TCP, Unix Domain Sockets и TLS (open_tcp_stream, serve_tcp).

🔘Низкоуровневый модуль tonio.io для подключения любых файловых дескрипторов ОС к системному поллеру.

🔘Асинхронная файловая система tonio.fs и управление подпроцессами (run_process, open_process).

✔️Интеграция с Pytest: Поставляется с готовым плагином, маркером @pytest.mark.tonio и авто-режимом для тестирования асинхронного кода.

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

С классическим синтаксисом async / await:

import tonio.colored as tonio

async def fetch_data(task_id: int):
await tonio.sleep(0.5)
return f"Результат {task_id}"

@tonio.main
async def main():
# Параллельный запуск задач в пуле потоков рантайма
parallel = tonio.spawn(
fetch_data(1),
fetch_data(2)
)

extra = await fetch_data(3)
res1, res2 = await parallel

print([res1, res2, extra])

main()


С синтаксисом на чистом
yield (без async/await):

import tonio

def fetch_data(task_id: int):
yield tonio.sleep(0.5)
return f"Результат {task_id}"

@tonio.main
def main():
parallel = tonio.spawn(fetch_data(1), fetch_data(2))
extra = yield fetch_data(3)
res1, res2 = yield parallel
print([res1, res2, extra])

main()


⚠️ Важно: Проект находится в активной разработке (WIP), не совместим напрямую с объектами asyncio (для интеграций доступен проект-патчер TonIO-Monkey) и рассчитан исключительно на free-threaded Python без GIL.

✅Лицензия: BSD 3-Clause.

#Python #Rust #TonIO #Async #NoGIL #FreeThreaded #Tokio #Concurrency #Multithreading #Performance #DevTools #OpenSource

📱Ссылка на репозиторий:
https://github.com/gi0baro/tonio
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥3