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

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

Сайт: https://pythonomania.github.io/
Download Telegram
📱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
📱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
📱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
📱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