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

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

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

secure.py — это простой, но мощный способ защитить ваши Python веб-приложения, независимо от используемого фреймворка.

❓Почему стоит использовать secure.py?

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

🔘Единый API для всех фреймворков: единый подход для Django, Flask, FastAPI и других.

🔘Безопасные настройки по умолчанию и гибкость кастомизации: легко начать и адаптировать под свои нужды.

🔘Простая интеграция: совместим с популярными Python фреймворками.

🔘Современный Python-дизайн: использует возможности Python 3.10+ для лаконичного и эффективного кода.

✅Заботьтесь о безопасности вашего веб-приложения с secure.py!

#Python #WebSecurity #securepy #Django #Flask #FastAPI #CSP #HSTS #WebDevelopment #PyPI #py #secure #security

📱Ссылка на репозиторий:
https://github.com/TypeError/secure
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍4🔥3
📱Dracula for Django Admin.

Dracula for Django Admin — это стильная тёмная (и светлая) тема для панели администрирования Django.

✅Теперь работа с админкой будет не только удобной, но и эстетически приятной!

⚙️Установка:

1️⃣ Установите тему:

pip install django-admin-dracula


2️⃣Добавьте в проект Django:

В INSTALLED_APPS включите "django_admin_dracula" перед "django.contrib.admin":


INSTALLED_APPS = [
...
"django_admin_dracula",
...
"django.contrib.admin",
...
]


3️⃣Наслаждайтесь! Наденьте плащ Дракулы и можете смело избавляться от оставшегося чеснока!

#Django #DraculaTheme #Python #DjangoAdmin #DevTools #DarkTheme

📱Ссылка на репозиторий:
https://github.com/sjbitcode/django-admin-dracula
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥3⚡2
📱Django-removals.

django-removals — это пакет, который помогает разработчикам находить и устранять удалённые/неподдерживаемые функции в Django проектах.

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

🔘Вывод предупреждений системы проверки Django для всех известных удалений функций.

🔘Поддержка проверки через:

✔️Django development server:
python manage.py runserver  


✔️Ручная проверка:
python manage.py check --deploy  


🔘Основной фокус на проверке настроек Django, с возможностью добавления дополнительных проверок в будущем.

#Django #Python #WebDevelopment #DjangoRemovals #DjangoUpgrade

📱Ссылка на репозиторий:
https://github.com/ambient-innovation/django-removals/
Please open Telegram to view this post
VIEW IN TELEGRAM
3👍3🔥1
📱WOWY.

WOWY — это мощная e-commerce платформа, созданная на Django 4.x, которая обеспечивает комфортный и современный опыт покупок как для клиентов, так и для администраторов. С функционалом управления товарами, системой заказов, аналитикой продаж и адаптивным дизайном, WOWY включает всё, что нужно для успешного онлайн-магазина.

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

🔘Управление товарами:

✔️Полный каталог продуктов.
✔️Поддержка нескольких изображений.
✔️Управление категориями и ценами.
✔️Отслеживание остатков.

🔘Управление заказами:

✔️Корзина и список желаний.
✔️Генерация PDF-счетов.
✔️Отслеживание доставки.

🔘Работа с пользователями:

✔️Профили клиентов и регистрации.
✔️Поддержка нескольких адресов доставки.

🔘Админ-панель:

✔️Аналитика продаж и метрики.
✔️Отслеживание выручки и производительности товаров.

🔘Интеграция платежей:

✔️Поддержка Stripe и других методов оплаты.
✔️Безопасная обработка платежей.

🔘Система вариантов:

✔️Поддержка размеров, цветов и индивидуальных цен.
✔️Управление остатками и SKU.

✅WOWY объединяет современные технологии и мощный функционал, предоставляя всё необходимое для создания успешного интернет-магазина.

#WOWY #Ecommerce #Django #ОнлайнМагазин #РазработкаНаPython #ИнтернетТорговля #ЭлектроннаяКоммерция

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

Djoser — это REST-реализация системы аутентификации Django. Библиотека предоставляет готовые API для регистрации, входа, выхода, сброса пароля и активации аккаунта. Поддерживает кастомные модели пользователей и легко интегрируется с Django REST Framework.

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

🔘Аутентификация по токену.

🔘JWT-аутентификация.

🔘Поддержка WebAuthn.

🔘Оптимизировано для SPA (Single Page Apps).

✅Djoser позволяет избежать ручной реализации аутентификации, обеспечивая удобные REST API для проектов на Django.

#Python #Django #DjangoREST #Djoser #Authentication #JWT #WebAuthn #RESTAPI

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

django-typer — это удобное расширение для Django, которое позволяет создавать менеджмент-команды с помощью Typer, используя аннотации типов Python.

❓Зачем он нужен?

Он объединяет мощь Typer (на базе Click) с привычным интерфейсом BaseCommand из Django, делая код чистым, декларативным и типобезопасным.

🟥Что умеет django-typer?

🔘Типизированный интерфейс команд (arg: str, --flag: bool = False).

🔘Автогенерация красивой справки (поддерживает rich).

🔘Поддержка вложенных подкоманд и групп.

🔘Установка автодополнения (bash, zsh, fish, powershell).

🔘Поддержка плагинов и расширений.

🔘Совместимость с BaseCommand (можно мигрировать без боли).

🔘Отладочные трассировки с rich (по умолчанию).

#Django #CLI #Python #Typer #OpenSource #DevTools #DjangoTips #TypeSafety #Click #djangoTyper #rich #PythonDev

📱Ссылка на репозиторий:
https://github.com/django-commons/django-typer
Please open Telegram to view this post
VIEW IN TELEGRAM
1👎3🔥3👍1
📱Django Style.

Django Style — лаконичные стили для ваших Django-проектов.

Упростите оформление своих прототипов с помощью минималистичных тем:

🔘Tailwind 4.
🔘Bootstrap 5.
🔘Простая CSS-тема.

✅Прототипируйте быстрее, без боли в глазах.

#Django #UI #Tailwind #Bootstrap #CSS #Python #WebDev #Prototyping #nanodjango #DjangoStyle

📱Ссылка на репозиторий:
https://github.com/radiac/django-style
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍2🔥2
📱TurboDRF.

TurboDRF — проект, который позволяет быстро создавать полноценные REST API из моделей Django без шаблонного кода.

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

🔘Автоматическая генерация сериализаторов и ViewSet’ов.

🔘Поддержка ролевых разрешений.

🔘Настройка фильтров, поиска и пагинации без лишних усилий.

✅Зачем тратить время на рутинные задачи, если TurboDRF сделает всё за вас?

#Django #DRF #Python #API #TurboDRF #Backend #OpenSource #Разработка #WebDev

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

OctopusDash
— это современная, open-source админ-панель для Django с красивым UI, мощной фильтрацией и гибким управлением правами доступа. Создана для разработчиков и команд, которым нужно больше гибкости, ясности и расширяемости по сравнению с дефолтной Django admin.

🔹Ключевые возможности:

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

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

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

🔘Расширяемость: легко добавлять/переопределять представления, шаблоны и поведение.

❓Почему OctopusDash?

Django admin мощный, но устарел и ограничен. OctopusDash создавался с нуля, чтобы дать:

🔘Гибкие права доступа и кастомные дашборды.

🔘Чистый и современный интерфейс.

🔘Архитектуру для плагинов, API и сложных кастомизаций.

#django #python #opensource #django_admin #adminpanel #webdev #octopusdash #tailwindcss #uiux #backend #devtools

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

DJ Checkup
— это инструмент для проверки безопасности Django-сайтов.

Он запускается из командной строки и выполняет те же проверки, что и сервис djcheckup.com, чтобы убедиться, что ваш сайт защищён от распространённых угроз.

🔹Что проверяет DJ Checkup:

🔘Доступность сайта и корректность ответов.

🔘Безопасность Django admin и страниц входа.

🔘Настройку CSRF и session cookies (HttpOnly, Secure, SameSite).

🔘Включён ли DEBUG режим в продакшене.

🔘HTTPS и перенаправление с HTTP.

🔘Заголовки безопасности (HSTS, X-Frame-Options).

✅Проверяйте свои Django-сайты на уязвимости легко и быстро с DJ Checkup!

#Django #Security #Python #WebDev #DJCheckup #CyberSecurity #DevTools #WebSecurity #PythonTools

📱Ссылка на репозиторий:
https://github.com/stuartmaxwell/djcheckup
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍22
📱Django LiveView.

Django LiveView — фреймворк для создания реал-тайм SPA(Single Page Application) на чистом Django без JavaScript, используя HTML over WebSockets.

Вдохновлён Phoenix LiveView: вся логика остаётся в Python, фронтенд рендерится Django-шаблонами через WebSockets (Django Channels). Кликнул кнопку — сервер отправил HTML-фрагмент, который JS вставил в нужный селектор. Без API, React'ов и фронтенд-разработчиков.

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

🔘@liveview_handler — декоратор для обработки событий, send() — отправка HTML-обновлений с target, append, remove, scroll.
​
🔘Автообнаружение хендлеров в liveview_components/, формы, broadcast для мультиплеера, infinite scroll через Intersection Observer.

🔘Установка: pip install liveview, добавить в INSTALLED_APPS с daphne/channels, LIVEVIEW_APPS = ["myapp"].

✅Django LiveView — пиши Python, получай SPA как в Phoenix LiveView.

#django #python #realtime #liveview #websockets #spadevelopment #hotwire

📱Ссылка на репозиторий:
https://github.com/Django-LiveView/liveview
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍4🔥2
📱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
📱Zoocache.

Zoocache — это высокопроизводительная библиотека кеширования с ядром на Rust и обвязкой для Python, заточенная под сценарии, где важно одновременно и быстро читать, и строго соблюдать консистентность данных. В отличие от простых TTL‑кешей, она использует семантические зависимости и иерархическую инвалидацию, поэтому вы можете «убить» сразу целые группы связанных ключей (например, user:* или region:eu:*) одним вызовом.

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

🔘Rust‑сердце: основная логика на Rust + PyO3 даёт низкую латентность и безопасную конкуррентность.

🔘Семантическая инвалидация: PrefixTrie позволяет мгновенно инвалидировать поддеревья ключей (invalidate("store:1") очищает всё store:1:*).

🔘Причинно‑следственная консистентность: встроенные Hybrid Logical Clocks (HLC) для согласованности в распределённых инсталляциях.

🔘Anti‑avalanch / SingleFlight: защита бэкенда от «стада бизонов» — параллельные одинаковые запросы схлопываются в один поход в базу.

🔘Умная сериализация: MsgPack + LZ4 используются прозрачно, уменьшая размер и ускоряя IO.

🔘Distributed cache: синхронизация узлов через Redis Pub/Sub, плюс защита от ошибок и «отравленных» мьютексов.

🔻Использование в коде максимально простое:

🔘Установка: pip install zoocache или uv add zoocache.

🔘Декоратор @cacheable + deps и add_deps() задают зависимости, а invalidate("user:123") гарантированно очищает все связанные кэши для этого пользователя.

🔘Для Django есть отдельные гайды: автоматическая интеграция с ORM, инвалидация по сигналам _save/_delete, учёт транзакций, авто‑зависимости по JOIN‑ам и поддержка Django REST Framework сериализаторов.

Zoocache особенно уместен там, где много сложных связей (каталоги, прайсинги, инвентарь, персонизация), высокая доля чтения и требуется строгий «сразу видно апдейт», а не «подождём, пока TTL протухнет».

#Python #Rust #Caching #Zoocache #Redis #Django #HighLoad #HLC #MsgPack #LZ4 #SingleFlight

📱Ссылка на репозиторий:
https://github.com/albertobadia/zoocache
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡2👍22
📱Django-hawkeye.

django-hawkeye — это Django‑надстройка для полнотекстового поиска по BM25 прямо в PostgreSQL 17+ через расширение pg_textsearch, лёгкая альтернатива Elasticsearch.

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

🔘Простой API: добавляете BM25Searchable и BM25Index, дальше Article.search("django tutorial") как обычный QuerySet.

🔘BM25‑ranking: тот же алгоритм релевантности, что используют Elasticsearch и другие современные поисковые движки.

🔘Без внешних сервисов: всё крутится внутри вашего PostgreSQL‑кластера, индексы живут в обычных Django‑миграциях.

🔘Готов к RAG: можно использовать как retrieval‑слой для RAG‑чатботов и поиска по контенту.

🚀Установка и базовый старт:

pip install django-hawkeye

# установить pg_textsearch на сервере PostgreSQL 17+
git clone https://github.com/timescale/pg_textsearch.git
cd pg_textsearch
make && make install


from django.db import models
from django_hawkeye import BM25Index, BM25Searchable

class Article(BM25Searchable, models.Model):
title = models.CharField(max_length=255)
content = models.TextField()

class Meta:
indexes = [
BM25Index(fields=["content"], name="article_bm25_idx"),
]


#django #postgresql #fulltextsearch #bm25 #elasticsearch #rag #python

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

InvenTree — это open‑source система управления инвентарём (inventory management) на Django + React с фокусом на детализацию деталей, складской учёт и traceability.

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

🔘Полный цикл: управление частями (parts), поставщиками, BOM (bill of materials), сборками (builds), заказами, QR‑кодами и мобильным приложением для сканирования.

🔘API и расширения: мощный REST API, Python‑клиент, плагины и интеграции с внешними системами (например, KiCad для электроники).

🔘Деплой: Docker‑образы, one‑line скрипт установки, поддержка PostgreSQL/MySQL/SQLite + Redis, мультиязычность через Crowdin.

🚀Быстрый старт:

wget -qO install.sh https://get.inventree.org && bash install.sh


#python #django #inventory #warehouse #bom #opensource #inventree

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

django-tasks-db — это backend для Django Tasks (новая фича Django 6.0+), который хранит задачи в БД через ORM вместо Redis/RQ: простой worker ./manage.py db_worker.

🔹Настройка:

INSTALLED_APPS = ["django_tasks_db"]

TASKS = {
"default": {
"BACKEND": "django_tasks_db.DatabaseBackend",
"QUEUES": ["default"]
}
}


🔻Команды:

🔘Worker: manage.py db_worker --reload (DEBUG‑релоад).

🔘Cleanup: manage.py prune_db_task_results (удаляет старые задачи).

✅Идеально для простых проектов без внешних очередей, с приоритетами и `run_after`.

#django #tasks #background #orm #djangotasksdb

📱Ссылка на репозиторий:
https://github.com/RealOrangeOne/django-tasks-db
Please open Telegram to view this post
VIEW IN TELEGRAM
1⚡4👍1
📱Django Signals.

Django Signals — это мощный механизм, который позволяет разным частям вашего приложения "общаться" друг с другом, автоматически реагируя на различные события (например, сохранение модели или удаление объекта).

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

Устали искать концы? Встречайте Django Signals Panel!

Это удобный инструмент, который собирает и выводит все зарегистрированные сигналы Django и их обработчики (receivers) прямо в стандартную панель администратора.

🔹Главные фичи:

🔘Авто-поиск: автоматически находит все сигналы в вашем проекте и установленных приложениях.

🔘Детальная инспекция: показывает имя функции, модуль, путь к файлу, отправителя (sender) и dispatch UID для каждого обработчика.

🔘Просмотр исходного кода: исходники receiver'ов с подсветкой синтаксиса можно читать прямо в админке (включается опционально).

🔘Удобная навигация: быстрый поиск по имени/модулю и фильтрация по приложениям.

🔘Zero migrations: пакет работает исключительно на чтение, ваша база данных не затрагивается вообще!

🔘Полная поддержка встроенной тёмной темы Django.

🚀Быстрый старт:
pip install dj-signals-panel
(Требуется Python 3.9+ и Django 4.2+)

#Django #Python #Backend #WebDev #DjangoAdmin #OpenSource #DevTools #Programming

📱Ссылка на репозиторий:
https://github.com/yassi/dj-signals-panel
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍2🔥22
📱Dj-lite-tenant.

Dj-lite-tenant -
это экспериментальная библиотека для Django, которая выводит изоляцию данных в мультиарендных (multi-tenant) приложениях на абсолютный максимум. Она автоматически создает отдельную базу данных SQLite для каждого пользователя.
Если вы строите легковесный SaaS или пет-проект, где пользователи не должны пересекаться данными ни при каких обстоятельствах, этот инструмент предлагает элегантное решение без развертывания тяжелых серверов БД.

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

🔘Абсолютная изоляция: Каждый зарегистрированный пользователь получает свой собственный изолированный файл .sqlite3 для указанных в настройках приложений.

🔘Кросс-базовые связи: Связи типа ForeignKey между БД пользователя и общей базой данных (например, таблицей самого User) работают прозрачно благодаря механизму ATTACH DATABASE в SQLite. Django ORM сама генерирует валидные SQL-запросы.

🔘Автоматический роутинг: Специальный Middleware сам определяет текущего пользователя в запросе и направляет все запросы ORM в нужный файл. Есть полная поддержка синхронного и асинхронного выполнения.

🔘Мгновенное создание БД (Шаблоны): Чтобы не гонять миграции при регистрации каждого нового юзера, можно включить опцию USE_DATABASE_TEMPLATE. Первая чистая БД выполнит миграции, сохранится как шаблон, а для новых пользователей файлы будут просто клонироваться за миллисекунды.

🔘Фоновые задачи: Для работы вне контекста HTTP-запроса (например, в Celery-тасках) есть удобный контекстный менеджер: with tenant_db(user):.

🔘Интеграция с админкой: Суперпользователи могут переключаться между базами данных пользователей прямо через стандартную панель Django Admin.

🚀Быстрый старт:

Установка:
uv add dj-lite-tenant
# или pip install dj-lite-tenant


Минимальная настройка в settings.py:
INSTALLED_APPS = [
...
"dj_lite_tenant",
]

MIDDLEWARE = [
...
"django.contrib.auth.middleware.AuthenticationMiddleware",
"dj_lite_tenant.middleware.TenantDatabaseMiddleware", # Строго после Auth
]

DATABASE_ROUTERS = ["dj_lite_tenant.routers.TenantDatabaseRouter"]

DJ_LITE_TENANT = {
"DIR": BASE_DIR / "db/tenants",
"APPS": {"notes"}, # Приложения, данные которых улетят в персональные БД
}

Для применения новых миграций ко всем базам данных пользователей используется специальная команда: python manage.py migrate_tenant_dbs.

⚠️Важное примечание: Автор честно предупреждает, что проект пока очень экспериментальный. В текущем виде он не предназначен для production-сред с высокой нагрузкой, но концепт изоляции на уровне SQLite-файлов выглядит чертовски интересно!

#Django #Python #SQLite #MultiTenant #Backend #WebDev #SaaS #Database #OpenSource

📱Ссылка на репозиторий:
https://github.com/adamghill/dj-lite-tenant
Please open Telegram to view this post
VIEW IN TELEGRAM
3👍2⚡1
📱Python UUID Utils.

Python UUID Utils —
это сверхбыстрая замена стандартного модуля uuid в Python, написанная на Rust. Инструмент разработан как полноценная альтернатива (drop-in replacement): вы можете кратно ускорить генерацию уникальных идентификаторов в вашем приложении без кардинального переписывания кодовой базы.

🔹Доступные версии UUID:

🔘uuid1 / uuid6 — на основе временной метки и монотонного счетчика.

🔘uuid3 / uuid5 — на основе хэшей MD5 и SHA-1 от переданных данных.

🔘uuid4 — классический UUID на базе случайных данных.

🔘uuid7 — современный стандарт на основе Unix-времени, идеально подходящий для первичных ключей в базах данных благодаря сортировке по времени создания.

🔘uuid8 — кастомные UUID на основе пользовательских данных.

🚀Потрясающая производительность (Бенчмарки):

Согласно официальным тестам на Python 3.14, ускорение получается просто космическим:

🔘uuid4(): Стандартная библиотека — 1189 нс | uuid_utils — всего 61 нс (быстрее почти в 20 раз!).

🔘uuid7(): Стандартная библиотека — 1336 нс | uuid_utils — 84 нс (быстрее в 15 раз!).

🔘Парсинг идентификатора из строк (hex) или байтов работает быстрее в 4–5 раз.

🔧Совместимость с Django и другими фреймворками:

Некоторые крупные фреймворки строго требуют, чтобы объекты UUID были именно инстансами стандартного класса uuid.UUID из встроенной библиотеки Python, а не сторонними сабклассами. Разработчики это учли! Для таких случаев есть специальный модуль совместимости:

import uuid_utils.compat as uuid

# Возвращает родной объект stdlib uuid.UUID,
# но генерирует его в 4-5 раз быстрее стандартного модуля!
my_id = uuid.uuid4()


📦Установка:

pip install uuid-utils
# или через conda
conda install -c conda-forge uuid-utils


#Python #Rust #Performance #UUID #Backend #Django #DevTools #Programming #OpenSource #Оптимизация

📱Ссылка на репозиторий:
https://github.com/aminalaee/uuid-utils
Please open Telegram to view this post
VIEW IN TELEGRAM
3⚡2👍22
📱Citry.

Citry
- это строго типизированный фронтенд-фреймворк для Python, объединяющий серверные события и Alpine.js для создания реактивных веб-интерфейсов без необходимости вести отдельный frontend-проект на JavaScript.

Архитектура проекта вдохновлена идеями Vue и Laravel Livewire: один Python-компонент инкапсулирует HTML-разметку, стили CSS, логику браузера, серверные обработчики событий и переводы интерфейса.

🔹Главные возможности:

🔘Строгая типизация (Full Typing): Входные параметры компонентов валидируются через аннотации типов Python (Kwargs). Опечатки в свойствах или пропущенные поля отлавливаются на этапе статического анализа, а метод template_data() изолирует контекст, доступный шаблону.

🔘Реактивность без тяжелого JS-стека: Бесшовная связка с Alpine.js и серверными событиями (Server Events) позволяет обновлять части DOM-дерева на лету прямо из Python-кода без сборщиков Webpack/Vite.

🔘HTML-подобная композиция: Компоненты вкладываются друг в друга через наглядные теги <c-ComponentName>, а атрибуты с префиксом c- вычисляют Python-выражения (например, c-messages="user.inbox").

🔘Фреймворк-агностик: Легко монтируется в существующие бэкенды на FastAPI, Django, Flask, Starlette, а также в любые чистые ASGI- и WSGI-приложения.

🔘Развитая экосистема разработки:

✔️Официальное расширение для VS Code с автодополнением, диагностикой и подсветкой синтаксиса шаблонов.

✔️Встроенный CLI-анализатор (citry check --static).

✔️Библиотека готовых доступных UI-компонентов (citry-ui) — диалоги, формы, навигация и таблицы.

💻Пример компонента:
from citry import Component

class Welcome(Component):
class Kwargs:
name: str
messages: list[str]

def template_data(self, kwargs, slots):
return {
"name": kwargs.name,
"messages": kwargs.messages,
}

template = """
<section class="welcome">
<h1>С возвращением, {{ name }}!</h1>
<ul>
<li c-for="message in messages">{{ message }}</li>
<li c-empty>Новых сообщений нет.</li>
</ul>
</section>
"""

css = """
.welcome { border-top: 3px solid #2563eb; }
"""

# Рендеринг компонента в HTML-строку
html = str(Welcome(name="Алексей", messages=["Сборка завершена", "Отчет готов"]))


📦Установка:
pip install citry
# или через uv:
uv add citry


✅Фреймворк поддерживает Python от 3.10 до 3.14 и распространяется под свободной лицензией MIT.

#Citry #Python #Frontend #Fullstack #FastAPI #Django #Flask #AlpineJS #Livewire #WebDev #OpenSource #DevTools

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