ORM Core Library for FastAPI and SQLAlchemy
Project description
ORM Manager Factory
Универсальная фабрика для создания менеджеров работы с SQLAlchemy ORM, поддерживающая:
- Базовые CRUD-операции
- Автоматическую валидацию через Pydantic схемы
- Генерацию FastAPI роутеров
📦 Установка
pip install orm_core
🚀 Возможности
1. Базовый ORM менеджер
Работа с моделями SQLAlchemy без дополнительных схем.
2. Менеджер с Pydantic схемами
Автоматическая валидация входных/выходных данных.
3. Менеджер с автогенерацией FastAPI роутеров
Полноценное CRUD API из коробки
🔧 Использование
1. Базовый ORM менеджер
from orm_manager import ClientDB, create_orm_manager
class YourClientDB(ClientDB):
def __init__(self, async_url: str):
super().__init__(async_url)
self.user = create_orm_manager(User)
db = YourClientDB("postgresql+asyncpg://user:pass@localhost:5432/db")
# Использование
await db.init()
await db.user.add(...)
await db.user.get_by(...)
await db.user.get_by_query(...)
await db.user.get_all(...)
await db.user.delete(...)
2. С Pydantic схемами
class YourClientDB(ClientDB):
def __init__(self, async_url: str):
super().__init__(async_url)
self.user = create_orm_manager(
User,
UserCreateSchema,
UserUpdateSchema,
UserOutSchema
)
# Автоматическая валидация входных/выходных данных в Pydantic схемы
await db.init()
await db.user.add(...)
...
await db.user.delete(...)
3. С генерацией FastAPI роутеров
class YourClientDB(ClientDB):
def __init__(self, async_url: str):
super().__init__(async_url)
# Автоматическая генерация Pydantic схем для swagger
self.group = create_orm_manager(
Group,
session_factory=self.session_factory,
api=True
)
# Можно использовать кастомные схемы
self.user = create_orm_manager(
User,
UserCreateSchema,
UserUpdateSchema,
UserOutSchema,
session_factory=self.session_factory,
api=True,
tags=["Users"]
)
@asynccontextmanager
async def lifespan(app: FastAPI):
await db_client.init_db()
yield
app = FastAPI(
lifespan=lifespan,
)
app.include_router(db.user.router)
app.include_router(db.group.router)
📄 Лицензия
MIT License. См. файл LICENSE.
🤝 Вклад
Приветствуются pull requests и issue reports.
🧑💻 Об авторе
Соловьёв Эрик - GitHub
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file orm_core-0.0.3.tar.gz.
File metadata
- Download URL: orm_core-0.0.3.tar.gz
- Upload date:
- Size: 18.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0c70c4a1974c4c8f5dfb132f8b5d6ffaafb741bcb7d4ee218332eae4ad8a259d
|
|
| MD5 |
82e47a642a2905453f8fe9bd6b29ba7c
|
|
| BLAKE2b-256 |
86d148f9a96044e9a02124730e6bd8b5c04b8e4b753977bae5a24e956fd5f734
|
File details
Details for the file orm_core-0.0.3-py3-none-any.whl.
File metadata
- Download URL: orm_core-0.0.3-py3-none-any.whl
- Upload date:
- Size: 29.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6fbc6eb86dfb3fef902b06a7a44433544dad3aa7391afafb53ecc7d36db65314
|
|
| MD5 |
7291a0ee4848530d1e9e8195592f975a
|
|
| BLAKE2b-256 |
fb0bbd3c265ad487b4d8d96b9e1df7435482288fed46d2e3b6c43046cf0205cd
|