Skip to main content

web_fractal

Конструктор веб-приложений поверх SQLAlchemy и Pydantic: типобезопасный DSL фильтров, CRUD-миксины, ABAC-правила доступа, контроллеры для нескольких транспортов. Ядро не привязано к веб-фреймворку — интеграции подключаются экстрами.

pip install web_fractal              # ядро: db, dtos, filters, mixins, security
pip install "web_fractal[fastapi]"   # + контроллеры и сборка FastAPI-приложения

Что внутри

Модуль Зачем
web_fractal.db Base, UnitOfWork, paginate, apply_filters, copy_object
web_fractal.dtos Pydantic-база с .not_blank, Pagination, MessageDTO
web_fractal.types Unset/UNSET — sentinel «не фильтровать», в отличие от None
web_fractal.filters FilterBase + FilterField[T]: DSL фильтрации с автогенерацией query-параметров
web_fractal.mixins GenericRepo, GenericService — CRUD без копипасты
web_fractal.core.security ABAC: SecurityContext, AccessRule, RowRule, FieldScope
web_fractal.http HttpControllerABC, AutoHttpController (требует экстру fastapi)
web_fractal.building_utils Сборка FastAPI-приложения из archtool-инжектора (экстра fastapi)
web_fractal.transports Контроллеры Kafka / gRPC / GraphQL (свои экстры)

Фильтры

from web_fractal.filters import FilterBase, FilterField

class UserFilter(FilterBase):
    name: FilterField[str]
    age: FilterField[int]

# FastAPI-зависимость с явными query-параметрами в Swagger
UserFilterDep = UserFilter.as_fastapi_dep()

Единица работы

from web_fractal.db import UnitOfWork

async with UnitOfWork(session_maker) as uow:
    session = uow.get_session()
    ...
    await session.commit()

Экстры

Экстра Что включает
fastapi HTTP-контроллеры, middlewares, сборка приложения
aiohttp utils.download_large_file
kafka, grpc, graphql соответствующие транспорты
django адаптеры для Django-проектов

Пакет не импортирует подмодули на загрузке (PEP 562): import web_fractal.db не требует ни FastAPI, ни aiohttp. Публичные имена доступны и из корня — from web_fractal import UnitOfWork — но резолвятся лениво, при первом обращении.

Разработка

uv sync --extra dev
pytest

MIT.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

web_fractal-0.2.1.tar.gz (60.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

web_fractal-0.2.1-py3-none-any.whl (47.7 kB view details)

Uploaded Python 3

File details

Details for the file web_fractal-0.2.1.tar.gz.

File metadata

  • Download URL: web_fractal-0.2.1.tar.gz
  • Upload date:
  • Size: 60.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.12.3

File hashes

Hashes for web_fractal-0.2.1.tar.gz
Algorithm Hash digest
SHA256 d593c8179d203bf7b5b1a211ddbec14f35106c7c34d34571db9bc06858f5782d
MD5 a5f160e3bf906c2d905e717979dd1071
BLAKE2b-256 5e2c47c40a9de2dca176053693fd10ce1548513d5dde8b8aeb03c1d746f28c0a

See more details on using hashes here.

File details

Details for the file web_fractal-0.2.1-py3-none-any.whl.

File metadata

  • Download URL: web_fractal-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 47.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.12.3

File hashes

Hashes for web_fractal-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 007c90b543128af6d14cfeaa51f0c1832548870b1edd2512e5af80e429c08459
MD5 22a85209b2d8ca814b0d6047f542f6e6
BLAKE2b-256 5aa2833ba01967f3bcb4ef5d15a7b17d82288a2e257c83c8b9e87c14d68c7b24

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.2.1 This release

2 files

0.0.1

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page