fastapi-rtk 2.0.0__tar.gz → 2.0.2__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_rtk-2.0.0 → fastapi_rtk-2.0.2}/PKG-INFO +1 -1
- fastapi_rtk-2.0.2/fastapi_rtk/_version.py +1 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/cli/commands/export.py +16 -27
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/unit/cli/test_commands.py +121 -0
- fastapi_rtk-2.0.0/fastapi_rtk/_version.py +0 -1
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/.gitignore +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/LICENSE +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/README.md +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/__init__.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/api/__init__.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/api/base_api.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/api/model_rest_api.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/apis/__init__.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/apis/info.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/apis/license.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/auth/__init__.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/auth/auth.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/auth/hashers/__init__.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/auth/hashers/pbkdf2.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/auth/hashers/scrypt.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/auth/password_helpers/__init__.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/auth/password_helpers/fab.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/auth/strategies/__init__.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/auth/strategies/config.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/auth/strategies/db.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/auth/strategies/jwt.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/backends/__init__.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/backends/generic/__init__.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/backends/generic/column.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/backends/generic/db.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/backends/generic/exceptions.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/backends/generic/filters.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/backends/generic/interface.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/backends/generic/model.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/backends/generic/session.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/backends/sqla/__init__.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/backends/sqla/column.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/backends/sqla/db.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/backends/sqla/exceptions.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/backends/sqla/extensions/__init__.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/backends/sqla/extensions/audit/__init__.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/backends/sqla/extensions/audit/audit.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/backends/sqla/extensions/audit/types.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/backends/sqla/extensions/geoalchemy2/__init__.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/backends/sqla/extensions/geoalchemy2/filters.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/backends/sqla/extensions/geoalchemy2/geometry_converter.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/backends/sqla/filters.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/backends/sqla/interface.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/backends/sqla/model.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/backends/sqla/session.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/bases/__init__.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/bases/db.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/bases/file_manager.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/bases/filter.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/bases/interface.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/bases/model.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/bases/session.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/cli/__init__.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/cli/cli.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/cli/commands/__init__.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/cli/commands/db/__init__.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/cli/commands/db/templates/fastapi/README +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/cli/commands/db/templates/fastapi/alembic.ini.mako +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/cli/commands/db/templates/fastapi/env.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/cli/commands/db/templates/fastapi/script.py.mako +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/cli/commands/db/templates/fastapi-multidb/README +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/cli/commands/db/templates/fastapi-multidb/alembic.ini.mako +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/cli/commands/db/templates/fastapi-multidb/env.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/cli/commands/db/templates/fastapi-multidb/script.py.mako +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/cli/commands/security.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/cli/commands/translate.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/cli/const.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/cli/decorators.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/cli/types.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/cli/utils.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/config.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/const.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/db.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/decorators.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/dependencies.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/exceptions.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/fastapi_react_toolkit.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/file_managers/__init__.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/file_managers/file_manager.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/file_managers/image_manager.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/file_managers/s3_file_manager.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/file_managers/s3_image_manager.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/filters.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/globals.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/lang/__init__.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/lang/babel/__init__.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/lang/babel/cli.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/lang/babel/config.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/lang/babel.cfg +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/lang/lazy_text.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/lang/messages.pot +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/lang/translations/de/LC_MESSAGES/messages.mo +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/lang/translations/de/LC_MESSAGES/messages.po +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/lang/translations/en/LC_MESSAGES/messages.mo +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/lang/translations/en/LC_MESSAGES/messages.po +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/manager.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/middlewares.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/mixins.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/models.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/py.typed +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/registry.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/routers.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/schemas.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/security/__init__.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/security/sqla/__init__.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/security/sqla/apis.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/security/sqla/models.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/security/sqla/security_manager.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/setting.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/types.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/utils/__init__.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/utils/async_task_runner.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/utils/class_factory.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/utils/csv_json_converter.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/utils/deep_merge.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/utils/extender_mixin.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/utils/flask_appbuilder_utils.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/utils/formatter.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/utils/hooks.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/utils/lazy.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/utils/merge_schema.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/utils/multiple_async_contexts.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/utils/pydantic.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/utils/run_utils.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/utils/self_dependencies.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/utils/smartdefaultdict.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/utils/sqla.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/utils/timezone.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/utils/update_signature.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/utils/use_default_when_none.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/version.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/pyproject.toml +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/conftest.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/docker-compose.gis.yml +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/integration/__init__.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/integration/api/__init__.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/integration/api/test_model_rest_api.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/integration/apis/__init__.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/integration/apis/test_info_contract.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/integration/auth/__init__.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/integration/auth/test_auth_flow.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/integration/auth/test_oauth.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/integration/conftest.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/integration/file_managers/__init__.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/integration/file_managers/test_file_routes.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/integration/security/__init__.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/integration/security/sqla/__init__.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/integration/security/sqla/test_security_manager.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/integration/test_app_smoke.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/unit/__init__.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/unit/api/__init__.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/unit/api/conftest.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/unit/api/test_base_api.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/unit/api/test_model_rest_api.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/unit/apis/__init__.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/unit/apis/test_info.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/unit/apis/test_license.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/unit/auth/__init__.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/unit/auth/hashers/__init__.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/unit/auth/hashers/test_pbkdf2.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/unit/auth/hashers/test_scrypt.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/unit/auth/password_helpers/__init__.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/unit/auth/password_helpers/test_fab.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/unit/auth/strategies/__init__.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/unit/auth/strategies/test_config.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/unit/auth/strategies/test_db.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/unit/auth/strategies/test_jwt.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/unit/auth/test_auth.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/unit/backends/__init__.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/unit/backends/generic/__init__.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/unit/backends/generic/test_column.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/unit/backends/generic/test_db.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/unit/backends/generic/test_exceptions.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/unit/backends/generic/test_filters.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/unit/backends/generic/test_interface.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/unit/backends/generic/test_model.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/unit/backends/generic/test_session.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/unit/backends/sqla/__init__.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/unit/backends/sqla/conftest.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/unit/backends/sqla/test_audit.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/unit/backends/sqla/test_audit_types.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/unit/backends/sqla/test_column.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/unit/backends/sqla/test_db.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/unit/backends/sqla/test_filters.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/unit/backends/sqla/test_geoalchemy2.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/unit/backends/sqla/test_interface.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/unit/backends/sqla/test_model.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/unit/backends/sqla/test_session.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/unit/bases/__init__.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/unit/bases/test_db.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/unit/bases/test_file_manager.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/unit/bases/test_filter.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/unit/bases/test_interface.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/unit/bases/test_model.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/unit/bases/test_session.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/unit/cli/__init__.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/unit/cli/conftest.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/unit/cli/test_cli.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/unit/cli/test_decorators.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/unit/cli/test_types.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/unit/cli/test_utils.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/unit/file_managers/__init__.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/unit/file_managers/conftest.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/unit/file_managers/test_file_manager.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/unit/file_managers/test_image_manager.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/unit/file_managers/test_s3_file_manager.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/unit/file_managers/test_s3_image_manager.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/unit/lang/__init__.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/unit/lang/test_babel_cli.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/unit/lang/test_babel_config.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/unit/lang/test_lazy_text.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/unit/security/__init__.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/unit/security/sqla/__init__.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/unit/security/sqla/conftest.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/unit/security/sqla/test_apis.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/unit/security/sqla/test_models.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/unit/security/sqla/test_security_manager.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/unit/test_config.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/unit/test_const.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/unit/test_db.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/unit/test_decorators.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/unit/test_dependencies.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/unit/test_exceptions.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/unit/test_fastapi_react_toolkit.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/unit/test_filters.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/unit/test_globals.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/unit/test_manager.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/unit/test_middlewares.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/unit/test_mixins.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/unit/test_models.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/unit/test_registry.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/unit/test_routers.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/unit/test_schemas.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/unit/test_setting.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/unit/test_types.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/unit/test_version.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/unit/utils/__init__.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/unit/utils/test_async_task_runner.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/unit/utils/test_class_factory.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/unit/utils/test_csv_json_converter.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/unit/utils/test_deep_merge.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/unit/utils/test_extender_mixin.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/unit/utils/test_flask_appbuilder_utils.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/unit/utils/test_formatter.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/unit/utils/test_hooks.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/unit/utils/test_lazy.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/unit/utils/test_merge_schema.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/unit/utils/test_multiple_async_contexts.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/unit/utils/test_pydantic.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/unit/utils/test_run_utils.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/unit/utils/test_self_dependencies.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/unit/utils/test_smartdefaultdict.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/unit/utils/test_sqla.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/unit/utils/test_timezone.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/unit/utils/test_update_signature.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/tests/unit/utils/test_use_default_when_none.py +0 -0
- {fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/uv.lock +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: fastapi-rtk
|
|
3
|
-
Version: 2.0.
|
|
3
|
+
Version: 2.0.2
|
|
4
4
|
Summary: A package that provides a set of tools to build a FastAPI application with a Class-Based CRUD API.
|
|
5
5
|
Project-URL: Homepage, https://codeberg.org/datatactics/fastapi-rtk
|
|
6
6
|
Project-URL: Issues, https://codeberg.org/datatactics/fastapi-rtk/issues
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "2.0.2"
|
|
@@ -163,7 +163,9 @@ def api_docs(
|
|
|
163
163
|
)
|
|
164
164
|
|
|
165
165
|
# Load all schema into the docs
|
|
166
|
-
for key, schema in
|
|
166
|
+
for key, schema in (
|
|
167
|
+
openapi_docs.get("components", {}).get("schemas", {}).items()
|
|
168
|
+
):
|
|
167
169
|
parsed_schema = parser.parse_schema(schema)
|
|
168
170
|
parsed_schema[0] = parsed_schema[0].replace(key, f"Schemas-{key}")
|
|
169
171
|
api_data_docs["Schemas"][key] = "".join(parsed_schema)
|
|
@@ -171,14 +173,15 @@ def api_docs(
|
|
|
171
173
|
|
|
172
174
|
for path, data in openapi_docs["paths"].items():
|
|
173
175
|
for method, method_data in data.items():
|
|
174
|
-
for tag in method_data
|
|
176
|
+
for tag in method_data.get("tags", []):
|
|
175
177
|
if tag not in api_data_docs["APIs"]:
|
|
176
178
|
continue
|
|
177
179
|
|
|
178
180
|
api_path_docs = APIPathDocs(
|
|
179
181
|
path=path,
|
|
180
182
|
method=method.upper(),
|
|
181
|
-
description=method_data.get("
|
|
183
|
+
description=method_data.get("description")
|
|
184
|
+
or method_data.get("summary", ""),
|
|
182
185
|
)
|
|
183
186
|
|
|
184
187
|
# Add responses to the API data docs
|
|
@@ -219,29 +222,15 @@ def api_docs(
|
|
|
219
222
|
Responses=responses,
|
|
220
223
|
)
|
|
221
224
|
|
|
222
|
-
# Add metadata to the API data docs
|
|
223
|
-
|
|
225
|
+
# Add metadata to the API data docs, keyed by method + path so
|
|
226
|
+
# endpoints sharing a path (e.g. GET/PUT/DELETE on the same URL)
|
|
227
|
+
# do not overwrite each other.
|
|
228
|
+
api_data_docs["APIs"][tag]["Metadata"][
|
|
229
|
+
f"{method.upper()} {path}"
|
|
230
|
+
] = api_metadata_docs
|
|
224
231
|
|
|
225
232
|
api_data_docs["APIs"][tag]["Paths"].append(api_path_docs)
|
|
226
233
|
|
|
227
|
-
# Add schema
|
|
228
|
-
schemas_to_add = []
|
|
229
|
-
for resp in responses:
|
|
230
|
-
if resp["content"]:
|
|
231
|
-
schemas_to_add.append(resp["content"])
|
|
232
|
-
|
|
233
|
-
if body:
|
|
234
|
-
schemas_to_add.append(body)
|
|
235
|
-
|
|
236
|
-
for schema in schemas_to_add:
|
|
237
|
-
key = schema.split("]")[0].replace("[", "")
|
|
238
|
-
schema = openapi_docs["components"]["schemas"].get(key)
|
|
239
|
-
if schema:
|
|
240
|
-
parsed_schema = parser.parse_schema(schema)
|
|
241
|
-
parsed_schema[0] = parsed_schema[0].replace(
|
|
242
|
-
key, f"Schemas-{key}"
|
|
243
|
-
)
|
|
244
|
-
|
|
245
234
|
with open(filename, "w") as f:
|
|
246
235
|
f.write(
|
|
247
236
|
json_to_markdown(
|
|
@@ -492,14 +481,14 @@ def _generate_fastapi_rtk_tables_docs():
|
|
|
492
481
|
# Permission API docs
|
|
493
482
|
table_documentation[PERMISSION_API_TABLE]["description"] = (
|
|
494
483
|
table_documentation[PERMISSION_API_TABLE]["description"]
|
|
495
|
-
or "Stores which permissions are associated with which
|
|
484
|
+
or "Stores which permissions are associated with which APIs."
|
|
496
485
|
)
|
|
497
486
|
table_documentation[PERMISSION_API_TABLE]["columns"] = table_documentation[
|
|
498
487
|
PERMISSION_API_TABLE
|
|
499
488
|
]["columns"] or {
|
|
500
489
|
"id": "Primary key.",
|
|
501
|
-
"view_menu_id": f"FK to `{
|
|
502
|
-
"
|
|
490
|
+
"view_menu_id": f"FK to `{API_TABLE}.id`.",
|
|
491
|
+
"permission_id": f"FK to `{PERMISSION_TABLE}.id`.",
|
|
503
492
|
}
|
|
504
493
|
|
|
505
494
|
# Assoc Permission API Role docs
|
|
@@ -555,7 +544,7 @@ def _generate_fastapi_rtk_tables_docs():
|
|
|
555
544
|
table_documentation[ACCESSTOKEN_TABLE]["columns"] = table_documentation[
|
|
556
545
|
ACCESSTOKEN_TABLE
|
|
557
546
|
]["columns"] or {
|
|
558
|
-
"token": "Access token string.",
|
|
547
|
+
"token": "Primary key. Access token string.",
|
|
559
548
|
"created_at": "Timestamp when the token was created.",
|
|
560
549
|
"user_id": f"FK to `{USER_TABLE}.id`. Identifies the user.",
|
|
561
550
|
}
|
|
@@ -1053,6 +1053,127 @@ class TestApiDocsCommand:
|
|
|
1053
1053
|
assert "WidgetIn" in body
|
|
1054
1054
|
|
|
1055
1055
|
|
|
1056
|
+
def test_api_docs_handles_route_without_tags(
|
|
1057
|
+
self, tmp_path, monkeypatch, global_setter
|
|
1058
|
+
):
|
|
1059
|
+
"""
|
|
1060
|
+
Regression: a route registered without ``tags=`` (e.g. a top-level
|
|
1061
|
+
health probe attached directly to FastAPI) used to raise
|
|
1062
|
+
``KeyError: 'tags'`` while iterating ``method_data["tags"]``. The
|
|
1063
|
+
path walk must now treat ``tags`` as optional.
|
|
1064
|
+
"""
|
|
1065
|
+
from unittest.mock import MagicMock
|
|
1066
|
+
|
|
1067
|
+
from fastapi import FastAPI
|
|
1068
|
+
|
|
1069
|
+
from fastapi_rtk.cli.commands import export as ex_mod
|
|
1070
|
+
|
|
1071
|
+
fastapi_app = FastAPI()
|
|
1072
|
+
|
|
1073
|
+
@fastapi_app.get("/healthz")
|
|
1074
|
+
def healthz():
|
|
1075
|
+
return {"ok": True}
|
|
1076
|
+
|
|
1077
|
+
app_obj = MagicMock()
|
|
1078
|
+
app_obj.app = fastapi_app
|
|
1079
|
+
app_obj.apis = []
|
|
1080
|
+
global_setter("current_app", app_obj)
|
|
1081
|
+
|
|
1082
|
+
target = tmp_path / "untagged.md"
|
|
1083
|
+
ex_mod.api_docs(filename=str(target))
|
|
1084
|
+
assert target.exists()
|
|
1085
|
+
|
|
1086
|
+
def test_api_docs_metadata_distinguishes_methods_on_same_path(
|
|
1087
|
+
self, tmp_path, monkeypatch, global_setter
|
|
1088
|
+
):
|
|
1089
|
+
"""
|
|
1090
|
+
Regression: metadata used to be keyed by path alone, so GET and
|
|
1091
|
+
DELETE on the same URL clobbered each other. The metadata key must
|
|
1092
|
+
now include the method.
|
|
1093
|
+
"""
|
|
1094
|
+
from unittest.mock import MagicMock
|
|
1095
|
+
|
|
1096
|
+
from fastapi import FastAPI
|
|
1097
|
+
|
|
1098
|
+
from fastapi_rtk.api.model_rest_api import ModelRestApi
|
|
1099
|
+
from fastapi_rtk.cli.commands import export as ex_mod
|
|
1100
|
+
|
|
1101
|
+
fastapi_app = FastAPI()
|
|
1102
|
+
|
|
1103
|
+
@fastapi_app.get("/widgets/{id}", tags=["WidgetApi"], summary="Get widget")
|
|
1104
|
+
def get_widget(id: int):
|
|
1105
|
+
return {"id": id}
|
|
1106
|
+
|
|
1107
|
+
@fastapi_app.delete(
|
|
1108
|
+
"/widgets/{id}", tags=["WidgetApi"], summary="Delete widget"
|
|
1109
|
+
)
|
|
1110
|
+
def delete_widget(id: int):
|
|
1111
|
+
return {"id": id}
|
|
1112
|
+
|
|
1113
|
+
class WidgetApi(ModelRestApi):
|
|
1114
|
+
pass
|
|
1115
|
+
|
|
1116
|
+
widget = MagicMock(spec=WidgetApi)
|
|
1117
|
+
widget.__class__ = WidgetApi
|
|
1118
|
+
widget.description = ""
|
|
1119
|
+
widget.integrate_router = MagicMock()
|
|
1120
|
+
|
|
1121
|
+
app_obj = MagicMock()
|
|
1122
|
+
app_obj.app = fastapi_app
|
|
1123
|
+
app_obj.apis = [widget]
|
|
1124
|
+
global_setter("current_app", app_obj)
|
|
1125
|
+
|
|
1126
|
+
target = tmp_path / "two-methods.md"
|
|
1127
|
+
ex_mod.api_docs(apis="WidgetApi", filename=str(target))
|
|
1128
|
+
body = target.read_text()
|
|
1129
|
+
assert "GET /widgets/{id}" in body
|
|
1130
|
+
assert "DELETE /widgets/{id}" in body
|
|
1131
|
+
|
|
1132
|
+
def test_api_docs_prefers_route_description_over_summary(
|
|
1133
|
+
self, tmp_path, monkeypatch, global_setter
|
|
1134
|
+
):
|
|
1135
|
+
"""
|
|
1136
|
+
``description`` (operation docstring) must win over ``summary``
|
|
1137
|
+
(humanized function name) when both are present on an OpenAPI
|
|
1138
|
+
operation.
|
|
1139
|
+
"""
|
|
1140
|
+
from unittest.mock import MagicMock
|
|
1141
|
+
|
|
1142
|
+
from fastapi import FastAPI
|
|
1143
|
+
|
|
1144
|
+
from fastapi_rtk.api.model_rest_api import ModelRestApi
|
|
1145
|
+
from fastapi_rtk.cli.commands import export as ex_mod
|
|
1146
|
+
|
|
1147
|
+
fastapi_app = FastAPI()
|
|
1148
|
+
|
|
1149
|
+
@fastapi_app.get(
|
|
1150
|
+
"/widgets/",
|
|
1151
|
+
tags=["WidgetApi"],
|
|
1152
|
+
summary="Short summary",
|
|
1153
|
+
description="Detailed widget description goes here.",
|
|
1154
|
+
)
|
|
1155
|
+
def list_widgets():
|
|
1156
|
+
return []
|
|
1157
|
+
|
|
1158
|
+
class WidgetApi(ModelRestApi):
|
|
1159
|
+
pass
|
|
1160
|
+
|
|
1161
|
+
widget = MagicMock(spec=WidgetApi)
|
|
1162
|
+
widget.__class__ = WidgetApi
|
|
1163
|
+
widget.description = ""
|
|
1164
|
+
widget.integrate_router = MagicMock()
|
|
1165
|
+
|
|
1166
|
+
app_obj = MagicMock()
|
|
1167
|
+
app_obj.app = fastapi_app
|
|
1168
|
+
app_obj.apis = [widget]
|
|
1169
|
+
global_setter("current_app", app_obj)
|
|
1170
|
+
|
|
1171
|
+
target = tmp_path / "description-fallback.md"
|
|
1172
|
+
ex_mod.api_docs(apis="WidgetApi", filename=str(target))
|
|
1173
|
+
body = target.read_text()
|
|
1174
|
+
assert "Detailed widget description goes here." in body
|
|
1175
|
+
|
|
1176
|
+
|
|
1056
1177
|
class TestApiDocsCommandFilteredWalk:
|
|
1057
1178
|
"""Hit the body of api_docs (lines 154-241): integrate_router + paths walk."""
|
|
1058
1179
|
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = "2.0.0"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/backends/sqla/extensions/audit/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/backends/sqla/extensions/geoalchemy2/__init__.py
RENAMED
|
File without changes
|
{fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/backends/sqla/extensions/geoalchemy2/filters.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/cli/commands/db/templates/fastapi/README
RENAMED
|
File without changes
|
|
File without changes
|
{fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/cli/commands/db/templates/fastapi/env.py
RENAMED
|
File without changes
|
{fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/cli/commands/db/templates/fastapi/script.py.mako
RENAMED
|
File without changes
|
{fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/cli/commands/db/templates/fastapi-multidb/README
RENAMED
|
File without changes
|
|
File without changes
|
{fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/cli/commands/db/templates/fastapi-multidb/env.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/lang/translations/de/LC_MESSAGES/messages.mo
RENAMED
|
File without changes
|
{fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/lang/translations/de/LC_MESSAGES/messages.po
RENAMED
|
File without changes
|
{fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/lang/translations/en/LC_MESSAGES/messages.mo
RENAMED
|
File without changes
|
{fastapi_rtk-2.0.0 → fastapi_rtk-2.0.2}/fastapi_rtk/lang/translations/en/LC_MESSAGES/messages.po
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|