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

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

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

PSQLPy — это новый Python-драйвер для PostgreSQL, полностью написанный на Rust. Он был вдохновлен Psycopg3 и AsyncPG.

ℹ️У этого проекта две основные цели: сделать взаимодействие с базой данных максимально быстрым (сейчас PSQLPy показывает себя в разы быстрее вышеупомянутых драйверов) и избежать бесполезных абстракций, сделав его как можно ближе к PostgreSQL.

❗️PSQLPy имеет все необходимые компоненты для создания высоконагруженных и отказоустойчивых приложений.

#PSQLPy #PostgreSQL #Python #Rust #Database #HighLoad #FaultTolerance #Programming #Psycopg3 #AsyncPG #DatabaseDriver

📱Ссылка на репозиторий:
https://github.com/qaspen-python/psqlpy
Please open Telegram to view this post
VIEW IN TELEGRAM
6🔥4⚡3
📱peepDB.

peepDB — это новый open-source инструмент командной строки и библиотека Python, разработанная для разработчиков и администраторов баз данных.

❗️Если вам нужно быстро и эффективно просмотреть таблицы вашей базы данных без написания SQL-запросов, peepDB — то, что вам нужно! Поддерживаются базы данных MySQL, PostgreSQL и MariaDB. Легкий, безопасный и невероятно простой в использовании инструмент.

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

🔘Поддержка MySQL, PostgreSQL и MariaDB.

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

🔘Удобный CLI-интерфейс.

🔘Безопасное хранение данных о подключении к базе с использованием шифрования.

🔘Легкость: минимальный размер и высокая скорость работы.

🔘Форматированный вывод: просмотр данных в виде таблицы или в формате JSON.

#peepDB #opensource #databasetools #MySQL #PostgreSQL #MariaDB #CLI #Python #инструментразработчика #базыданных

📱Ссылка на репозиторий:
https://github.com/evangelosmeklis/peepdb
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡32
📱Testcontainers-python.

testcontainers-python
— удобная библиотека для использования Docker-контейнеров при функциональном и интеграционном тестировании на Python.

🔹Начало работы:
from testcontainers.postgres import PostgresContainer
import sqlalchemy

with PostgresContainer("postgres:16") as postgres:
engine = sqlalchemy.create_engine(postgres.get_connection_url())
with engine.begin() as connection:
result = connection.execute(sqlalchemy.text("select version()"))
version, = result.fetchone()
print(version) # PostgreSQL 16...


Этот пример поднимает базу данных Postgres в Docker-контейнере. Метод get_connection_url() возвращает URL, совместимый с SQLAlchemy, чтобы подключиться к базе и получить версию.

#Python #Docker #Testcontainers #Тестирование #PostgreSQL #ИнтеграционныеТесты #DevOps #Backend #Разработка

📱Ссылка на репозиторий:
https://github.com/testcontainers/testcontainers-python
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1355
📱Full Stack FastAPI Template.

Full Stack FastAPI Template
— это готовый шаблон для создания современного веб-приложения от бэкенда до фронтенда. Всё настроено: бери и пиши бизнес-логику.

🔹Что внутри:

🔘FastAPI + SQLModel + PostgreSQL на бэке.

🔘JWT, безопасное хеширование паролей, восстановление по email.

🔘Pytest + Playwright для тестов.

🔘React + TypeScript + Vite + Chakra UI на фронте.

🔘Поддержка тёмной темы.

🔘Docker Compose для dev/prod.

🔘Автоматическая сборка клиента и API.

🔘CI/CD через GitHub Actions.

🔘Traefik как обратный прокси с HTTPS.

✅Идеально подходит для запуска стартапа, MVP или внутреннего сервиса. Всё по лучшим практикам.

#FastAPI #FullStack #WebDev #Python #React #Docker #CI_CD #PostgreSQL #TypeScript #JWT #Vite #OpenSource #DevTemplate #Traefik #ChakraUI

📱Ссылка на репозиторий:
https://github.com/fastapi/full-stack-fastapi-template
Please open Telegram to view this post
VIEW IN TELEGRAM
13👍2🔥2🤔11
📱Riffq.

riffq — это инструмент на Python и Rust, который позволяет делать из ваших данных и кода полноценную базу данных с интерфейсом PostgreSQL.

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

🔘Wire-протокол PostgreSQL (simple + extended) реализован на Rust для скорости и многопоточности.

🔘SQL-запросы перенаправляются в Python (DuckDB, Polars, Pandas и др.).

🔘Поддержка pg_catalog (совместимость с клиентами Postgres).

🔘Подключение к внешним источникам (CRM, аналитические БД) и объединение их в единый SQL-интерфейс.

🔘Сервинг DataFrame как виртуальных таблиц.

🔘Программируемый движок федеративных запросов.

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

🔘Поднять Pandas DataFrame как PostgreSQL-таблицу для BI-инструментов.

🔘Построить federated query engine из нескольких API и БД.

🔘Реализовать фронтенд для data lake.

🔘Экспонировать динамические ML feature-stores для обучения и продакшн-инференса.

#Python #Rust #PostgreSQL #DataEngineering #DuckDB #Polars #Pandas #BI #FederatedQuery #riffq

📱Ссылка на репозиторий:
https://github.com/ybrs/riffq
Please open Telegram to view this post
VIEW IN TELEGRAM
1331
📱FastAPI and NiceGUI Full-Stack Template.

FastAPI + NiceGUI Full-Stack Template — это готовый шаблон для создания полноценных веб-приложений на Python.

🔹Если кратко:

Бэкенд на FastAPI + фронтенд на NiceGUI → и всё это пишется только на Python, без HTML, CSS и JavaScript.

❓Почему это круто:

🔘FastAPI — быстрый и современный фреймворк с валидацией через Pydantic и автодокументацией.

🔘NiceGUI — UI-фреймворк, который позволяет строить интерфейсы на Python, как будто вы пишете обычный скрипт.

🔘PostgreSQL в Docker — настроен и готов к работе.

🔘JWT-аутентификация из коробки.

🔘Чистая структура проекта — удобно развивать.

🔘Отлично подходит для демо, внутренних тулов и быстрых прототипов.

🔻Что включено:

🔘Backend на FastAPI.

🔘Frontend на NiceGUI.

🔘PostgreSQL + Docker Compose.

🔘SQLModel для работы с БД.

🔘JWT авторизация.

🔘Автогенерируемые Swagger/ReDoc.

🔘Готовый шаблон для мгновенного старта.

#FastAPI #NiceGUI #Python #FullStack #WebDev #Backend #Frontend #SQLModel #PostgreSQL #Docker #JWT #Uvicorn

📱Ссылка на репозиторий:
https://github.com/jaehyeon-kim/nicegui-fastapi-template
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍22
📱Onlymaps.

Onlymaps
— лёгкая Python-библиотека (micro-ORM) для работы с базой данных через обычные SQL-запросы.

❓Что делает:

🔘Позволяет писать чистый SQL, при этом автоматически мапит результаты в Python-объекты.

🔘Поддержка синхронного и асинхронного выполнения запросов.

🔘Типизация и валидация через Pydantic.

🔘Работает с PostgreSQL, MySQL, MariaDB, MS SQL Server и SQLite.

🔘Поддержка connection pooling для многопоточных приложений.

🔘Удобные обёртки для JSON и bulk-запросов.

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

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

from onlymaps import connect
from pydantic import BaseModel

class User(BaseModel):
name: str
age: int

with connect("postgresql://user:pass@localhost:5432/mydb") as db:
users: list[User] = db.fetch_many(User, "SELECT name, age FROM users")


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

🔘Можно использовать как обычные типы Python (tuple, dict) или модели Pydantic для маппинга.

🔘Контейнеры (tuple, list, set) для данных без имён колонок.

🔘Модели (dict, dataclass, BaseModel) для сохранения структуры и валидации.

🔘Полная поддержка транзакций и безопасное выполнение bulk-запросов.

#Python #ORM #SQL #Pydantic #PostgreSQL #MySQL #SQLite #AsyncPython #MicroORM #DatabaseTools

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

Jetbase — это лёгкий миграционный инструмент для БД в Python‑проектах: SQL‑файлы с версиями, апгрейды/роллбеки, валидация и блокировка миграций, плюс поддержка Postgres, SQLite, Snowflake и MySQL.

❓Что умеет:

🔘Простая инициализация: pip install jetbase → jetbase init создаёт каталог jetbase/ c migrations/ и env.py.

🔘Версионированные миграции в виде SQL‑файлов V<version>__<description>.sql, c блоками -- upgrade и -- rollback, и командами jetbase upgrade, jetbase history, jetbase status.

🔘Безопасность: file checksum’ы, миграционный lock (один процесс за раз), линейная история (всегда один head, конфликт версий падает сразу), repeatable‑миграции.

🔹Поддерживаемые БД и драйверы:

🔘Поддерживаются PostgreSQL, SQLite, Snowflake и MySQL через SQLAlchemy URL в jetbase/env.py.

🔘Для небустроенного SQLite требуются драйверы: например, psycopg2 для Postgres или соответствующий Snowflake/MySQL драйвер.

🔻Пример:

Настройка подключения, затем:
  jetbase new "create users table" -v 1

# редактируем V1__create_users_table.sql
jetbase upgrade

SQL: в -- upgrade создаём таблицы, в -- rollback — удаляем, что упрощает откаты.

#Jetbase #Python #DatabaseMigrations #PostgreSQL #SQLite #Snowflake #MySQL #SQLAlchemy #DevTools #DataEngineering

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

Oban — мощный фреймворк для оркестрации background jobs в Python на базе PostgreSQL. Надёжный, наблюдаемый, с enterprise‑фичами: async‑нативный, без лишних зависимостей, транзакционный контроль.

🔹Преимущества:

🔘Исторические метрики — jobs хранятся после выполнения для аудита/аналитики.
🔘Изолированные queues — concurrency per queue, без конкуренции (медленный reports не тормозит emails).
🔘Контроль — start/stop/pause/scale queues на лету.
🔘Cancel/Snooze — отмена/отложка jobs.
🔘Triggers — мгновенная диспетчеризация на всех нодах.
🔘Priority/CRON — 10 уровней приоритета, cron‑джобы без дубликатов.
🔘Graceful shutdown — slow jobs.
🔘Node metrics/Telemetry — мониторинг состояния.

🔻Быстрый старт:
from oban import worker, Snooze, Cancel

@worker(queue="exports", max_attempts=5)
class ExportWorker:
async def process(self, job):
if job.cancelled(): return Cancel("cancelled")
report = await generate_report(job.args["report_id"])
if report.status == "pending": return Snooze(seconds=30)
await send_to_user(job.args["email"], report)

# Enqueue
await ExportWorker.enqueue({"report_id": 123, "email": "user@example.com"})

# CLI
oban install --dsn postgresql://localhost/mydb
oban start --dsn postgresql://localhost/mydb --queues exports:10


#Oban #JobQueue #PostgreSQL #AsyncPython #BackgroundJobs #Workflows #Python #OpenSource

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

Oxyde ORM — асинхронный type‑safe ORM с Pydantic v2 и быстрым Rust‑ядром, сделанный в духе Django ORM, но с современным API и предсказуемым поведением.

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

🔘Django‑стиль: привычный User.objects.filter(...), аннотации полей и Meta‑класс для таблиц.

🔘Pydantic‑центричность: модели — полноценные Pydantic v2, с валидацией, тайпингом и удобной сериализацией.

🔘Rust‑производительность: генерация и выполнение SQL вынесены в Rust‑core (oxyde-core), что даёт высокий ops/sec в бенчмарках против популярных ORM.

🔘Async‑first: всё на asyncio, с поддержкой PostgreSQL, SQLite и MySQL, транзакций и nested transaction.atomic().

🔘Интеграция с FastAPI: готовый db.lifespan(...) для подключения БД на уровне приложения.

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

pip install oxyde


from oxyde import Model, Field

class User(Model):
id: int | None = Field(default=None, db_pk=True)
name: str
email: str = Field(db_unique=True)


#python #orm #asyncio #pydantic #rust #fastapi #postgresql #sqlite #mysql

📱Ссылка на репозиторий:
https://github.com/mr-fatalyst/oxyde
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
📱Tortoise ORM.

Tortoise ORM
- это простая и производительная асинхронная ORM (Object-Relational Mapper) для Python 3.10+, созданная под сильным вдохновением от Django ORM.

Библиотека разработана специально для asyncio и сочетает привычный, выразительный синтаксис моделей Django с нативной асинхронностью, избавляя от бойлерплейта и необходимости писать «сырые» SQL-запросы в асинхронных микросервисах.

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

🔘Нативная асинхронность: Спроектирована с нуля для работы с современным асинхронным стеком Python (async/await) без блокировки event loop.

🔘Django-подобный API: Привычное объявление моделей через классы Model, строгая типизация полей (fields), поддержка связей ForeignKeyField / ManyToManyField и удобный QuerySet (filter, annotate, prefetch_related).

🔘Широкая поддержка баз данных:

✔️PostgreSQL (asyncpg, psycopg)

✔️MySQL / MariaDB (asyncmy, aiomysql)

✔️SQLite (aiosqlite)

✔️MS SQL & Oracle (asyncodbc)

🔘Встроенные миграции: Поставляется с готовым CLI-инструментом (tortoise makemigrations, tortoise migrate, tortoise sqlmigrate) для автоматического отслеживания изменений схем и генерации миграций.

🔘Бесшовная интеграция: Идеально подходит для связки с FastAPI, Sanic, Litestar, Quart и другими современными веб-фреймворками.

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

1. Определение моделей:
from tortoise import fields
from tortoise.models import Model

class Tournament(Model):
id = fields.IntField(primary_key=True)
name = fields.CharField(max_length=50)

class Event(Model):
id = fields.BigIntField(primary_key=True)
name = fields.TextField()
tournament = fields.ForeignKeyField('models.Tournament', related_name='events')


2. Инициализация и работа с данными:

import asyncio
from tortoise import Tortoise

async def main():
# Подключение к БД
await Tortoise.init(
db_url='sqlite://db.sqlite3',
modules={'models': ['__main__']}
)
# Генерация таблиц (для dev-режима)
await Tortoise.generate_schemas()

# Создание записей
tournament = await Tournament.create(name='Cyber Cup 2026')
await Event.create(name='Final Match', tournament=tournament)

# Выборка с подгрузкой связанных связей
events = await Event.filter(tournament=tournament).prefetch_related('tournament')
for event in events:
print(f"Событие: {event.name}, Турнир: {event.tournament.name}")

await Tortoise.close_connections()

asyncio.run(main())


📦Установка:
# Базовая версия (SQLite):
pip install tortoise-orm

# С драйвером для PostgreSQL:
pip install "tortoise-orm[asyncpg]"

# С драйвером для MySQL:
pip install "tortoise-orm[asyncmy]"


✅Проект распространяется под открытой лицензией Apache 2.0.

#Python #TortoiseORM #ORM #AsyncIO #FastAPI #PostgreSQL #MySQL #Database #Backend #DevTools #OpenSource

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