fastapi-rtk 2.21.0__tar.gz → 2.21.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.21.0 → fastapi_rtk-2.21.2}/PKG-INFO +1 -1
- fastapi_rtk-2.21.2/fastapi_rtk/_version.py +1 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/cli/commands/db/__init__.py +2 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/schemas.py +6 -4
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/api/model_rest_api/test_init.py +17 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/cli/commands/test_db.py +58 -1
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/test_schemas.py +13 -0
- fastapi_rtk-2.21.0/fastapi_rtk/_version.py +0 -1
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/.gitignore +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/LICENSE +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/README.md +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/__init__.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/agent_docs/adapters/agents-md/AGENTS.md +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/agent_docs/adapters/claude/skill.frontmatter +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/agent_docs/guide/backend.md +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/agent_docs/guide/frontend.md +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/agent_docs/guide/jsonforms.md +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/agent_docs/guide/legacy.md +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/agent_docs/guide/overview.md +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/api/__init__.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/api/base_api.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/api/model_rest_api/__init__.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/api/model_rest_api/model_rest_api.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/api/model_rest_api/params.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/api/model_rest_api/services/__init__.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/api/model_rest_api/services/_add_service.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/api/model_rest_api/services/_bulk_service.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/api/model_rest_api/services/_delete_service.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/api/model_rest_api/services/_download_service.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/api/model_rest_api/services/_edit_service.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/api/model_rest_api/services/_file_service.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/api/model_rest_api/services/_info_service.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/api/model_rest_api/services/_list_service.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/api/model_rest_api/services/_lookup_service.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/api/model_rest_api/services/_schema_service.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/api/model_rest_api/services/_show_service.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/apis/__init__.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/apis/info.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/apis/license.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/auth/__init__.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/auth/auth.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/auth/hashers/__init__.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/auth/hashers/pbkdf2.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/auth/hashers/scrypt.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/auth/ldap.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/auth/password_helpers/__init__.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/auth/password_helpers/fab.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/auth/strategies/__init__.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/auth/strategies/config.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/auth/strategies/db.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/auth/strategies/jwt.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/backends/__init__.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/backends/generic/__init__.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/backends/generic/column.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/backends/generic/db.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/backends/generic/exceptions.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/backends/generic/filters.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/backends/generic/interface.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/backends/generic/model.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/backends/generic/session.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/backends/sqla/__init__.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/backends/sqla/column.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/backends/sqla/db.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/backends/sqla/exceptions.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/backends/sqla/extensions/__init__.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/backends/sqla/extensions/audit/__init__.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/backends/sqla/extensions/audit/_decorators_service.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/backends/sqla/extensions/audit/_lifecycle_service.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/backends/sqla/extensions/audit/_logger.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/backends/sqla/extensions/audit/_processing_service.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/backends/sqla/extensions/audit/audit.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/backends/sqla/extensions/audit/types.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/backends/sqla/extensions/geoalchemy2/__init__.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/backends/sqla/extensions/geoalchemy2/filters.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/backends/sqla/extensions/geoalchemy2/geometry_converter.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/backends/sqla/filters.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/backends/sqla/interface.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/backends/sqla/model.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/backends/sqla/session.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/bases/__init__.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/bases/cache.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/bases/db.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/bases/file_manager.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/bases/filter.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/bases/interface.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/bases/loop_manager.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/bases/model.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/bases/session.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/bases/user_cache.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/caches/__init__.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/caches/cache.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/caches/serializers.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/caches/storages.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/cli/__init__.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/cli/cli.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/cli/commands/__init__.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/cli/commands/_security_crypto.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/cli/commands/agent/__init__.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/cli/commands/agent/adapters/__init__.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/cli/commands/agent/adapters/agents_md.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/cli/commands/agent/adapters/claude.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/cli/commands/agent/base.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/cli/commands/agent/docs.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/cli/commands/db/templates/fastapi/README +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/cli/commands/db/templates/fastapi/alembic.ini.mako +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/cli/commands/db/templates/fastapi/env.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/cli/commands/db/templates/fastapi/script.py.mako +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/cli/commands/db/templates/fastapi-multidb/README +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/cli/commands/db/templates/fastapi-multidb/alembic.ini.mako +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/cli/commands/db/templates/fastapi-multidb/env.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/cli/commands/db/templates/fastapi-multidb/script.py.mako +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/cli/commands/export.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/cli/commands/security.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/cli/commands/translate.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/cli/const.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/cli/decorators.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/cli/types.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/cli/utils.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/config.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/const.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/db.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/decorators.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/dependencies.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/exceptions.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/fastapi_react_toolkit.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/file_managers/__init__.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/file_managers/file_manager.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/file_managers/image_manager.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/file_managers/s3_file_manager.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/file_managers/s3_image_manager.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/filters.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/globals.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/lang/__init__.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/lang/babel/__init__.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/lang/babel/cli.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/lang/babel/config.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/lang/babel.cfg +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/lang/lazy_text.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/lang/messages.pot +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/lang/translations/de/LC_MESSAGES/messages.mo +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/lang/translations/de/LC_MESSAGES/messages.po +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/lang/translations/en/LC_MESSAGES/messages.mo +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/lang/translations/en/LC_MESSAGES/messages.po +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/loop_managers/__init__.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/loop_managers/loop_manager.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/manager.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/middlewares.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/mixins.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/models.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/py.typed +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/registry.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/routers.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/security/__init__.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/security/sqla/__init__.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/security/sqla/apis.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/security/sqla/models.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/security/sqla/security_manager/__init__.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/security/sqla/security_manager/_builtin_role_service.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/security/sqla/security_manager/_entities.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/security/sqla/security_manager/_exception_filters.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/security/sqla/security_manager/_export.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/security/sqla/security_manager/_import.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/security/sqla/security_manager/_permission_service.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/security/sqla/security_manager/_results.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/security/sqla/security_manager/_role_service.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/security/sqla/security_manager/_user_service.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/security/sqla/security_manager/security_manager.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/security/sqla/user_cache.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/setting.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/types.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/utils/__init__.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/utils/async_task_runner.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/utils/class_factory.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/utils/csv_json_converter.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/utils/deep_merge.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/utils/extender_mixin.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/utils/flask_appbuilder_utils.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/utils/formatter.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/utils/hooks.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/utils/lazy.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/utils/merge_schema.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/utils/multiple_async_contexts.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/utils/pydantic.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/utils/run_utils.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/utils/self_dependencies.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/utils/smartdefaultdict.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/utils/sqla.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/utils/timezone.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/utils/update_signature.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/utils/use_default_when_none.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/version.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/pyproject.toml +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/conftest.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/docker-compose.gis.yml +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/integration/__init__.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/integration/api/__init__.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/integration/api/test_add_edit_relation_response.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/integration/api/test_lookup.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/integration/api/test_model_rest_api.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/integration/apis/__init__.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/integration/apis/test_info_callable_schema.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/integration/apis/test_info_contract.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/integration/auth/__init__.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/integration/auth/test_auth_flow.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/integration/auth/test_oauth.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/integration/conftest.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/integration/file_managers/__init__.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/integration/file_managers/test_file_routes.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/integration/security/__init__.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/integration/security/sqla/__init__.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/integration/security/sqla/conftest.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/integration/security/sqla/test_permission_service.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/integration/security/sqla/test_role_service.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/integration/security/sqla/test_security_manager.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/integration/security/sqla/test_user_service.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/integration/test_app_smoke.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/__init__.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/api/__init__.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/api/conftest.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/api/model_rest_api/__init__.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/api/model_rest_api/test_columns.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/api/model_rest_api/test_download_service.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/api/model_rest_api/test_file_mixin.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/api/model_rest_api/test_lookup_service.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/api/model_rest_api/test_service_delegators.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/api/test_base_api.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/apis/__init__.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/apis/test_info.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/apis/test_license.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/auth/__init__.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/auth/hashers/__init__.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/auth/hashers/test_pbkdf2.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/auth/hashers/test_scrypt.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/auth/password_helpers/__init__.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/auth/password_helpers/test_fab.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/auth/strategies/__init__.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/auth/strategies/test_config.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/auth/strategies/test_db.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/auth/strategies/test_jwt.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/auth/test_auth.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/backends/__init__.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/backends/generic/__init__.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/backends/generic/test_column.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/backends/generic/test_db.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/backends/generic/test_exceptions.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/backends/generic/test_filters.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/backends/generic/test_interface.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/backends/generic/test_model.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/backends/generic/test_session.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/backends/sqla/__init__.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/backends/sqla/conftest.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/backends/sqla/test_audit.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/backends/sqla/test_audit_service_delegators.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/backends/sqla/test_audit_types.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/backends/sqla/test_column.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/backends/sqla/test_db.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/backends/sqla/test_filters.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/backends/sqla/test_geoalchemy2.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/backends/sqla/test_interface.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/backends/sqla/test_model.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/backends/sqla/test_session.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/bases/__init__.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/bases/test_db.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/bases/test_file_manager.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/bases/test_filter.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/bases/test_interface.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/bases/test_model.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/bases/test_session.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/cli/__init__.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/cli/commands/__init__.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/cli/commands/conftest.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/cli/commands/test_export.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/cli/commands/test_security.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/cli/commands/test_security_crypto.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/cli/commands/test_translate.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/cli/conftest.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/cli/test_cli.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/cli/test_decorators.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/cli/test_types.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/cli/test_utils.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/file_managers/__init__.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/file_managers/conftest.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/file_managers/test_file_manager.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/file_managers/test_image_manager.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/file_managers/test_s3_file_manager.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/file_managers/test_s3_image_manager.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/lang/__init__.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/lang/test_babel_cli.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/lang/test_babel_config.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/lang/test_lazy_text.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/security/__init__.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/security/sqla/__init__.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/security/sqla/conftest.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/security/sqla/security_manager/__init__.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/security/sqla/security_manager/test_builtin_role_service.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/security/sqla/security_manager/test_entities.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/security/sqla/security_manager/test_permission_service.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/security/sqla/security_manager/test_results.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/security/sqla/security_manager/test_role_service.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/security/sqla/security_manager/test_user_service.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/security/sqla/test_apis.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/security/sqla/test_models.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/security/sqla/test_security_manager.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/test_caches.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/test_config.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/test_const.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/test_db.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/test_decorators.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/test_dependencies.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/test_exceptions.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/test_fastapi_react_toolkit.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/test_filters.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/test_globals.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/test_manager.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/test_middlewares.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/test_mixins.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/test_models.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/test_registry.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/test_routers.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/test_setting.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/test_types.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/test_user_cache.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/test_version.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/utils/__init__.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/utils/test_async_task_runner.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/utils/test_class_factory.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/utils/test_csv_json_converter.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/utils/test_deep_merge.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/utils/test_extender_mixin.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/utils/test_flask_appbuilder_utils.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/utils/test_formatter.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/utils/test_hooks.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/utils/test_lazy.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/utils/test_merge_schema.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/utils/test_multiple_async_contexts.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/utils/test_pydantic.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/utils/test_run_utils.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/utils/test_self_dependencies.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/utils/test_smartdefaultdict.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/utils/test_sqla.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/utils/test_timezone.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/utils/test_update_signature.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/tests/unit/utils/test_use_default_when_none.py +0 -0
- {fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/uv.lock +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: fastapi-rtk
|
|
3
|
-
Version: 2.21.
|
|
3
|
+
Version: 2.21.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.21.2"
|
|
@@ -501,4 +501,6 @@ def check(
|
|
|
501
501
|
"""Check the current revision."""
|
|
502
502
|
config = Config()
|
|
503
503
|
config.set_main_option("script_location", directory)
|
|
504
|
+
# The env.py templates test `in config.cmd_opts`; "autogenerate" would empty the directives check reads.
|
|
505
|
+
config.cmd_opts = []
|
|
504
506
|
alembic.command.check(config)
|
|
@@ -418,9 +418,10 @@ class QuerySchema(pydantic.BaseModel):
|
|
|
418
418
|
page_size: int | None = DEFAULT_API_PAGE_SIZE
|
|
419
419
|
order_column: str | None = None
|
|
420
420
|
order_direction: typing.Literal["asc", "desc"] | None = None
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
421
|
+
# The validators turn these JSON strings into lists, so an omitted field must go through them too
|
|
422
|
+
columns: str = pydantic.Field(default="[]", validate_default=True)
|
|
423
|
+
filters: str = pydantic.Field(default="[]", validate_default=True)
|
|
424
|
+
opr_filters: str = pydantic.Field(default="[]", validate_default=True)
|
|
424
425
|
search: str | None = None
|
|
425
426
|
# TODO: Remove when the deprecated global_filter alias is dropped
|
|
426
427
|
global_filter: str | None = pydantic.Field(
|
|
@@ -660,7 +661,8 @@ class LookupQuerySchema(pydantic.BaseModel):
|
|
|
660
661
|
page: int = 0
|
|
661
662
|
page_size: int | None = DEFAULT_API_MAX_PAGE_SIZE
|
|
662
663
|
search: str | None = None
|
|
663
|
-
|
|
664
|
+
# The validator turns this JSON string into a list, so an omitted field must go through it too
|
|
665
|
+
ids: str = pydantic.Field(default="[]", validate_default=True)
|
|
664
666
|
|
|
665
667
|
@pydantic.field_validator("page")
|
|
666
668
|
@classmethod
|
|
@@ -199,6 +199,13 @@ class TestValidateQueryParameters:
|
|
|
199
199
|
with pytest.raises(HTTPWithValidationException):
|
|
200
200
|
api._validate_query_parameters(q)
|
|
201
201
|
|
|
202
|
+
def test_omitted_columns_pass(self, Widget_cls):
|
|
203
|
+
class TierVQ3Api(ModelRestApi):
|
|
204
|
+
datamodel = SQLAInterface(Widget_cls)
|
|
205
|
+
|
|
206
|
+
api = TierVQ3Api()
|
|
207
|
+
api._validate_query_parameters(QuerySchema())
|
|
208
|
+
|
|
202
209
|
|
|
203
210
|
class TestHandleQueryParams:
|
|
204
211
|
def test_returns_db_query_params(self, Widget_cls):
|
|
@@ -222,6 +229,16 @@ class TestHandleQueryParams:
|
|
|
222
229
|
# list_columns from the API used as default (should include name etc.)
|
|
223
230
|
assert "name" in result["list_columns"]
|
|
224
231
|
|
|
232
|
+
def test_omitted_query_fields_yield_empty_lists(self, Widget_cls):
|
|
233
|
+
class TierHQ3Api(ModelRestApi):
|
|
234
|
+
datamodel = SQLAInterface(Widget_cls)
|
|
235
|
+
|
|
236
|
+
api = TierHQ3Api()
|
|
237
|
+
result = api._handle_query_params(QuerySchema())
|
|
238
|
+
assert result["list_columns"] == api.list_select_columns
|
|
239
|
+
assert result["filters"] == []
|
|
240
|
+
assert result["opr_filters"] == []
|
|
241
|
+
|
|
225
242
|
def test_base_order_applied_when_q_lacks_order(self, Widget_cls):
|
|
226
243
|
class TierHQBaseApi(ModelRestApi):
|
|
227
244
|
datamodel = SQLAInterface(Widget_cls)
|
|
@@ -2,8 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
import unittest.mock
|
|
4
4
|
|
|
5
|
+
import alembic.util
|
|
6
|
+
import pytest
|
|
7
|
+
import sqlalchemy
|
|
5
8
|
import typer.testing
|
|
6
|
-
|
|
7
9
|
from fastapi_rtk.cli.cli import app
|
|
8
10
|
|
|
9
11
|
runner = typer.testing.CliRunner()
|
|
@@ -228,3 +230,58 @@ class TestAppCheckPartition:
|
|
|
228
230
|
# migrate is undecorated; the single check fires through revision.
|
|
229
231
|
neutralize_app_check.get_import_data.assert_called_once()
|
|
230
232
|
neutralize_app_check.run_in_current_event_loop.assert_called_once()
|
|
233
|
+
|
|
234
|
+
|
|
235
|
+
@pytest.mark.parametrize("multidb", [False, True], ids=["fastapi", "fastapi-multidb"])
|
|
236
|
+
class TestCheckAgainstTemplate:
|
|
237
|
+
"""`db check` runs the real alembic check through the env.py each bundled template writes."""
|
|
238
|
+
|
|
239
|
+
@pytest.fixture
|
|
240
|
+
def migrations(self, tmp_path, monkeypatch, config_setter, multidb):
|
|
241
|
+
"""
|
|
242
|
+
Init a migration repository from the template against an empty sqlite database.
|
|
243
|
+
|
|
244
|
+
Args:
|
|
245
|
+
tmp_path: Per-test directory holding the database and the repository.
|
|
246
|
+
monkeypatch: Swaps the toolkit metadata for an empty one.
|
|
247
|
+
config_setter: Sets the database URI the env.py reads.
|
|
248
|
+
multidb: Whether to init from the multidb template.
|
|
249
|
+
|
|
250
|
+
Returns:
|
|
251
|
+
The repository directory and the metadata the env.py compares against.
|
|
252
|
+
"""
|
|
253
|
+
from fastapi_rtk.cli.commands.db import init
|
|
254
|
+
from fastapi_rtk.const import DEFAULT_METADATA_KEY
|
|
255
|
+
|
|
256
|
+
config_setter(
|
|
257
|
+
"SQLALCHEMY_DATABASE_URI", f"sqlite+aiosqlite:///{tmp_path / 'app.db'}"
|
|
258
|
+
)
|
|
259
|
+
metadata = sqlalchemy.MetaData()
|
|
260
|
+
monkeypatch.setattr("fastapi_rtk.metadata", metadata)
|
|
261
|
+
monkeypatch.setattr("fastapi_rtk.metadatas", {DEFAULT_METADATA_KEY: metadata})
|
|
262
|
+
directory = str(tmp_path / "migrations")
|
|
263
|
+
init(directory=directory, multidb=multidb)
|
|
264
|
+
return directory, metadata
|
|
265
|
+
|
|
266
|
+
def test_no_drift_reports_clean(
|
|
267
|
+
self, migrations, neutralize_app_check, monkeypatch
|
|
268
|
+
):
|
|
269
|
+
from fastapi_rtk.cli.commands.db import Config, check
|
|
270
|
+
|
|
271
|
+
printed = unittest.mock.MagicMock()
|
|
272
|
+
monkeypatch.setattr(Config, "print_stdout", printed)
|
|
273
|
+
directory, _ = migrations
|
|
274
|
+
check(directory=directory)
|
|
275
|
+
printed.assert_called_once_with("No new upgrade operations detected.")
|
|
276
|
+
|
|
277
|
+
def test_drift_is_reported(self, migrations, neutralize_app_check):
|
|
278
|
+
from fastapi_rtk.cli.commands.db import check
|
|
279
|
+
|
|
280
|
+
directory, metadata = migrations
|
|
281
|
+
sqlalchemy.Table(
|
|
282
|
+
"drifted",
|
|
283
|
+
metadata,
|
|
284
|
+
sqlalchemy.Column("id", sqlalchemy.Integer, primary_key=True),
|
|
285
|
+
)
|
|
286
|
+
with pytest.raises(alembic.util.AutogenerateDiffsDetected):
|
|
287
|
+
check(directory=directory)
|
|
@@ -9,6 +9,7 @@ import pytest
|
|
|
9
9
|
from fastapi_rtk.exceptions import HTTPWithValidationException
|
|
10
10
|
from fastapi_rtk.schemas import (
|
|
11
11
|
FilterSchema,
|
|
12
|
+
LookupQuerySchema,
|
|
12
13
|
OprFilterSchema,
|
|
13
14
|
QueryBody,
|
|
14
15
|
QuerySchema,
|
|
@@ -72,6 +73,18 @@ class TestOprFiltersValidator:
|
|
|
72
73
|
QuerySchema(opr_filters="not-json")
|
|
73
74
|
|
|
74
75
|
|
|
76
|
+
class TestOmittedListFields:
|
|
77
|
+
@pytest.mark.parametrize("schema", [QuerySchema, QueryBody])
|
|
78
|
+
def test_omitted_fields_are_empty_lists(self, schema):
|
|
79
|
+
q = schema()
|
|
80
|
+
assert q.columns == []
|
|
81
|
+
assert q.filters == []
|
|
82
|
+
assert q.opr_filters == []
|
|
83
|
+
|
|
84
|
+
def test_omitted_lookup_ids_is_empty_list(self):
|
|
85
|
+
assert LookupQuerySchema(mode="search").ids == []
|
|
86
|
+
|
|
87
|
+
|
|
75
88
|
class TestSearch:
|
|
76
89
|
def test_search_is_copied_to_global_filter(self):
|
|
77
90
|
q = QuerySchema(search="abc")
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = "2.21.0"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/agent_docs/adapters/agents-md/AGENTS.md
RENAMED
|
File without changes
|
{fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/agent_docs/adapters/claude/skill.frontmatter
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
|
{fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/api/model_rest_api/services/__init__.py
RENAMED
|
File without changes
|
{fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/api/model_rest_api/services/_add_service.py
RENAMED
|
File without changes
|
{fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/api/model_rest_api/services/_bulk_service.py
RENAMED
|
File without changes
|
{fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/api/model_rest_api/services/_delete_service.py
RENAMED
|
File without changes
|
|
File without changes
|
{fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/api/model_rest_api/services/_edit_service.py
RENAMED
|
File without changes
|
{fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/api/model_rest_api/services/_file_service.py
RENAMED
|
File without changes
|
{fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/api/model_rest_api/services/_info_service.py
RENAMED
|
File without changes
|
{fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/api/model_rest_api/services/_list_service.py
RENAMED
|
File without changes
|
{fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/api/model_rest_api/services/_lookup_service.py
RENAMED
|
File without changes
|
{fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/api/model_rest_api/services/_schema_service.py
RENAMED
|
File without changes
|
{fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/api/model_rest_api/services/_show_service.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
|
|
File without changes
|
{fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/backends/sqla/extensions/audit/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/backends/sqla/extensions/audit/_logger.py
RENAMED
|
File without changes
|
|
File without changes
|
{fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/backends/sqla/extensions/audit/audit.py
RENAMED
|
File without changes
|
{fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/backends/sqla/extensions/audit/types.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
|
{fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/cli/commands/agent/adapters/__init__.py
RENAMED
|
File without changes
|
{fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/cli/commands/agent/adapters/agents_md.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/cli/commands/db/templates/fastapi/README
RENAMED
|
File without changes
|
|
File without changes
|
{fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/cli/commands/db/templates/fastapi/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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/lang/translations/de/LC_MESSAGES/messages.mo
RENAMED
|
File without changes
|
{fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/lang/translations/de/LC_MESSAGES/messages.po
RENAMED
|
File without changes
|
{fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/lang/translations/en/LC_MESSAGES/messages.mo
RENAMED
|
File without changes
|
{fastapi_rtk-2.21.0 → fastapi_rtk-2.21.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
|
{fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/security/sqla/security_manager/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/security/sqla/security_manager/_entities.py
RENAMED
|
File without changes
|
|
File without changes
|
{fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/security/sqla/security_manager/_export.py
RENAMED
|
File without changes
|
{fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/security/sqla/security_manager/_import.py
RENAMED
|
File without changes
|
|
File without changes
|
{fastapi_rtk-2.21.0 → fastapi_rtk-2.21.2}/fastapi_rtk/security/sqla/security_manager/_results.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|