- Add python-development-database skill: metaorm patterns for tables, repositories, filters, settings, transactions, pagination, and exceptions - Add python-development-telegram-bot skill: aiogram bot service with polling/webhook, router structure, middlewares, inline keyboards, and pagination - Add python-development-tests skill: test organization guidelines with pytest, fixtures, and dependency injection rules - Update python-development-stack: replace SQLModel/SQLAlchemy with metaorm; add pytest, pytest-asyncio, pytest-cov, faker - Update python-development-fastapi: add sections for dependencies and list endpoints with ListResponse schema - Update python-development-code-style: allow ctx as exception for typer.Context parameter - Update python-development index with links to all three new skills Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
20 lines
1.1 KiB
Markdown
20 lines
1.1 KiB
Markdown
---
|
|
name: python-development-stack
|
|
description: Technology stack decisions for Python services. Use when adding dependencies, choosing infrastructure, bootstrapping projects, or reviewing tool choices.
|
|
---
|
|
|
|
## Rules
|
|
- Use `uv` as the package manager for all Python dependency operations.
|
|
- Use `FastAPI` for REST API and HTTP services.
|
|
- Use `metaorm` for database access. It is built on top of `SQLModel` and `SQLAlchemy` and provides built-in CRUD, DTO mapping, pagination, sorting, and transaction management. Async drivers: `asyncpg` for PostgreSQL, `aiosqlite` for SQLite.
|
|
- Use `alembic` for database migrations.
|
|
- Use `facet` for hierarchical async service composition with dependency management and graceful shutdown.
|
|
- Use `typer` for CLI interfaces.
|
|
- Use `pydantic` for DTOs and data validation; use `pydantic-settings` for application configuration.
|
|
- Use `loguru` for logging.
|
|
- Use `pytest` with `pytest-asyncio` for testing.
|
|
- Use `pytest-cov` for coverage reporting.
|
|
- Use `faker` for generating test data.
|
|
- Use `pyyaml` for YAML parsing; use `pyyaml-include` for `!include` tags and `pyyaml-env-tag` for `!env` interpolation inside YAML config files.
|
|
|