# Python ## Признаки платформы - `pyproject.toml` - `requirements.txt`, `requirements-dev.txt` - `Pipfile`, `poetry.lock` - `setup.py`, `setup.cfg` - `manage.py` (Django) ## Признаки многомодульного проекта - Несколько `pyproject.toml` в подкаталогах - `packages/`, `apps/` каталоги - Структура Django: `apps/` с `apps.py` ## Источники перед созданием навыка - `pyproject.toml` или `setup.py` - `requirements*.txt`, `Pipfile` - `tox.ini`, `pytest.ini` - `manage.py`, `settings.py` (Django) ## Что искать в кодовой базе ### Корневые каталоги исходников - `src/`, `app/`, `packages/`, `tests/` ### Типовые слои и каталоги: зафиксируй найденные `api/`, `routers/`, `views/`, `services/`, `repositories/`, `models/`, `schemas/`, `utils/`, `config/` ### Признаки шаблонов | Шаблон | Критерии обнаружения | Имя навыка | |---------|-------------------|------------| | FastAPI Router | `APIRouter`, `@router.get`, `@router.post` | fastapi-router | | FastAPI Dependency | `Depends(`, `def get_*():` | fastapi-dependency | | Django View | `View`, `APIView`, `def get(self, request)` | django-view | | Django Model | `models.Model`, `class Meta:` | django-model | | Django Serializer | `serializers.Serializer`, `ModelSerializer` | drf-serializer | | Flask Route | `@app.route`, `Blueprint` | flask-route | | Pydantic Model | `BaseModel`, `Field(`, `model_validator` | pydantic-model | | SQLAlchemy Model | `Base`, `Column(`, `relationship(` | sqlalchemy-model | | Alembic Migration | `alembic/versions/`, `op.create_table` | alembic-migration | | Repository | `*Repository`, `class *Repository` | data-repository | | Service | `*Service`, `class *Service` | service-layer | | Celery Task | `@celery.task`, `@shared_task` | celery-task | | CLI Command | `@click.command`, `typer.Typer` | cli-command | | Unit Test | `pytest`, `def test_*():`, `unittest` | pytest-test | | Fixture | `@pytest.fixture`, `conftest.py` | pytest-fixture | ## Обязательные разделы результата Добавь, если найдено: - **Маршрутизаторы/представления**: конечные точки API - **Модели/схемы**: модели данных (Pydantic, SQLAlchemy, Django) - **Сервисы**: слой бизнес-логики - **Репозитории**: слой доступа к данным - **Миграции**: миграции Alembic и Django - **Задачи**: Celery, фоновые задания ## Откуда брать команды - `pyproject.toml` разделы инструментов - README, документация и CI - Обычные команды: `python manage.py`, `pytest`, `uvicorn`, `flask run` - Добавляй только команды, которые есть в репозитории ## Основные пути - `src/`, `app/` - `tests/` - `alembic/`, `migrations/` - `templates/`, `static/` (для веб-приложения)