FastAPI-fastkit 1.4.1__tar.gz → 1.5.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/PKG-INFO +2 -1
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/pyproject.toml +4 -1
- fastapi_fastkit-1.5.0/src/fastapi_fastkit/__init__.py +1 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/backend/main.py +35 -40
- fastapi_fastkit-1.5.0/src/fastapi_fastkit/backend/route_generators.py +163 -0
- fastapi_fastkit-1.5.0/src/fastapi_fastkit/backend/route_wiring.py +117 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/cli.py +13 -2
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-auth-jwt/pyproject.toml-tpl +1 -1
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-auth-jwt/requirements.txt-tpl +1 -1
- {fastapi_fastkit-1.4.1/src/fastapi_fastkit/fastapi_project_template/fastapi-sqlmodel → fastapi_fastkit-1.5.0/src/fastapi_fastkit/fastapi_project_template/fastapi-domain-starter}/src/app/api/router.py-tpl +1 -1
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-domain-starter/src/app/domains/items/router.py-tpl +1 -1
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-domain-starter/tests/conftest.py-tpl +16 -4
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-mcp/pyproject.toml-tpl +1 -1
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-mcp/requirements.txt-tpl +2 -2
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-mcp/setup.cfg-tpl +1 -1
- fastapi_fastkit-1.5.0/src/fastapi_fastkit/fastapi_project_template/modules/domain/__init__.py-tpl +10 -0
- fastapi_fastkit-1.5.0/src/fastapi_fastkit/fastapi_project_template/modules/domain/models.py-tpl +11 -0
- fastapi_fastkit-1.5.0/src/fastapi_fastkit/fastapi_project_template/modules/domain/repository.py-tpl +50 -0
- fastapi_fastkit-1.5.0/src/fastapi_fastkit/fastapi_project_template/modules/domain/router.py-tpl +66 -0
- fastapi_fastkit-1.5.0/src/fastapi_fastkit/fastapi_project_template/modules/domain/schemas.py-tpl +16 -0
- fastapi_fastkit-1.5.0/src/fastapi_fastkit/fastapi_project_template/modules/domain/service.py-tpl +47 -0
- fastapi_fastkit-1.5.0/tests/test_backends/test_route_generators.py +633 -0
- fastapi_fastkit-1.5.0/tests/test_backends/test_route_wiring.py +50 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/tests/test_cli_operations/test_cli_config_options.py +37 -10
- fastapi_fastkit-1.4.1/src/fastapi_fastkit/__init__.py +0 -1
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/LICENSE +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/README.md +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/__main__.py +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/backend/__init__.py +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/backend/inspection/__init__.py +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/backend/inspection/checks.py +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/backend/inspection/consistency.py +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/backend/inspection/context.py +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/backend/inspection/core.py +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/backend/inspection/docker.py +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/backend/inspection/freshness.py +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/backend/inspection/fsutils.py +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/backend/inspection/lint.py +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/backend/inspection/report.py +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/backend/inspection/smoke.py +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/backend/inspection/strategies.py +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/backend/inspector.py +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/backend/interactive/__init__.py +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/backend/interactive/config_builder.py +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/backend/interactive/prompts.py +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/backend/interactive/selectors.py +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/backend/interactive/validators.py +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/backend/package_managers/__init__.py +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/backend/package_managers/base.py +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/backend/package_managers/factory.py +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/backend/package_managers/pdm_manager.py +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/backend/package_managers/pip_manager.py +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/backend/package_managers/poetry_manager.py +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/backend/package_managers/uv_manager.py +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/backend/project_builder/__init__.py +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/backend/project_builder/config_generator.py +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/backend/project_builder/config_schema.py +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/backend/project_builder/dependency_collector.py +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/backend/project_builder/preset_layout.py +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/backend/scaffolder.py +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/backend/transducer.py +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/core/__init__.py +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/core/exceptions.py +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/core/settings.py +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/PROJECT_README_TEMPLATE.md +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/README.md +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/__init__.py +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-async-crud/.env-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-async-crud/.gitignore-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-async-crud/README.md-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-async-crud/pyproject.toml-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-async-crud/requirements.txt-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-async-crud/scripts/format.sh-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-async-crud/scripts/lint.sh-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-async-crud/scripts/run-server.sh-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-async-crud/scripts/test.sh-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-async-crud/setup.cfg-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-async-crud/src/__init__.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-async-crud/src/api/__init__.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-async-crud/src/api/api.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-async-crud/src/api/routes/__init__.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-async-crud/src/api/routes/items.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-async-crud/src/core/__init__.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-async-crud/src/core/config.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-async-crud/src/crud/__init__.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-async-crud/src/crud/items.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-async-crud/src/main.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-async-crud/src/mocks/__init__.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-async-crud/src/mocks/mock_items.json-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-async-crud/src/schemas/__init__.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-async-crud/src/schemas/items.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-async-crud/tests/__init__.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-async-crud/tests/conftest.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-async-crud/tests/test_items.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-auth-jwt/.env-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-auth-jwt/.gitignore-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-auth-jwt/Dockerfile-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-auth-jwt/README.md-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-auth-jwt/alembic.ini-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-auth-jwt/scripts/format.sh-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-auth-jwt/scripts/lint.sh-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-auth-jwt/scripts/run-server.sh-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-auth-jwt/scripts/test.sh-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-auth-jwt/src/__init__.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-auth-jwt/src/app/__init__.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-auth-jwt/src/app/alembic/README-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-auth-jwt/src/app/alembic/env.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-auth-jwt/src/app/alembic/script.py.mako-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-auth-jwt/src/app/alembic/versions/0001_initial_auth_schema.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-auth-jwt/src/app/api/__init__.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-auth-jwt/src/app/api/deps.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-auth-jwt/src/app/api/health.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-auth-jwt/src/app/api/router.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-auth-jwt/src/app/core/__init__.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-auth-jwt/src/app/core/config.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-auth-jwt/src/app/core/security.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-auth-jwt/src/app/db/__init__.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-auth-jwt/src/app/db/session.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-auth-jwt/src/app/domains/__init__.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-auth-jwt/src/app/domains/auth/__init__.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-auth-jwt/src/app/domains/auth/models.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-auth-jwt/src/app/domains/auth/repository.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-auth-jwt/src/app/domains/auth/router.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-auth-jwt/src/app/domains/auth/schemas.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-auth-jwt/src/app/domains/auth/service.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-auth-jwt/src/app/domains/users/__init__.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-auth-jwt/src/app/domains/users/models.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-auth-jwt/src/app/domains/users/repository.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-auth-jwt/src/app/domains/users/router.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-auth-jwt/src/app/domains/users/schemas.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-auth-jwt/src/app/domains/users/service.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-auth-jwt/src/app/main.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-auth-jwt/template-config.yml-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-auth-jwt/tests/__init__.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-auth-jwt/tests/conftest.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-auth-jwt/tests/test_auth.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-auth-jwt/tests/test_health.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-auth-jwt/tests/test_users.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-custom-response/.env-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-custom-response/.gitignore-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-custom-response/README.md-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-custom-response/pyproject.toml-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-custom-response/requirements.txt-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-custom-response/scripts/format.sh-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-custom-response/scripts/lint.sh-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-custom-response/scripts/run-server.sh-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-custom-response/scripts/test.sh-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-custom-response/setup.cfg-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-custom-response/src/__init__.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-custom-response/src/api/__init__.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-custom-response/src/api/api.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-custom-response/src/api/routes/__init__.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-custom-response/src/api/routes/items.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-custom-response/src/core/__init__.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-custom-response/src/core/config.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-custom-response/src/crud/__init__.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-custom-response/src/crud/items.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-custom-response/src/helper/__init__.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-custom-response/src/helper/exceptions.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-custom-response/src/helper/pagination.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-custom-response/src/main.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-custom-response/src/mocks/__init__.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-custom-response/src/mocks/mock_items.json-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-custom-response/src/schemas/__init__.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-custom-response/src/schemas/base.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-custom-response/src/schemas/items.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-custom-response/src/utils/__init__.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-custom-response/src/utils/documents.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-custom-response/tests/__init__.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-custom-response/tests/conftest.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-custom-response/tests/test_items.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-default/.env-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-default/.gitignore-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-default/README.md-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-default/pyproject.toml-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-default/requirements.txt-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-default/scripts/format.sh-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-default/scripts/lint.sh-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-default/scripts/run-server.sh-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-default/scripts/test.sh-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-default/setup.cfg-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-default/src/__init__.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-default/src/api/__init__.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-default/src/api/api.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-default/src/api/routes/__init__.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-default/src/api/routes/items.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-default/src/core/__init__.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-default/src/core/config.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-default/src/crud/__init__.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-default/src/crud/items.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-default/src/main.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-default/src/mocks/__init__.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-default/src/mocks/mock_items.json-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-default/src/schemas/__init__.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-default/src/schemas/items.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-default/tests/__init__.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-default/tests/conftest.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-default/tests/test_items.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-dockerized/.env-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-dockerized/.gitignore-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-dockerized/Dockerfile-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-dockerized/README.md-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-dockerized/pyproject.toml-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-dockerized/requirements.txt-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-dockerized/scripts/format.sh-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-dockerized/scripts/lint.sh-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-dockerized/scripts/run-server.sh-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-dockerized/scripts/test.sh-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-dockerized/setup.cfg-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-dockerized/src/__init__.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-dockerized/src/api/__init__.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-dockerized/src/api/api.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-dockerized/src/api/routes/__init__.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-dockerized/src/api/routes/items.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-dockerized/src/core/__init__.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-dockerized/src/core/config.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-dockerized/src/crud/__init__.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-dockerized/src/crud/items.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-dockerized/src/main.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-dockerized/src/mocks/__init__.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-dockerized/src/mocks/mock_items.json-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-dockerized/src/schemas/__init__.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-dockerized/src/schemas/items.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-dockerized/tests/__init__.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-dockerized/tests/conftest.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-dockerized/tests/test_items.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-domain-starter/.env-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-domain-starter/.gitignore-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-domain-starter/README.md-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-domain-starter/pyproject.toml-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-domain-starter/requirements.txt-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-domain-starter/scripts/format.sh-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-domain-starter/scripts/lint.sh-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-domain-starter/scripts/run-server.sh-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-domain-starter/scripts/test.sh-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-domain-starter/src/__init__.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-domain-starter/src/app/__init__.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-domain-starter/src/app/api/__init__.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-domain-starter/src/app/api/health.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-domain-starter/src/app/core/__init__.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-domain-starter/src/app/core/config.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-domain-starter/src/app/db/__init__.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-domain-starter/src/app/db/memory.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-domain-starter/src/app/domains/__init__.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-domain-starter/src/app/domains/items/__init__.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-domain-starter/src/app/domains/items/models.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-domain-starter/src/app/domains/items/repository.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-domain-starter/src/app/domains/items/schemas.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-domain-starter/src/app/domains/items/service.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-domain-starter/src/app/main.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-domain-starter/tests/__init__.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-domain-starter/tests/test_health.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-domain-starter/tests/test_items.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-empty/.env-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-empty/.gitignore-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-empty/README.md-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-empty/pyproject.toml-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-empty/requirements.txt-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-empty/setup.cfg-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-empty/src/__init__.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-empty/src/core/__init__.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-empty/src/core/config.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-empty/src/main.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-empty/tests/__init__.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-empty/tests/conftest.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-empty/tests/test_main.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-llm-agent/.env-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-llm-agent/.gitignore-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-llm-agent/Dockerfile-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-llm-agent/README.md-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-llm-agent/pyproject.toml-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-llm-agent/requirements.txt-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-llm-agent/scripts/chat.sh-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-llm-agent/scripts/format.sh-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-llm-agent/scripts/lint.sh-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-llm-agent/scripts/run-server.sh-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-llm-agent/scripts/test.sh-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-llm-agent/src/__init__.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-llm-agent/src/app/__init__.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-llm-agent/src/app/api/__init__.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-llm-agent/src/app/api/chat.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-llm-agent/src/app/api/deps.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-llm-agent/src/app/api/health.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-llm-agent/src/app/api/router.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-llm-agent/src/app/core/__init__.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-llm-agent/src/app/core/config.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-llm-agent/src/app/llm/__init__.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-llm-agent/src/app/llm/agent.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-llm-agent/src/app/llm/client.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-llm-agent/src/app/llm/tools.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-llm-agent/src/app/main.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-llm-agent/src/app/memory/__init__.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-llm-agent/src/app/memory/base.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-llm-agent/src/app/memory/in_memory.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-llm-agent/src/app/schemas/__init__.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-llm-agent/src/app/schemas/chat.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-llm-agent/template-config.yml-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-llm-agent/tests/__init__.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-llm-agent/tests/conftest.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-llm-agent/tests/test_chat.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-llm-agent/tests/test_health.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-llm-agent/tests/test_memory.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-llm-agent/tests/test_tools.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-mcp/.env-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-mcp/README.md-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-mcp/scripts/format.sh-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-mcp/scripts/lint.sh-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-mcp/scripts/run-server.sh-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-mcp/scripts/test.sh-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-mcp/src/__init__.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-mcp/src/api/__init__.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-mcp/src/api/api.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-mcp/src/api/routes/__init__.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-mcp/src/api/routes/auth.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-mcp/src/api/routes/items.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-mcp/src/auth/__init__.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-mcp/src/auth/dependencies.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-mcp/src/core/__init__.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-mcp/src/core/config.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-mcp/src/main.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-mcp/src/mcp_server/__init__.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-mcp/src/mcp_server/router.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-mcp/src/schemas/__init__.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-mcp/src/schemas/items.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-mcp/tests/__init__.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-mcp/tests/conftest.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-mcp/tests/test_auth.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-mcp/tests/test_items.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-mcp/tests/test_mcp.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-psql-orm/.env-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-psql-orm/.gitignore-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-psql-orm/Dockerfile-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-psql-orm/README.md-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-psql-orm/alembic.ini-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-psql-orm/docker-compose.yml-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-psql-orm/pyproject.toml-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-psql-orm/requirements.txt-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-psql-orm/scripts/format.sh-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-psql-orm/scripts/lint.sh-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-psql-orm/scripts/pre-start.sh-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-psql-orm/scripts/run-server.sh-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-psql-orm/scripts/test.sh-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-psql-orm/setup.cfg-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-psql-orm/src/__init__.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-psql-orm/src/alembic/README-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-psql-orm/src/alembic/env.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-psql-orm/src/alembic/script.py.mako-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-psql-orm/src/alembic/versions/bedcdc35b64a_first_alembic.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-psql-orm/src/api/__init__.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-psql-orm/src/api/api.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-psql-orm/src/api/deps.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-psql-orm/src/api/routes/__init__.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-psql-orm/src/api/routes/items.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-psql-orm/src/core/__init__.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-psql-orm/src/core/config.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-psql-orm/src/core/db.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-psql-orm/src/crud/__init__.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-psql-orm/src/crud/items.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-psql-orm/src/main.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-psql-orm/src/schemas/__init__.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-psql-orm/src/schemas/items.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-psql-orm/src/utils/__init__.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-psql-orm/src/utils/backend_pre_start.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-psql-orm/src/utils/init_data.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-psql-orm/src/utils/tests_pre_start.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-psql-orm/template-config.yml-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-psql-orm/tests/__init__.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-psql-orm/tests/conftest.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-psql-orm/tests/test_items.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-single-module/.env-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-single-module/.gitignore-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-single-module/README.md-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-single-module/pyproject.toml-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-single-module/requirements.txt-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-single-module/setup.cfg-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-single-module/src/main.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-single-module/tests/__init__.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-single-module/tests/conftest.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-single-module/tests/test_main.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-sqlmodel/.env-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-sqlmodel/.gitignore-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-sqlmodel/Dockerfile-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-sqlmodel/README.md-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-sqlmodel/alembic.ini-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-sqlmodel/pyproject.toml-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-sqlmodel/requirements.txt-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-sqlmodel/scripts/format.sh-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-sqlmodel/scripts/lint.sh-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-sqlmodel/scripts/migrate.sh-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-sqlmodel/scripts/run-server.sh-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-sqlmodel/scripts/test.sh-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-sqlmodel/src/__init__.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-sqlmodel/src/app/__init__.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-sqlmodel/src/app/alembic/README-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-sqlmodel/src/app/alembic/env.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-sqlmodel/src/app/alembic/script.py.mako-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-sqlmodel/src/app/alembic/versions/0001_create_items_table.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-sqlmodel/src/app/api/__init__.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-sqlmodel/src/app/api/health.py-tpl +0 -0
- {fastapi_fastkit-1.4.1/src/fastapi_fastkit/fastapi_project_template/fastapi-domain-starter → fastapi_fastkit-1.5.0/src/fastapi_fastkit/fastapi_project_template/fastapi-sqlmodel}/src/app/api/router.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-sqlmodel/src/app/core/__init__.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-sqlmodel/src/app/core/config.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-sqlmodel/src/app/crud/__init__.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-sqlmodel/src/app/crud/base.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-sqlmodel/src/app/crud/pagination.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-sqlmodel/src/app/db/__init__.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-sqlmodel/src/app/db/base.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-sqlmodel/src/app/db/session.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-sqlmodel/src/app/domains/__init__.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-sqlmodel/src/app/domains/items/__init__.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-sqlmodel/src/app/domains/items/crud.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-sqlmodel/src/app/domains/items/models.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-sqlmodel/src/app/domains/items/router.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-sqlmodel/src/app/main.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-sqlmodel/template-config.yml-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-sqlmodel/tests/__init__.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-sqlmodel/tests/conftest.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-sqlmodel/tests/test_crud_base.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-sqlmodel/tests/test_health.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/fastapi-sqlmodel/tests/test_items.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/modules/api/__init__.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/modules/api/routes/__init__.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/modules/api/routes/new_route.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/modules/crud/__init__.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/modules/crud/new_route.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/modules/schemas/__init__.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fastapi_project_template/modules/schemas/new_route.py-tpl +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fragments/README.md +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fragments/auth/fastapi_users.py.j2 +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fragments/auth/jwt.py.j2 +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fragments/auth/oauth2.py.j2 +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fragments/auth/session.py.j2 +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fragments/db/mongodb.py.j2 +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fragments/db/redis.py.j2 +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fragments/db/sqlalchemy.py.j2 +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fragments/docker/docker_compose.j2 +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fragments/docker/dockerfile.j2 +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fragments/features/cache.py.j2 +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fragments/features/pagination.py.j2 +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fragments/features/tasks_celery.py.j2 +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fragments/features/tasks_dramatiq.py.j2 +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fragments/features/websocket.py.j2 +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fragments/header.j2 +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fragments/logging/structured.py.j2 +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fragments/main/imports/async_tasks.j2 +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fragments/main/imports/caching.j2 +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fragments/main/imports/fastapi_users.j2 +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fragments/main/imports/jwt.j2 +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fragments/main/imports/loguru.j2 +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fragments/main/imports/mongodb.j2 +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fragments/main/imports/oauth2.j2 +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fragments/main/imports/opentelemetry.j2 +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fragments/main/imports/pagination.j2 +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fragments/main/imports/prometheus.j2 +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fragments/main/imports/rate_limiting.j2 +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fragments/main/imports/session_auth.j2 +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fragments/main/imports/sqlalchemy.j2 +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fragments/main/imports/structured_logging.j2 +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fragments/main/imports/websocket.j2 +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fragments/main/lifespan/caching.j2 +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fragments/main/lifespan/mongodb.j2 +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fragments/main/lifespan/prometheus.j2 +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fragments/main/lifespan/sqlalchemy.j2 +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fragments/main/setup/async_tasks.j2 +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fragments/main/setup/caching.j2 +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fragments/main/setup/cors.j2 +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fragments/main/setup/oauth2.j2 +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fragments/main/setup/opentelemetry.j2 +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fragments/main/setup/pagination.j2 +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fragments/main/setup/rate_limiting.j2 +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fragments/main/setup/session_auth.j2 +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fragments/main/setup/structured_logging.j2 +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fragments/main/setup/websocket.j2 +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fragments/main.py.j2 +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fragments/migrations/alembic_ini.j2 +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fragments/migrations/env.py.j2 +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fragments/migrations/initial_revision.py.j2 +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fragments/migrations/migrate_sh.j2 +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fragments/migrations/script.py.mako.j2 +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fragments/tasks/celery_worker.py.j2 +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fragments/tasks/dramatiq_worker.py.j2 +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fragments/test/factories.py.j2 +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fragments/test/pytest_ini.j2 +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fragments/test/test_factories.py.j2 +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fragments/test/test_main.py.j2 +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fragments/tooling/devcontainer.j2 +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fragments/tooling/github_actions.j2 +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fragments/tooling/makefile.j2 +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fragments/tooling/pre_commit.j2 +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/fragments/tooling/ruff_toml.j2 +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/py.typed +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/utils/__init__.py +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/utils/config_file.py +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/utils/logging.py +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/src/fastapi_fastkit/utils/main.py +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/tests/__init__.py +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/tests/conftest.py +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/tests/test_backends/__init__.py +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/tests/test_backends/test_configure.py +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/tests/test_backends/test_console_sizing.py +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/tests/test_backends/test_inspection_docker.py +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/tests/test_backends/test_inspection_fsutils.py +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/tests/test_backends/test_inspector.py +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/tests/test_backends/test_inspector_checks.py +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/tests/test_backends/test_interactive_config_builder.py +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/tests/test_backends/test_interactive_prompts.py +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/tests/test_backends/test_interactive_selectors.py +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/tests/test_backends/test_interactive_validators.py +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/tests/test_backends/test_main.py +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/tests/test_backends/test_package_managers.py +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/tests/test_backends/test_preset_layout.py +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/tests/test_backends/test_project_builder_config_generator.py +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/tests/test_backends/test_project_builder_dependency_collector.py +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/tests/test_backends/test_project_metadata.py +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/tests/test_backends/test_safety_regressions.py +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/tests/test_backends/test_scaffolder.py +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/tests/test_backends/test_transducer.py +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/tests/test_cli_operations/__init__.py +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/tests/test_cli_operations/test_cli.py +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/tests/test_cli_operations/test_cli_error_paths.py +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/tests/test_cli_operations/test_cli_extended.py +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/tests/test_cli_operations/test_cli_interactive_integration.py +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/tests/test_config_file.py +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/tests/test_core.py +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/tests/test_rich/__init__.py +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/tests/test_rich/test_rich.py +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/tests/test_templates/__init__.py +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/tests/test_templates/template_configs.yaml +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/tests/test_templates/test_all_templates.py +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/tests/test_templates/test_config_based_templates.py +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/tests/test_templates/test_domain_starter_e2e.py +0 -0
- {fastapi_fastkit-1.4.1 → fastapi_fastkit-1.5.0}/tests/test_utils.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: FastAPI-fastkit
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.5.0
|
|
4
4
|
Summary: Fast, easy-to-use starter kit for new users of Python and FastAPI
|
|
5
5
|
Author-Email: bnbong <bbbong9@gmail.com>
|
|
6
6
|
License: MIT
|
|
@@ -20,6 +20,7 @@ Requires-Dist: pre-commit>=4.0.1; extra == "dev"
|
|
|
20
20
|
Requires-Dist: mypy>=1.12.0; extra == "dev"
|
|
21
21
|
Requires-Dist: isort>=5.13.2; extra == "dev"
|
|
22
22
|
Requires-Dist: pygments>=2.20.0; extra == "dev"
|
|
23
|
+
Requires-Dist: virtualenv>=21.7.13; extra == "dev"
|
|
23
24
|
Requires-Dist: types-pyyaml>=6.0.12.20260408; extra == "dev"
|
|
24
25
|
Description-Content-Type: text/markdown
|
|
25
26
|
|
|
@@ -12,7 +12,7 @@ dependencies = [
|
|
|
12
12
|
]
|
|
13
13
|
requires-python = ">=3.12"
|
|
14
14
|
readme = "README.md"
|
|
15
|
-
version = "1.
|
|
15
|
+
version = "1.5.0"
|
|
16
16
|
|
|
17
17
|
[project.license]
|
|
18
18
|
text = "MIT"
|
|
@@ -32,6 +32,7 @@ dev = [
|
|
|
32
32
|
"mypy>=1.12.0",
|
|
33
33
|
"isort>=5.13.2",
|
|
34
34
|
"pygments>=2.20.0",
|
|
35
|
+
"virtualenv>=21.7.13",
|
|
35
36
|
"types-pyyaml>=6.0.12.20260408",
|
|
36
37
|
]
|
|
37
38
|
|
|
@@ -136,9 +137,11 @@ docs = [
|
|
|
136
137
|
"pygments>=2.20.0",
|
|
137
138
|
"requests>=2.33.0",
|
|
138
139
|
"idna>=3.15",
|
|
140
|
+
"urllib3>=2.8.0",
|
|
139
141
|
"pymdown-extensions>=11.0.1",
|
|
140
142
|
]
|
|
141
143
|
translation = [
|
|
142
144
|
"openai>=2.8.1",
|
|
143
145
|
"anthropic>=0.74.0",
|
|
146
|
+
"anyio>=4.14.2",
|
|
144
147
|
]
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = 'v1.5.0'
|
|
@@ -18,6 +18,7 @@ from fastapi_fastkit.backend.package_managers import PackageManagerFactory
|
|
|
18
18
|
from fastapi_fastkit.backend.project_builder.preset_layout import (
|
|
19
19
|
app_module_from_main_path,
|
|
20
20
|
)
|
|
21
|
+
from fastapi_fastkit.backend.route_wiring import register_router, router_alias
|
|
21
22
|
from fastapi_fastkit.backend.transducer import (
|
|
22
23
|
copy_and_convert_template,
|
|
23
24
|
copy_and_convert_template_file,
|
|
@@ -1464,6 +1465,16 @@ def _handle_api_router_file(
|
|
|
1464
1465
|
if os.path.exists(api_source):
|
|
1465
1466
|
copy_and_convert_template_file(api_source, api_router_file)
|
|
1466
1467
|
|
|
1468
|
+
# The __init__ template may be empty; initialize the API router.
|
|
1469
|
+
if os.path.exists(api_router_file):
|
|
1470
|
+
with open(api_router_file, "r", encoding="utf-8") as f:
|
|
1471
|
+
content = f.read()
|
|
1472
|
+
if not content.strip():
|
|
1473
|
+
with open(api_router_file, "w", encoding="utf-8") as f:
|
|
1474
|
+
f.write(
|
|
1475
|
+
"from fastapi import APIRouter\n\napi_router = APIRouter()\n"
|
|
1476
|
+
)
|
|
1477
|
+
|
|
1467
1478
|
# Update API router to include new route
|
|
1468
1479
|
if os.path.exists(api_router_file):
|
|
1469
1480
|
_update_api_router(api_router_file, route_name)
|
|
@@ -1484,23 +1495,22 @@ def _update_api_router(api_router_file: str, route_name: str) -> None:
|
|
|
1484
1495
|
with open(api_router_file, "r", encoding="utf-8") as f:
|
|
1485
1496
|
content = f.read()
|
|
1486
1497
|
|
|
1487
|
-
|
|
1498
|
+
alias = router_alias(api_router_file, "routes", route_name, route_name)
|
|
1499
|
+
suffix = f" as {alias}" if alias != route_name else ""
|
|
1500
|
+
route_import = f"from .routes import {route_name}{suffix}"
|
|
1488
1501
|
route_include = (
|
|
1489
|
-
f"api_router.include_router({
|
|
1502
|
+
f"api_router.include_router({alias}.router, "
|
|
1490
1503
|
f'prefix="/{route_name}", tags=["{route_name}"])'
|
|
1491
1504
|
)
|
|
1492
1505
|
|
|
1493
|
-
|
|
1494
|
-
|
|
1495
|
-
|
|
1496
|
-
|
|
1497
|
-
|
|
1498
|
-
|
|
1499
|
-
|
|
1500
|
-
|
|
1501
|
-
|
|
1502
|
-
with open(api_router_file, "w", encoding="utf-8") as f:
|
|
1503
|
-
f.write(content)
|
|
1506
|
+
register_router(
|
|
1507
|
+
{
|
|
1508
|
+
"api_dir": os.path.dirname(api_router_file),
|
|
1509
|
+
"api_router_file": api_router_file,
|
|
1510
|
+
},
|
|
1511
|
+
route_import,
|
|
1512
|
+
route_include,
|
|
1513
|
+
)
|
|
1504
1514
|
|
|
1505
1515
|
debug_log(f"Updated API router to include {route_name}", "info")
|
|
1506
1516
|
|
|
@@ -1594,7 +1604,9 @@ def _update_main_app(
|
|
|
1594
1604
|
print_warning(f"Failed to update main.py: {e}")
|
|
1595
1605
|
|
|
1596
1606
|
|
|
1597
|
-
def add_new_route(
|
|
1607
|
+
def add_new_route(
|
|
1608
|
+
project_dir: str, route_name: str, layout: Optional[str] = None
|
|
1609
|
+
) -> None:
|
|
1598
1610
|
"""
|
|
1599
1611
|
Add a new API route to an existing FastAPI project.
|
|
1600
1612
|
|
|
@@ -1604,37 +1616,20 @@ def add_new_route(project_dir: str, route_name: str) -> None:
|
|
|
1604
1616
|
|
|
1605
1617
|
:param project_dir: Path to the project directory
|
|
1606
1618
|
:param route_name: Name of the new route to add
|
|
1619
|
+
:param layout: Explicit route layout, or None to select from preset metadata
|
|
1607
1620
|
:raises BackendExceptions: If route addition fails
|
|
1608
1621
|
"""
|
|
1609
1622
|
try:
|
|
1610
|
-
#
|
|
1611
|
-
|
|
1612
|
-
|
|
1613
|
-
|
|
1614
|
-
|
|
1615
|
-
# Ensure project structure exists
|
|
1616
|
-
target_dirs = _ensure_project_structure(src_dir)
|
|
1617
|
-
|
|
1618
|
-
# Create route files
|
|
1619
|
-
_create_route_files(
|
|
1620
|
-
modules_dir, target_dirs, route_name, layout["package_module"]
|
|
1623
|
+
# Import here to avoid a circular import with route_generators.
|
|
1624
|
+
from fastapi_fastkit.backend.route_generators import (
|
|
1625
|
+
get_route_generator,
|
|
1626
|
+
resolve_route_layout,
|
|
1621
1627
|
)
|
|
1622
1628
|
|
|
1623
|
-
|
|
1624
|
-
|
|
1625
|
-
|
|
1626
|
-
|
|
1627
|
-
|
|
1628
|
-
# Process init files
|
|
1629
|
-
module_types = ["api/routes", "crud", "schemas"]
|
|
1630
|
-
_process_init_files(modules_dir, target_dirs, module_types)
|
|
1631
|
-
|
|
1632
|
-
# Update main application
|
|
1633
|
-
_update_main_app(
|
|
1634
|
-
src_dir,
|
|
1635
|
-
route_name,
|
|
1636
|
-
router_module=layout["api_router_module"],
|
|
1637
|
-
main_py_path=layout["main"],
|
|
1629
|
+
route_layout = resolve_route_layout(project_dir, layout)
|
|
1630
|
+
project_layout = resolve_project_layout(project_dir)
|
|
1631
|
+
get_route_generator(route_layout).add_new_route(
|
|
1632
|
+
project_dir, route_name, project_layout
|
|
1638
1633
|
)
|
|
1639
1634
|
|
|
1640
1635
|
debug_log(f"Successfully added new route: {route_name}", "info")
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
# --------------------------------------------------------------------------
|
|
2
|
+
# Route generators for fastkit addroute.
|
|
3
|
+
# --------------------------------------------------------------------------
|
|
4
|
+
import keyword
|
|
5
|
+
import os
|
|
6
|
+
from pathlib import Path
|
|
7
|
+
from typing import Dict, Optional, Union
|
|
8
|
+
|
|
9
|
+
from fastapi_fastkit.backend import main as backend
|
|
10
|
+
from fastapi_fastkit.backend.project_builder.preset_layout import PresetLayoutStrategist
|
|
11
|
+
from fastapi_fastkit.backend.route_wiring import register_router, router_alias
|
|
12
|
+
from fastapi_fastkit.backend.transducer import copy_and_convert_template_file
|
|
13
|
+
from fastapi_fastkit.core.exceptions import BackendExceptions
|
|
14
|
+
from fastapi_fastkit.core.settings import settings
|
|
15
|
+
from fastapi_fastkit.utils.main import print_warning, read_fastkit_metadata
|
|
16
|
+
|
|
17
|
+
ROUTE_LAYOUTS = ("classic-layer", "domain")
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
def resolve_route_layout(project_dir: str, layout: Optional[str] = None) -> str:
|
|
21
|
+
"""Resolve the route layout from the option or project metadata."""
|
|
22
|
+
if layout is not None:
|
|
23
|
+
if layout not in ROUTE_LAYOUTS:
|
|
24
|
+
raise BackendExceptions(f"Unknown route layout: {layout!r}")
|
|
25
|
+
return layout
|
|
26
|
+
|
|
27
|
+
metadata = read_fastkit_metadata(project_dir)
|
|
28
|
+
preset = metadata.get("preset")
|
|
29
|
+
if not preset:
|
|
30
|
+
template = metadata.get("template")
|
|
31
|
+
domain_template = PresetLayoutStrategist("domain-starter").base_template
|
|
32
|
+
if template == domain_template:
|
|
33
|
+
return "domain"
|
|
34
|
+
if preset == "domain-starter":
|
|
35
|
+
return "domain"
|
|
36
|
+
if preset and preset not in ("classic-layered", "minimal", "single-module"):
|
|
37
|
+
print_warning(f"Unknown preset {preset!r}; using classic-layer route layout.")
|
|
38
|
+
return "classic-layer"
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
def _validate_route_name(route_name: str) -> None:
|
|
42
|
+
"""Validate the route module name."""
|
|
43
|
+
if not route_name.isidentifier() or keyword.iskeyword(route_name):
|
|
44
|
+
raise BackendExceptions(f"Route name {route_name!r} is not a Python identifier")
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
class ClassicLayeredRouteGenerator:
|
|
48
|
+
"""Generate api/routes, crud, and schemas modules."""
|
|
49
|
+
|
|
50
|
+
def add_new_route(
|
|
51
|
+
self, project_dir: str, route_name: str, project_layout: Dict[str, str]
|
|
52
|
+
) -> None:
|
|
53
|
+
"""Create route files and register the router."""
|
|
54
|
+
src_dir = project_layout["package_dir"]
|
|
55
|
+
_validate_route_name(route_name)
|
|
56
|
+
modules_dir = os.path.join(settings.FASTKIT_TEMPLATE_ROOT, "modules")
|
|
57
|
+
target_dirs = backend._ensure_project_structure(src_dir)
|
|
58
|
+
backend._create_route_files(
|
|
59
|
+
modules_dir, target_dirs, route_name, project_layout["package_module"]
|
|
60
|
+
)
|
|
61
|
+
backend._handle_api_router_file(
|
|
62
|
+
target_dirs, modules_dir, route_name, project_layout["api_router_file"]
|
|
63
|
+
)
|
|
64
|
+
backend._process_init_files(
|
|
65
|
+
modules_dir, target_dirs, ["api/routes", "crud", "schemas"]
|
|
66
|
+
)
|
|
67
|
+
backend._update_main_app(
|
|
68
|
+
src_dir,
|
|
69
|
+
route_name,
|
|
70
|
+
router_module=project_layout["api_router_module"],
|
|
71
|
+
main_py_path=project_layout["main"],
|
|
72
|
+
)
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
class DomainRouteGenerator:
|
|
76
|
+
"""Generate a domain module."""
|
|
77
|
+
|
|
78
|
+
def add_new_route(
|
|
79
|
+
self, project_dir: str, route_name: str, project_layout: Dict[str, str]
|
|
80
|
+
) -> None:
|
|
81
|
+
"""Create domain files and register the router."""
|
|
82
|
+
package = Path(project_layout["package_dir"])
|
|
83
|
+
_validate_route_name(route_name)
|
|
84
|
+
if not package.is_dir():
|
|
85
|
+
raise BackendExceptions(f"Source directory not found at {package}")
|
|
86
|
+
|
|
87
|
+
domain_module = _create_domain_files(package, route_name, project_layout)
|
|
88
|
+
alias = router_alias(
|
|
89
|
+
project_layout["api_router_file"],
|
|
90
|
+
domain_module,
|
|
91
|
+
"router",
|
|
92
|
+
f"{route_name}_router",
|
|
93
|
+
)
|
|
94
|
+
register_router(
|
|
95
|
+
project_layout,
|
|
96
|
+
f"from {domain_module} import router as {alias}",
|
|
97
|
+
f'api_router.include_router({alias}.router, prefix="/{route_name}", tags=["{route_name}"])',
|
|
98
|
+
)
|
|
99
|
+
backend._update_main_app(
|
|
100
|
+
str(package),
|
|
101
|
+
route_name,
|
|
102
|
+
router_module=project_layout["api_router_module"],
|
|
103
|
+
main_py_path=project_layout["main"],
|
|
104
|
+
)
|
|
105
|
+
|
|
106
|
+
|
|
107
|
+
def _create_domain_files(
|
|
108
|
+
package: Path, route_name: str, project_layout: Dict[str, str]
|
|
109
|
+
) -> str:
|
|
110
|
+
templates = Path(settings.FASTKIT_TEMPLATE_ROOT) / "modules" / "domain"
|
|
111
|
+
filenames = (
|
|
112
|
+
"__init__.py",
|
|
113
|
+
"models.py",
|
|
114
|
+
"schemas.py",
|
|
115
|
+
"repository.py",
|
|
116
|
+
"service.py",
|
|
117
|
+
"router.py",
|
|
118
|
+
)
|
|
119
|
+
for filename in filenames:
|
|
120
|
+
if not (templates / f"{filename}-tpl").is_file():
|
|
121
|
+
raise BackendExceptions(f"Missing domain template: {filename}-tpl")
|
|
122
|
+
|
|
123
|
+
domain_dir = package / "domains" / route_name
|
|
124
|
+
domain_dir.mkdir(parents=True, exist_ok=True)
|
|
125
|
+
domains_init = domain_dir.parent / "__init__.py"
|
|
126
|
+
if not domains_init.exists():
|
|
127
|
+
domains_init.write_text("", encoding="utf-8")
|
|
128
|
+
prefix = project_layout["package_module"]
|
|
129
|
+
domain_module = (
|
|
130
|
+
f"{prefix}.domains.{route_name}" if prefix else f"domains.{route_name}"
|
|
131
|
+
)
|
|
132
|
+
entity_class = (
|
|
133
|
+
"".join(part[:1].upper() + part[1:] for part in route_name.split("_")) or "_"
|
|
134
|
+
)
|
|
135
|
+
if keyword.iskeyword(entity_class):
|
|
136
|
+
entity_class += "Entity"
|
|
137
|
+
replacements = {
|
|
138
|
+
"<new_route>": route_name,
|
|
139
|
+
"<domain_module>": domain_module,
|
|
140
|
+
"<entity_class>": entity_class,
|
|
141
|
+
}
|
|
142
|
+
for filename in filenames:
|
|
143
|
+
target = domain_dir / filename
|
|
144
|
+
if target.exists():
|
|
145
|
+
print_warning(f"File {target} already exists, skipping...")
|
|
146
|
+
continue
|
|
147
|
+
if not copy_and_convert_template_file(
|
|
148
|
+
str(templates / f"{filename}-tpl"), str(target), replacements
|
|
149
|
+
):
|
|
150
|
+
raise BackendExceptions(f"Failed to create domain file: {target}")
|
|
151
|
+
|
|
152
|
+
return domain_module
|
|
153
|
+
|
|
154
|
+
|
|
155
|
+
def get_route_generator(
|
|
156
|
+
route_layout: str,
|
|
157
|
+
) -> Union[ClassicLayeredRouteGenerator, DomainRouteGenerator]:
|
|
158
|
+
"""Return the generator for the selected layout."""
|
|
159
|
+
if route_layout == "classic-layer":
|
|
160
|
+
return ClassicLayeredRouteGenerator()
|
|
161
|
+
if route_layout == "domain":
|
|
162
|
+
return DomainRouteGenerator()
|
|
163
|
+
raise BackendExceptions(f"Unknown route layout: {route_layout!r}")
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
"""Router registration helpers."""
|
|
2
|
+
|
|
3
|
+
import ast
|
|
4
|
+
from pathlib import Path
|
|
5
|
+
from typing import Dict
|
|
6
|
+
|
|
7
|
+
from fastapi_fastkit.utils.main import print_info
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
def _parse_module(content: str) -> ast.Module:
|
|
11
|
+
try:
|
|
12
|
+
return ast.parse(content)
|
|
13
|
+
except SyntaxError:
|
|
14
|
+
statements: list[ast.stmt] = []
|
|
15
|
+
for line in content.splitlines():
|
|
16
|
+
try:
|
|
17
|
+
statements.extend(ast.parse(line.strip()).body)
|
|
18
|
+
except SyntaxError:
|
|
19
|
+
continue
|
|
20
|
+
return ast.Module(body=statements, type_ignores=[])
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
def _router_argument(call: ast.Call) -> ast.expr | None:
|
|
24
|
+
if call.args:
|
|
25
|
+
return call.args[0]
|
|
26
|
+
return next((item.value for item in call.keywords if item.arg == "router"), None)
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
def register_router(
|
|
30
|
+
project_layout: Dict[str, str], import_line: str, statement: str
|
|
31
|
+
) -> None:
|
|
32
|
+
"""Register a router in the API router module."""
|
|
33
|
+
|
|
34
|
+
from fastapi_fastkit.backend.main import insert_import_line, insert_statement_line
|
|
35
|
+
|
|
36
|
+
api_dir = Path(project_layout["api_dir"])
|
|
37
|
+
api_dir.mkdir(parents=True, exist_ok=True)
|
|
38
|
+
init = api_dir / "__init__.py"
|
|
39
|
+
if not init.exists():
|
|
40
|
+
init.write_text("", encoding="utf-8")
|
|
41
|
+
target = Path(project_layout["api_router_file"])
|
|
42
|
+
content = target.read_text(encoding="utf-8") if target.exists() else ""
|
|
43
|
+
if not content.strip():
|
|
44
|
+
content = "from fastapi import APIRouter\n\napi_router = APIRouter()\n"
|
|
45
|
+
registration = ast.parse(statement).body[0]
|
|
46
|
+
existing = None
|
|
47
|
+
if isinstance(registration, ast.Expr) and isinstance(registration.value, ast.Call):
|
|
48
|
+
expected = registration.value
|
|
49
|
+
expected_router = _router_argument(expected)
|
|
50
|
+
existing = next(
|
|
51
|
+
(
|
|
52
|
+
node
|
|
53
|
+
for node in ast.walk(_parse_module(content))
|
|
54
|
+
if isinstance(node, ast.Call)
|
|
55
|
+
and ast.dump(node.func) == ast.dump(expected.func)
|
|
56
|
+
and (argument := _router_argument(node)) is not None
|
|
57
|
+
and expected_router is not None
|
|
58
|
+
and ast.dump(argument) == ast.dump(expected_router)
|
|
59
|
+
),
|
|
60
|
+
None,
|
|
61
|
+
)
|
|
62
|
+
if existing is not None:
|
|
63
|
+
current_options = {
|
|
64
|
+
item.arg: ast.dump(item.value)
|
|
65
|
+
for item in existing.keywords
|
|
66
|
+
if item.arg != "router"
|
|
67
|
+
}
|
|
68
|
+
expected_options = {
|
|
69
|
+
item.arg: ast.dump(item.value)
|
|
70
|
+
for item in expected.keywords
|
|
71
|
+
if item.arg != "router"
|
|
72
|
+
}
|
|
73
|
+
if (
|
|
74
|
+
current_options != expected_options
|
|
75
|
+
or existing.args[1:] != expected.args[1:]
|
|
76
|
+
):
|
|
77
|
+
print_info(
|
|
78
|
+
f"Keeping existing router registration in {target} with its current prefix and options."
|
|
79
|
+
)
|
|
80
|
+
updated = insert_import_line(content, import_line)
|
|
81
|
+
if existing is None:
|
|
82
|
+
updated = insert_statement_line(updated, statement)
|
|
83
|
+
if not target.exists() or updated != content:
|
|
84
|
+
target.write_text(updated, encoding="utf-8")
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
def router_alias(file: str, module: str, name: str, preferred: str) -> str:
|
|
88
|
+
"""Reuse the router import alias or choose an unused name."""
|
|
89
|
+
|
|
90
|
+
target = Path(file)
|
|
91
|
+
if not target.exists():
|
|
92
|
+
return preferred
|
|
93
|
+
tree = _parse_module(target.read_text(encoding="utf-8"))
|
|
94
|
+
occupied: set[str] = set()
|
|
95
|
+
for node in tree.body:
|
|
96
|
+
if isinstance(node, ast.ImportFrom):
|
|
97
|
+
for imported in node.names:
|
|
98
|
+
if node.module == module and imported.name == name:
|
|
99
|
+
return imported.asname or name
|
|
100
|
+
occupied.add(imported.asname or imported.name)
|
|
101
|
+
elif isinstance(node, ast.Import):
|
|
102
|
+
occupied.update(
|
|
103
|
+
item.asname or item.name.split(".")[0] for item in node.names
|
|
104
|
+
)
|
|
105
|
+
elif isinstance(node, (ast.FunctionDef, ast.AsyncFunctionDef, ast.ClassDef)):
|
|
106
|
+
occupied.add(node.name)
|
|
107
|
+
elif isinstance(node, (ast.Assign, ast.AnnAssign)):
|
|
108
|
+
targets = node.targets if isinstance(node, ast.Assign) else [node.target]
|
|
109
|
+
occupied.update(
|
|
110
|
+
target.id for target in targets if isinstance(target, ast.Name)
|
|
111
|
+
)
|
|
112
|
+
alias = preferred
|
|
113
|
+
counter = 2
|
|
114
|
+
while alias in occupied:
|
|
115
|
+
alias = f"{preferred}_{counter}"
|
|
116
|
+
counter += 1
|
|
117
|
+
return alias
|
|
@@ -37,6 +37,7 @@ from fastapi_fastkit.backend.project_builder.config_schema import (
|
|
|
37
37
|
ConfigSchemaError,
|
|
38
38
|
normalize_project_config,
|
|
39
39
|
)
|
|
40
|
+
from fastapi_fastkit.backend.route_generators import resolve_route_layout
|
|
40
41
|
from fastapi_fastkit.backend.scaffolder import (
|
|
41
42
|
ProjectScaffolder,
|
|
42
43
|
ScaffoldOptions,
|
|
@@ -829,8 +830,16 @@ def _init_from_config(
|
|
|
829
830
|
@fastkit_cli.command()
|
|
830
831
|
@click.argument("route_name")
|
|
831
832
|
@click.argument("project_dir", default=".")
|
|
833
|
+
@click.option(
|
|
834
|
+
"--layout",
|
|
835
|
+
type=click.Choice(["classic-layer", "domain"]),
|
|
836
|
+
default=None,
|
|
837
|
+
help="Route layout. Defaults to domain for domain-starter, otherwise classic-layer.",
|
|
838
|
+
)
|
|
832
839
|
@click.pass_context
|
|
833
|
-
def addroute(
|
|
840
|
+
def addroute(
|
|
841
|
+
ctx: Context, route_name: str, project_dir: str, layout: Optional[str]
|
|
842
|
+
) -> None:
|
|
834
843
|
"""
|
|
835
844
|
Add a new route to the FastAPI project.
|
|
836
845
|
|
|
@@ -879,12 +888,14 @@ def addroute(ctx: Context, route_name: str, project_dir: str) -> None:
|
|
|
879
888
|
return
|
|
880
889
|
|
|
881
890
|
try:
|
|
891
|
+
route_layout = resolve_route_layout(actual_project_dir, layout)
|
|
882
892
|
# Show information about the operation
|
|
883
893
|
table = create_info_table(
|
|
884
894
|
"Adding New Route",
|
|
885
895
|
{
|
|
886
896
|
"Project": project_name,
|
|
887
897
|
"Route Name": route_name,
|
|
898
|
+
"Layout": route_layout,
|
|
888
899
|
"Target Directory": actual_project_dir,
|
|
889
900
|
},
|
|
890
901
|
)
|
|
@@ -903,7 +914,7 @@ def addroute(ctx: Context, route_name: str, project_dir: str) -> None:
|
|
|
903
914
|
return
|
|
904
915
|
|
|
905
916
|
# Add the new route
|
|
906
|
-
add_new_route(actual_project_dir, route_name)
|
|
917
|
+
add_new_route(actual_project_dir, route_name, layout=route_layout)
|
|
907
918
|
|
|
908
919
|
if project_dir == ".":
|
|
909
920
|
print_success(
|
|
@@ -11,5 +11,5 @@ from src.app.domains.items import router as items_router
|
|
|
11
11
|
|
|
12
12
|
api_router = APIRouter()
|
|
13
13
|
api_router.include_router(health.router)
|
|
14
|
-
api_router.include_router(items_router.router)
|
|
14
|
+
api_router.include_router(items_router.router, prefix="/items", tags=["items"])
|
|
15
15
|
# fastkit:routes
|
|
@@ -7,7 +7,7 @@ from fastapi import APIRouter, Depends, HTTPException, Response, status
|
|
|
7
7
|
from src.app.domains.items.schemas import ItemCreate, ItemRead
|
|
8
8
|
from src.app.domains.items.service import ItemNotFoundError, ItemService
|
|
9
9
|
|
|
10
|
-
router = APIRouter(
|
|
10
|
+
router = APIRouter()
|
|
11
11
|
|
|
12
12
|
|
|
13
13
|
def get_item_service() -> ItemService:
|
|
@@ -2,19 +2,31 @@
|
|
|
2
2
|
# pytest fixtures for <project_name>.
|
|
3
3
|
# --------------------------------------------------------------------------
|
|
4
4
|
from collections.abc import Generator
|
|
5
|
+
from importlib import import_module
|
|
6
|
+
from pkgutil import iter_modules
|
|
5
7
|
|
|
6
8
|
import pytest
|
|
7
9
|
from fastapi.testclient import TestClient
|
|
10
|
+
from src.app import domains
|
|
8
11
|
from src.app.domains.items.repository import ItemRepository
|
|
9
12
|
from src.app.main import app
|
|
10
13
|
|
|
11
14
|
|
|
12
|
-
|
|
13
|
-
def reset_items_store() -> Generator[None, None, None]:
|
|
14
|
-
"""Each test starts with an empty items store."""
|
|
15
|
+
def reset_stores() -> None:
|
|
15
16
|
ItemRepository().reset()
|
|
17
|
+
for module in iter_modules(domains.__path__, prefix=f"{domains.__name__}."):
|
|
18
|
+
if module.ispkg:
|
|
19
|
+
domain = import_module(module.name)
|
|
20
|
+
reset = getattr(getattr(domain, "service", None), "reset_store", None)
|
|
21
|
+
if reset is not None:
|
|
22
|
+
reset()
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
@pytest.fixture(autouse=True)
|
|
26
|
+
def reset_domain_stores() -> Generator[None, None, None]:
|
|
27
|
+
reset_stores()
|
|
16
28
|
yield
|
|
17
|
-
|
|
29
|
+
reset_stores()
|
|
18
30
|
|
|
19
31
|
|
|
20
32
|
@pytest.fixture
|
|
@@ -40,7 +40,7 @@ pydantic==2.13.5
|
|
|
40
40
|
pydantic-core==2.46.5
|
|
41
41
|
pydantic-settings==2.15.0
|
|
42
42
|
pygments==2.21.0
|
|
43
|
-
PyJWT==2.
|
|
43
|
+
PyJWT==2.15.1
|
|
44
44
|
pytest==9.1.1
|
|
45
45
|
pytest-cov==7.1.0
|
|
46
46
|
python-dotenv==1.2.3
|
|
@@ -59,7 +59,7 @@ tomli==2.4.1
|
|
|
59
59
|
typer==0.27.2
|
|
60
60
|
typing-extensions==4.16.0
|
|
61
61
|
typing-inspection==0.4.4
|
|
62
|
-
urllib3==2.
|
|
62
|
+
urllib3==2.8.0
|
|
63
63
|
uvicorn==0.52.4
|
|
64
64
|
uvloop==0.22.1
|
|
65
65
|
watchfiles==1.2.0
|
fastapi_fastkit-1.5.0/src/fastapi_fastkit/fastapi_project_template/modules/domain/__init__.py-tpl
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# --------------------------------------------------------------------------
|
|
2
|
+
# <new_route> domain.
|
|
3
|
+
# --------------------------------------------------------------------------
|
|
4
|
+
from <domain_module> import ( # noqa: F401
|
|
5
|
+
models,
|
|
6
|
+
repository,
|
|
7
|
+
router,
|
|
8
|
+
schemas,
|
|
9
|
+
service,
|
|
10
|
+
)
|
fastapi_fastkit-1.5.0/src/fastapi_fastkit/fastapi_project_template/modules/domain/models.py-tpl
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# --------------------------------------------------------------------------
|
|
2
|
+
# <new_route> domain models.
|
|
3
|
+
# --------------------------------------------------------------------------
|
|
4
|
+
|
|
5
|
+
from dataclasses import dataclass
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
@dataclass
|
|
9
|
+
class <entity_class>:
|
|
10
|
+
id: int
|
|
11
|
+
name: str
|