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
📱JameSQL.

JameSQL - это NoSQL база данных на Python, работающая в оперативной памяти. Она поддерживает создание пользовательских алгоритмов ранжирования и обеспечивает сверхбыстрый полнотекстовый поиск по тысячам документов с несколькими полями (менее 1 мс).

🔻Пример запуска с текстовым запросом:
from jamesql import JameSQL

index = JameSQL.load()
index.add({"title": "tolerate it", "lyric": "Use my best colors for your portrait"})

# Результаты возвращаются менее чем за 1 мс, независимо от количества документов
results = index.string_query_search("title:'tolerate it' colors")

print(results)
# {'documents': [{'title': 'tolerate it', 'lyric': 'Use my best colors for your portrait' ...}]


✅JameSQL – идеальное решение для тех, кто ищет быстрый и гибкий способ хранения и поиска данных.

#JameSQL #NoSQL #Python #FullTextSearch #Database #InMemoryDatabase

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

drawDB — бесплатный и интуитивно понятный редактор схем БД и генератор SQL.

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

🔘Простое и удобное создание диаграмм сущностей прямо в браузере.

🔘Экспорт SQL-скриптов за пару кликов.

🔘Гибкая настройка редактора без необходимости регистрации.

#Database #SQL #DBER #drawDB #WebTools #Programming

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

aiosqlitepool — пул соединений для SQLite в asyncio-приложениях.

aiosqlitepool — это высокопроизводительный пул соединений для асинхронных SQLite-приложений. Он устраняет издержки на создание/закрытие соединений и ускоряет работу с БД за счёт повторного использования «горячих» соединений.

⚠️Это не драйвер SQLite, а надстройка над aiosqlite, повышающая производительность.

❓Зачем использовать aiosqlitepool:

🔘Устраняет накладные расходы на соединения.

🔘Ускоряет запросы за счёт кэша в памяти.

🔘Увеличивает пропускную способность при высокой нагрузке.

🔹Пример базового использования:
async with pool.connection() as conn:
await conn.execute("INSERT INTO users VALUES (?)", ("Alice",))
await conn.commit()


❓Когда стоит использовать:

🔘5–10 запросов к БД в секунду.

🔘30 запросов в секунду от фоновых воркеров.

🔘P99 латентность < 50 мс.

🔘минимизация нагрузки на CPU/диск.

#Python #SQLite #AsyncIO #FastAPI #aiosqlite #aiosqlitepool #Backend #Performance #DevTools #WebDev #DataEngineering #Database

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

Coffy
— это лёгкая embedded-база данных на чистом Python.

✅Поддерживает NoSQL, SQL и Graph модели — всё в чистом Python.

✅Идеально для быстрых прототипов, скриптов и локальных приложений.

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

🔘Локальное хранение (JSON, SQLite).

🔘In-memory режим (:memory: или None).

🔘Без сервера, всё работает локально.

🔘Логические и сравнительные операторы.

🔘Единый интерфейс запросов.

🔘CLI из коробки.

🔻Engines:

🔘coffy.graph → локальная графовая база (на базе NetworkX).

🔘coffy.nosql → документное хранилище с chainable-запросами.

🔘coffy.sql → тонкая обёртка над SQLite.

#Coffy #Python #Database #NoSQL #SQL #GraphDB #SQLite #EmbeddedDB #LocalFirst #DataScience #OpenSource

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

CogDB
- это встраиваемая (embedded) персистентная графовая база данных для Python, работающая прямо внутри процесса вашего приложения без необходимости поднимать отдельный сервер.

Вся база хранится локально на диске, не требует сложной инфраструктуры и легко запускается как в обычных бэкенд-скриптах, так и в интерактивных блокнотах Jupyter или Google Colab.

🔹Главные особенности:

🔘Модель триплстора (Triple Store): Данные моделируются в виде понятных троек «Узел → Связь → Узел» (alice → follows → bob), что дает выразительность графа при простоте key-value хранилища.

🔘Нативный язык запросов Torque: Забудьте о громоздких строках на Cypher или SPARQL. Запросы пишутся через понятный чейнинг методов прямо на чистом Python: g.v("alice").out("follows").all().

🔘Векторные эмбеддинги и семантический поиск: Поддерживает загрузку векторов (GloVe, Word2Vec) и быстрый поиск ближайших соседей (k-NN) на базе SIMD-оптимизированной библиотеки SimSIMD. Можно комбинировать обход графа с фильтрацией по косинусному сходству.

🔘Интерактивная визуализация: Метод g.v().out().show() на лету генерирует интерактивный 2D-граф прямо в браузере или ячейке блокнота.

🔘Поддержка JSON и RDF: Умеет индексировать сырые JSON-документы (putj), загружать CSV-таблицы и читать RDF-дампы в формате N-Triples.

🔘Опциональный HTTP-сервер: Если локального режима мало, граф можно расшарить по сети вызовом g.serve(port=8080) и опрашивать удаленно из другого микросервиса.

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

from cog.torque import Graph

# Создаем персистентный граф
g = Graph("social")

# Добавляем связи и свойства
g.put("alice", "follows", "bob")
g.put("bob", "follows", "charlie")
g.put("bob", "status", "active")

# Графовые запросы:
# Кто подписан на тех, на кого подписана Алиса?
result = g.v("alice").out("follows").out("follows").all()
print(result)
# -> {'result': [{'id': 'charlie'}]}

# Поиск с фильтрацией по свойствам
active_users = g.v().has("status", "active").all()


📦Установка:

pip install cogdb


#Python #CogDB #GraphDatabase #NoSQL #Embeddings #DataScience #Jupyter #OpenSource #DevTools #Database

📱Ссылка на репозиторий:
https://github.com/arun1729/cog
Please open Telegram to view this post
VIEW IN TELEGRAM
3⚡2🔥21
📱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