fastapi-rtk 2.16.0__tar.gz → 2.17.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_rtk-2.16.0 → fastapi_rtk-2.17.0}/PKG-INFO +1 -1
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/__init__.py +13 -0
- fastapi_rtk-2.17.0/fastapi_rtk/_version.py +1 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/agent_docs/guide/backend.md +2 -2
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/api/__init__.py +13 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/api/base_api.py +14 -4
- fastapi_rtk-2.17.0/fastapi_rtk/api/model_rest_api/__init__.py +19 -0
- fastapi_rtk-2.17.0/fastapi_rtk/api/model_rest_api/model_rest_api.py +2322 -0
- fastapi_rtk-2.16.0/fastapi_rtk/api/model_rest_api/_params.py → fastapi_rtk-2.17.0/fastapi_rtk/api/model_rest_api/params.py +1 -1
- fastapi_rtk-2.17.0/fastapi_rtk/api/model_rest_api/services/__init__.py +25 -0
- fastapi_rtk-2.17.0/fastapi_rtk/api/model_rest_api/services/_add_service.py +99 -0
- fastapi_rtk-2.17.0/fastapi_rtk/api/model_rest_api/services/_bulk_service.py +59 -0
- fastapi_rtk-2.16.0/fastapi_rtk/api/model_rest_api/_delete_mixin.py → fastapi_rtk-2.17.0/fastapi_rtk/api/model_rest_api/services/_delete_service.py +36 -77
- fastapi_rtk-2.16.0/fastapi_rtk/api/model_rest_api/_download_mixin.py → fastapi_rtk-2.17.0/fastapi_rtk/api/model_rest_api/services/_download_service.py +69 -71
- fastapi_rtk-2.17.0/fastapi_rtk/api/model_rest_api/services/_edit_service.py +123 -0
- fastapi_rtk-2.17.0/fastapi_rtk/api/model_rest_api/services/_file_service.py +85 -0
- fastapi_rtk-2.16.0/fastapi_rtk/api/model_rest_api/_info_mixin.py → fastapi_rtk-2.17.0/fastapi_rtk/api/model_rest_api/services/_info_service.py +86 -97
- fastapi_rtk-2.17.0/fastapi_rtk/api/model_rest_api/services/_list_service.py +99 -0
- fastapi_rtk-2.16.0/fastapi_rtk/api/model_rest_api/_columns_mixin.py → fastapi_rtk-2.17.0/fastapi_rtk/api/model_rest_api/services/_schema_service.py +95 -80
- fastapi_rtk-2.17.0/fastapi_rtk/api/model_rest_api/services/_show_service.py +76 -0
- fastapi_rtk-2.16.0/fastapi_rtk/backends/sqla/extensions/audit/_decorators_mixin.py → fastapi_rtk-2.17.0/fastapi_rtk/backends/sqla/extensions/audit/_decorators_service.py +38 -64
- fastapi_rtk-2.16.0/fastapi_rtk/backends/sqla/extensions/audit/_lifecycle_mixin.py → fastapi_rtk-2.17.0/fastapi_rtk/backends/sqla/extensions/audit/_lifecycle_service.py +79 -120
- fastapi_rtk-2.16.0/fastapi_rtk/backends/sqla/extensions/audit/_processing_mixin.py → fastapi_rtk-2.17.0/fastapi_rtk/backends/sqla/extensions/audit/_processing_service.py +51 -56
- fastapi_rtk-2.17.0/fastapi_rtk/backends/sqla/extensions/audit/audit.py +715 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/bases/interface.py +3 -1
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/fastapi_react_toolkit.py +2 -2
- fastapi_rtk-2.17.0/fastapi_rtk/security/sqla/security_manager/__init__.py +4 -0
- fastapi_rtk-2.16.0/fastapi_rtk/security/sqla/security_manager/__init__.py → fastapi_rtk-2.17.0/fastapi_rtk/security/sqla/security_manager/security_manager.py +1 -1
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/utils/lazy.py +18 -5
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/api/model_rest_api/test_init.py +18 -3
- fastapi_rtk-2.17.0/tests/unit/api/model_rest_api/test_service_delegators.py +78 -0
- fastapi_rtk-2.17.0/tests/unit/backends/sqla/test_audit_service_delegators.py +81 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/security/sqla/security_manager/test_user_service.py +1 -1
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/utils/test_lazy.py +99 -0
- fastapi_rtk-2.16.0/fastapi_rtk/_version.py +0 -1
- fastapi_rtk-2.16.0/fastapi_rtk/api/model_rest_api/__init__.py +0 -1322
- fastapi_rtk-2.16.0/fastapi_rtk/api/model_rest_api/_add_mixin.py +0 -135
- fastapi_rtk-2.16.0/fastapi_rtk/api/model_rest_api/_bulk_mixin.py +0 -97
- fastapi_rtk-2.16.0/fastapi_rtk/api/model_rest_api/_edit_mixin.py +0 -176
- fastapi_rtk-2.16.0/fastapi_rtk/api/model_rest_api/_file_mixin.py +0 -131
- fastapi_rtk-2.16.0/fastapi_rtk/api/model_rest_api/_list_mixin.py +0 -119
- fastapi_rtk-2.16.0/fastapi_rtk/api/model_rest_api/_show_mixin.py +0 -97
- fastapi_rtk-2.16.0/fastapi_rtk/api/model_rest_api/_typed_base.py +0 -215
- fastapi_rtk-2.16.0/fastapi_rtk/api/model_rest_api/_upload_mixin.py +0 -62
- fastapi_rtk-2.16.0/fastapi_rtk/backends/sqla/extensions/audit/audit.py +0 -255
- fastapi_rtk-2.16.0/tests/unit/api/model_rest_api/test_typed_base_consistency.py +0 -104
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/.gitignore +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/LICENSE +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/README.md +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/agent_docs/adapters/agents-md/AGENTS.md +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/agent_docs/adapters/claude/skill.frontmatter +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/agent_docs/guide/frontend.md +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/agent_docs/guide/legacy.md +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/agent_docs/guide/overview.md +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/apis/__init__.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/apis/info.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/apis/license.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/auth/__init__.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/auth/auth.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/auth/hashers/__init__.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/auth/hashers/pbkdf2.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/auth/hashers/scrypt.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/auth/ldap.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/auth/password_helpers/__init__.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/auth/password_helpers/fab.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/auth/strategies/__init__.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/auth/strategies/config.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/auth/strategies/db.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/auth/strategies/jwt.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/backends/__init__.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/backends/generic/__init__.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/backends/generic/column.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/backends/generic/db.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/backends/generic/exceptions.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/backends/generic/filters.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/backends/generic/interface.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/backends/generic/model.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/backends/generic/session.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/backends/sqla/__init__.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/backends/sqla/column.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/backends/sqla/db.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/backends/sqla/exceptions.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/backends/sqla/extensions/__init__.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/backends/sqla/extensions/audit/__init__.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/backends/sqla/extensions/audit/_logger.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/backends/sqla/extensions/audit/types.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/backends/sqla/extensions/geoalchemy2/__init__.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/backends/sqla/extensions/geoalchemy2/filters.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/backends/sqla/extensions/geoalchemy2/geometry_converter.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/backends/sqla/filters.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/backends/sqla/interface.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/backends/sqla/model.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/backends/sqla/session.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/bases/__init__.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/bases/cache.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/bases/db.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/bases/file_manager.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/bases/filter.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/bases/loop_manager.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/bases/model.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/bases/session.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/bases/user_cache.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/caches/__init__.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/caches/cache.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/caches/serializers.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/caches/storages.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/cli/__init__.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/cli/cli.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/cli/commands/__init__.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/cli/commands/_security_crypto.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/cli/commands/agent/__init__.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/cli/commands/agent/adapters/__init__.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/cli/commands/agent/adapters/agents_md.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/cli/commands/agent/adapters/claude.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/cli/commands/agent/base.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/cli/commands/agent/docs.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/cli/commands/db/__init__.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/cli/commands/db/templates/fastapi/README +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/cli/commands/db/templates/fastapi/alembic.ini.mako +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/cli/commands/db/templates/fastapi/env.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/cli/commands/db/templates/fastapi/script.py.mako +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/cli/commands/db/templates/fastapi-multidb/README +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/cli/commands/db/templates/fastapi-multidb/alembic.ini.mako +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/cli/commands/db/templates/fastapi-multidb/env.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/cli/commands/db/templates/fastapi-multidb/script.py.mako +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/cli/commands/export.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/cli/commands/security.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/cli/commands/translate.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/cli/const.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/cli/decorators.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/cli/types.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/cli/utils.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/config.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/const.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/db.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/decorators.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/dependencies.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/exceptions.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/file_managers/__init__.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/file_managers/file_manager.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/file_managers/image_manager.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/file_managers/s3_file_manager.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/file_managers/s3_image_manager.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/filters.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/globals.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/lang/__init__.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/lang/babel/__init__.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/lang/babel/cli.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/lang/babel/config.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/lang/babel.cfg +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/lang/lazy_text.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/lang/messages.pot +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/lang/translations/de/LC_MESSAGES/messages.mo +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/lang/translations/de/LC_MESSAGES/messages.po +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/lang/translations/en/LC_MESSAGES/messages.mo +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/lang/translations/en/LC_MESSAGES/messages.po +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/loop_managers/__init__.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/loop_managers/loop_manager.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/manager.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/middlewares.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/mixins.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/models.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/py.typed +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/registry.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/routers.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/schemas.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/security/__init__.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/security/sqla/__init__.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/security/sqla/apis.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/security/sqla/models.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/security/sqla/security_manager/_builtin_role_service.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/security/sqla/security_manager/_entities.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/security/sqla/security_manager/_exception_filters.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/security/sqla/security_manager/_export.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/security/sqla/security_manager/_import.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/security/sqla/security_manager/_permission_service.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/security/sqla/security_manager/_results.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/security/sqla/security_manager/_role_service.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/security/sqla/security_manager/_user_service.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/security/sqla/user_cache.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/setting.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/types.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/utils/__init__.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/utils/async_task_runner.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/utils/class_factory.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/utils/csv_json_converter.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/utils/deep_merge.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/utils/extender_mixin.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/utils/flask_appbuilder_utils.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/utils/formatter.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/utils/hooks.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/utils/merge_schema.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/utils/multiple_async_contexts.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/utils/pydantic.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/utils/run_utils.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/utils/self_dependencies.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/utils/smartdefaultdict.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/utils/sqla.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/utils/timezone.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/utils/update_signature.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/utils/use_default_when_none.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/fastapi_rtk/version.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/pyproject.toml +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/conftest.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/docker-compose.gis.yml +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/integration/__init__.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/integration/api/__init__.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/integration/api/test_add_edit_relation_response.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/integration/api/test_model_rest_api.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/integration/apis/__init__.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/integration/apis/test_info_callable_schema.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/integration/apis/test_info_contract.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/integration/auth/__init__.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/integration/auth/test_auth_flow.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/integration/auth/test_oauth.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/integration/conftest.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/integration/file_managers/__init__.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/integration/file_managers/test_file_routes.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/integration/security/__init__.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/integration/security/sqla/__init__.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/integration/security/sqla/conftest.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/integration/security/sqla/test_permission_service.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/integration/security/sqla/test_role_service.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/integration/security/sqla/test_security_manager.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/integration/security/sqla/test_user_service.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/integration/test_app_smoke.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/__init__.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/api/__init__.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/api/conftest.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/api/model_rest_api/__init__.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/api/model_rest_api/test_columns.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/api/model_rest_api/test_file_mixin.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/api/test_base_api.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/apis/__init__.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/apis/test_info.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/apis/test_license.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/auth/__init__.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/auth/hashers/__init__.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/auth/hashers/test_pbkdf2.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/auth/hashers/test_scrypt.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/auth/password_helpers/__init__.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/auth/password_helpers/test_fab.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/auth/strategies/__init__.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/auth/strategies/test_config.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/auth/strategies/test_db.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/auth/strategies/test_jwt.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/auth/test_auth.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/backends/__init__.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/backends/generic/__init__.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/backends/generic/test_column.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/backends/generic/test_db.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/backends/generic/test_exceptions.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/backends/generic/test_filters.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/backends/generic/test_interface.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/backends/generic/test_model.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/backends/generic/test_session.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/backends/sqla/__init__.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/backends/sqla/conftest.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/backends/sqla/test_audit.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/backends/sqla/test_audit_types.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/backends/sqla/test_column.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/backends/sqla/test_db.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/backends/sqla/test_filters.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/backends/sqla/test_geoalchemy2.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/backends/sqla/test_interface.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/backends/sqla/test_model.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/backends/sqla/test_session.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/bases/__init__.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/bases/test_db.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/bases/test_file_manager.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/bases/test_filter.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/bases/test_interface.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/bases/test_model.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/bases/test_session.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/cli/__init__.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/cli/commands/__init__.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/cli/commands/conftest.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/cli/commands/test_db.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/cli/commands/test_export.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/cli/commands/test_security.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/cli/commands/test_security_crypto.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/cli/commands/test_translate.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/cli/conftest.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/cli/test_cli.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/cli/test_decorators.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/cli/test_types.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/cli/test_utils.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/file_managers/__init__.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/file_managers/conftest.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/file_managers/test_file_manager.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/file_managers/test_image_manager.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/file_managers/test_s3_file_manager.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/file_managers/test_s3_image_manager.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/lang/__init__.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/lang/test_babel_cli.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/lang/test_babel_config.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/lang/test_lazy_text.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/security/__init__.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/security/sqla/__init__.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/security/sqla/conftest.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/security/sqla/security_manager/__init__.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/security/sqla/security_manager/test_builtin_role_service.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/security/sqla/security_manager/test_entities.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/security/sqla/security_manager/test_permission_service.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/security/sqla/security_manager/test_results.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/security/sqla/security_manager/test_role_service.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/security/sqla/test_apis.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/security/sqla/test_models.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/security/sqla/test_security_manager.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/test_caches.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/test_config.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/test_const.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/test_db.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/test_decorators.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/test_dependencies.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/test_exceptions.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/test_fastapi_react_toolkit.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/test_filters.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/test_globals.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/test_manager.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/test_middlewares.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/test_mixins.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/test_models.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/test_registry.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/test_routers.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/test_schemas.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/test_setting.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/test_types.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/test_user_cache.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/test_version.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/utils/__init__.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/utils/test_async_task_runner.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/utils/test_class_factory.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/utils/test_csv_json_converter.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/utils/test_deep_merge.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/utils/test_extender_mixin.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/utils/test_flask_appbuilder_utils.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/utils/test_formatter.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/utils/test_hooks.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/utils/test_merge_schema.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/utils/test_multiple_async_contexts.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/utils/test_pydantic.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/utils/test_run_utils.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/utils/test_self_dependencies.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/utils/test_smartdefaultdict.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/utils/test_sqla.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/utils/test_timezone.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/utils/test_update_signature.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/tests/unit/utils/test_use_default_when_none.py +0 -0
- {fastapi_rtk-2.16.0 → fastapi_rtk-2.17.0}/uv.lock +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: fastapi-rtk
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.17.0
|
|
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
|
|
@@ -37,6 +37,19 @@ __all__ = [
|
|
|
37
37
|
# .api
|
|
38
38
|
"BaseApi",
|
|
39
39
|
"ModelRestApi",
|
|
40
|
+
"Params",
|
|
41
|
+
"P_ID",
|
|
42
|
+
"P_IDS",
|
|
43
|
+
"P_Q",
|
|
44
|
+
"P_SESSION",
|
|
45
|
+
"P_BODY",
|
|
46
|
+
"P_ITEM",
|
|
47
|
+
"P_ITEMS",
|
|
48
|
+
"PARAM_Q",
|
|
49
|
+
"PARAM_IDS_Q_SESSION_ITEMS",
|
|
50
|
+
"PARAM_ID_SESSION",
|
|
51
|
+
"PARAM_ID_SESSION_ITEM",
|
|
52
|
+
"PARAM_BODY_SESSION",
|
|
40
53
|
# .auth
|
|
41
54
|
"FABPasswordHelper",
|
|
42
55
|
"Authenticator",
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "2.17.0"
|
|
@@ -268,7 +268,7 @@ class ItemApi(ModelRestApi):
|
|
|
268
268
|
async def post_delete(self, item: Item, params): ...
|
|
269
269
|
```
|
|
270
270
|
|
|
271
|
-
To reject a request from a pre-hook, `raise fastapi.HTTPException(...)` (a bare `raise ValueError(...)` becomes HTTP 500; there is no auto-translation). To override the response without rejecting, return a non-`Model` value from the hook, and the dispatcher treats that value as the response and skips the rest of the pipeline (see `
|
|
271
|
+
To reject a request from a pre-hook, `raise fastapi.HTTPException(...)` (a bare `raise ValueError(...)` becomes HTTP 500; there is no auto-translation). To override the response without rejecting, return a non-`Model` value from the hook, and the dispatcher treats that value as the response and skips the rest of the pipeline (see `services/_add_service.py:66-72` and `services/_edit_service.py:90-96`).
|
|
272
272
|
|
|
273
273
|
Use hooks for normalization, cross-field validation, audit logging, cache invalidation: anything policy, not wire format (use Pydantic for that at the schema level).
|
|
274
274
|
|
|
@@ -634,7 +634,7 @@ Reach for the builtin-role inspectors only when the answer must be synchronous a
|
|
|
634
634
|
| Every role's grants, or the role names | `sm.get_role_and_api_permission_tuples_from_builtin_roles()`, `sm.get_roles_from_builtin_roles()` |
|
|
635
635
|
| The resolved roles dict | `sm.builtin_roles` (a caching `lazy` over `Setting.ROLES`) |
|
|
636
636
|
|
|
637
|
-
Two properties to plan around. A role absent from `ROLES` reads as no access from every one of them, the admin role and any runtime-created role included, which is exactly the gap `check_user_access` closes by falling through to the DB. And `builtin_roles` is a caching `lazy` (`security_manager/
|
|
637
|
+
Two properties to plan around. A role absent from `ROLES` reads as no access from every one of them, the admin role and any runtime-created role included, which is exactly the gap `check_user_access` closes by falling through to the DB. And `builtin_roles` is a caching `lazy` (`security_manager/security_manager.py:84`; `cache=True` is the default, `utils/lazy.py`), so a mutation of the config dict after first access is not picked up: an override file loaded at startup is fine, and a test that varies the roles patches the resolved `sm.builtin_roles` attribute instead.
|
|
638
638
|
|
|
639
639
|
`current_permissions(api)` (`dependencies.py:68`) answers a wider question: every permission name the CURRENT user holds on one Api, intersected with that Api's `base_permissions`. It is a dependency factory, so calling it directly is `await current_permissions(self)()` inside `async with db.session():` (it reads `db.current_session`, which that context manager sets). Use it to hand a whole permission set to a template or a response; use `check_user_access` for a single yes/no on a user you already hold.
|
|
640
640
|
|
|
@@ -5,5 +5,18 @@ from .model_rest_api import *
|
|
|
5
5
|
__all__ = [
|
|
6
6
|
"BaseApi",
|
|
7
7
|
"ModelRestApi",
|
|
8
|
+
"Params",
|
|
9
|
+
"P_ID",
|
|
10
|
+
"P_IDS",
|
|
11
|
+
"P_Q",
|
|
12
|
+
"P_SESSION",
|
|
13
|
+
"P_BODY",
|
|
14
|
+
"P_ITEM",
|
|
15
|
+
"P_ITEMS",
|
|
16
|
+
"PARAM_Q",
|
|
17
|
+
"PARAM_IDS_Q_SESSION_ITEMS",
|
|
18
|
+
"PARAM_ID_SESSION",
|
|
19
|
+
"PARAM_ID_SESSION_ITEM",
|
|
20
|
+
"PARAM_BODY_SESSION",
|
|
8
21
|
"SQLAInterface", # Just for backward compatibility, not recommended to use directly
|
|
9
22
|
]
|
|
@@ -74,13 +74,13 @@ class BaseApi:
|
|
|
74
74
|
Example:
|
|
75
75
|
base_permissions = ["can_get", "can_post"]
|
|
76
76
|
"""
|
|
77
|
-
permissions: list[str] = lazy(
|
|
77
|
+
permissions: list[str] = lazy(list[str], with_target=False)
|
|
78
78
|
"""
|
|
79
79
|
List of permissions for the API.
|
|
80
80
|
|
|
81
81
|
DO NOT MODIFY UNLESS YOU KNOW WHAT YOU ARE DOING.
|
|
82
82
|
"""
|
|
83
|
-
messages: list[str] = lazy(
|
|
83
|
+
messages: list[str] = lazy(list[str], with_target=False)
|
|
84
84
|
"""
|
|
85
85
|
List of messages to log when the API is added to the toolkit.
|
|
86
86
|
|
|
@@ -93,7 +93,17 @@ class BaseApi:
|
|
|
93
93
|
collections.abc.Callable,
|
|
94
94
|
dict[str, typing.Any],
|
|
95
95
|
]
|
|
96
|
-
] = lazy(
|
|
96
|
+
] = lazy(
|
|
97
|
+
list[
|
|
98
|
+
tuple[
|
|
99
|
+
collections.abc.Callable,
|
|
100
|
+
dict[str, typing.Any],
|
|
101
|
+
collections.abc.Callable,
|
|
102
|
+
dict[str, typing.Any],
|
|
103
|
+
]
|
|
104
|
+
],
|
|
105
|
+
with_target=False,
|
|
106
|
+
)
|
|
97
107
|
"""
|
|
98
108
|
List of routes to register. Each item is a tuple of (router_func, router_parameters, route_function, metadata). When the API Router is integrated into the FastAPI app, these routes will be registered.
|
|
99
109
|
|
|
@@ -103,7 +113,7 @@ class BaseApi:
|
|
|
103
113
|
"""
|
|
104
114
|
The FastAPIReactToolkit object. Automatically set when the API is added to the toolkit.
|
|
105
115
|
"""
|
|
106
|
-
cache: dict[str, typing.Any] = lazy(
|
|
116
|
+
cache: dict[str, typing.Any] = lazy(dict[str, typing.Any], with_target=False)
|
|
107
117
|
"""
|
|
108
118
|
The cache for the API.
|
|
109
119
|
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
from .model_rest_api import ModelRestApi
|
|
2
|
+
from .params import *
|
|
3
|
+
|
|
4
|
+
__all__ = [
|
|
5
|
+
"ModelRestApi",
|
|
6
|
+
"Params",
|
|
7
|
+
"P_ID",
|
|
8
|
+
"P_IDS",
|
|
9
|
+
"P_Q",
|
|
10
|
+
"P_SESSION",
|
|
11
|
+
"P_BODY",
|
|
12
|
+
"P_ITEM",
|
|
13
|
+
"P_ITEMS",
|
|
14
|
+
"PARAM_Q",
|
|
15
|
+
"PARAM_IDS_Q_SESSION_ITEMS",
|
|
16
|
+
"PARAM_ID_SESSION",
|
|
17
|
+
"PARAM_ID_SESSION_ITEM",
|
|
18
|
+
"PARAM_BODY_SESSION",
|
|
19
|
+
]
|