fastapi-rtk 2.15.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.15.0 → fastapi_rtk-2.17.0}/.gitignore +7 -1
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/PKG-INFO +16 -1
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/README.md +15 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/__init__.py +18 -0
- fastapi_rtk-2.17.0/fastapi_rtk/_version.py +1 -0
- fastapi_rtk-2.17.0/fastapi_rtk/agent_docs/adapters/agents-md/AGENTS.md +38 -0
- fastapi_rtk-2.17.0/fastapi_rtk/agent_docs/adapters/claude/skill.frontmatter +2 -0
- fastapi_rtk-2.17.0/fastapi_rtk/agent_docs/guide/backend.md +794 -0
- fastapi_rtk-2.17.0/fastapi_rtk/agent_docs/guide/frontend.md +662 -0
- fastapi_rtk-2.17.0/fastapi_rtk/agent_docs/guide/legacy.md +45 -0
- fastapi_rtk-2.17.0/fastapi_rtk/agent_docs/guide/overview.md +106 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/api/__init__.py +13 -0
- {fastapi_rtk-2.15.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.15.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.15.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.15.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 +90 -68
- 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.15.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.15.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.15.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.15.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.15.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.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/bases/interface.py +3 -1
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/cli/cli.py +5 -1
- fastapi_rtk-2.17.0/fastapi_rtk/cli/commands/agent/__init__.py +98 -0
- fastapi_rtk-2.17.0/fastapi_rtk/cli/commands/agent/adapters/__init__.py +4 -0
- fastapi_rtk-2.17.0/fastapi_rtk/cli/commands/agent/adapters/agents_md.py +155 -0
- fastapi_rtk-2.17.0/fastapi_rtk/cli/commands/agent/adapters/claude.py +118 -0
- fastapi_rtk-2.17.0/fastapi_rtk/cli/commands/agent/base.py +146 -0
- fastapi_rtk-2.17.0/fastapi_rtk/cli/commands/agent/docs.py +126 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/cli/commands/security.py +456 -686
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/const.py +1 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/decorators.py +1 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/dependencies.py +13 -79
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/exceptions.py +63 -0
- {fastapi_rtk-2.15.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.15.0/fastapi_rtk/security/sqla/security_manager/_builtin_role_mixin.py → fastapi_rtk-2.17.0/fastapi_rtk/security/sqla/security_manager/_builtin_role_service.py +52 -34
- fastapi_rtk-2.17.0/fastapi_rtk/security/sqla/security_manager/_entities.py +71 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/security/sqla/security_manager/_exception_filters.py +4 -1
- fastapi_rtk-2.17.0/fastapi_rtk/security/sqla/security_manager/_permission_service.py +446 -0
- fastapi_rtk-2.17.0/fastapi_rtk/security/sqla/security_manager/_results.py +58 -0
- fastapi_rtk-2.17.0/fastapi_rtk/security/sqla/security_manager/_role_service.py +356 -0
- fastapi_rtk-2.17.0/fastapi_rtk/security/sqla/security_manager/_user_service.py +866 -0
- fastapi_rtk-2.17.0/fastapi_rtk/security/sqla/security_manager/security_manager.py +1315 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/setting.py +7 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/utils/lazy.py +18 -5
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/integration/api/test_model_rest_api.py +135 -0
- fastapi_rtk-2.17.0/tests/integration/security/sqla/conftest.py +20 -0
- fastapi_rtk-2.17.0/tests/integration/security/sqla/test_permission_service.py +118 -0
- fastapi_rtk-2.17.0/tests/integration/security/sqla/test_role_service.py +64 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/integration/security/sqla/test_security_manager.py +32 -20
- fastapi_rtk-2.17.0/tests/integration/security/sqla/test_user_service.py +105 -0
- {fastapi_rtk-2.15.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.15.0 → fastapi_rtk-2.17.0}/tests/unit/cli/commands/test_security.py +605 -518
- fastapi_rtk-2.17.0/tests/unit/cli/test_cli.py +584 -0
- fastapi_rtk-2.17.0/tests/unit/security/sqla/security_manager/test_builtin_role_service.py +81 -0
- fastapi_rtk-2.17.0/tests/unit/security/sqla/security_manager/test_entities.py +91 -0
- fastapi_rtk-2.17.0/tests/unit/security/sqla/security_manager/test_permission_service.py +32 -0
- fastapi_rtk-2.17.0/tests/unit/security/sqla/security_manager/test_results.py +24 -0
- fastapi_rtk-2.17.0/tests/unit/security/sqla/security_manager/test_role_service.py +28 -0
- fastapi_rtk-2.17.0/tests/unit/security/sqla/security_manager/test_user_service.py +118 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/security/sqla/test_security_manager.py +10 -8
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/test_const.py +2 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/test_decorators.py +7 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/test_dependencies.py +68 -149
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/test_exceptions.py +63 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/test_setting.py +8 -0
- fastapi_rtk-2.17.0/tests/unit/utils/__init__.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/utils/test_lazy.py +99 -0
- fastapi_rtk-2.15.0/fastapi_rtk/_version.py +0 -1
- fastapi_rtk-2.15.0/fastapi_rtk/api/model_rest_api/__init__.py +0 -1322
- fastapi_rtk-2.15.0/fastapi_rtk/api/model_rest_api/_add_mixin.py +0 -135
- fastapi_rtk-2.15.0/fastapi_rtk/api/model_rest_api/_bulk_mixin.py +0 -97
- fastapi_rtk-2.15.0/fastapi_rtk/api/model_rest_api/_edit_mixin.py +0 -176
- fastapi_rtk-2.15.0/fastapi_rtk/api/model_rest_api/_file_mixin.py +0 -131
- fastapi_rtk-2.15.0/fastapi_rtk/api/model_rest_api/_list_mixin.py +0 -119
- fastapi_rtk-2.15.0/fastapi_rtk/api/model_rest_api/_show_mixin.py +0 -97
- fastapi_rtk-2.15.0/fastapi_rtk/api/model_rest_api/_typed_base.py +0 -215
- fastapi_rtk-2.15.0/fastapi_rtk/api/model_rest_api/_upload_mixin.py +0 -62
- fastapi_rtk-2.15.0/fastapi_rtk/backends/sqla/extensions/audit/audit.py +0 -255
- fastapi_rtk-2.15.0/fastapi_rtk/security/sqla/security_manager/__init__.py +0 -155
- fastapi_rtk-2.15.0/fastapi_rtk/security/sqla/security_manager/_association_mixin.py +0 -136
- fastapi_rtk-2.15.0/fastapi_rtk/security/sqla/security_manager/_cleanup_mixin.py +0 -108
- fastapi_rtk-2.15.0/fastapi_rtk/security/sqla/security_manager/_role_mixin.py +0 -239
- fastapi_rtk-2.15.0/fastapi_rtk/security/sqla/security_manager/_user_mixin.py +0 -507
- fastapi_rtk-2.15.0/tests/unit/api/model_rest_api/test_typed_base_consistency.py +0 -104
- fastapi_rtk-2.15.0/tests/unit/cli/test_cli.py +0 -172
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/LICENSE +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/apis/__init__.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/apis/info.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/apis/license.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/auth/__init__.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/auth/auth.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/auth/hashers/__init__.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/auth/hashers/pbkdf2.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/auth/hashers/scrypt.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/auth/ldap.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/auth/password_helpers/__init__.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/auth/password_helpers/fab.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/auth/strategies/__init__.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/auth/strategies/config.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/auth/strategies/db.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/auth/strategies/jwt.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/backends/__init__.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/backends/generic/__init__.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/backends/generic/column.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/backends/generic/db.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/backends/generic/exceptions.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/backends/generic/filters.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/backends/generic/interface.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/backends/generic/model.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/backends/generic/session.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/backends/sqla/__init__.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/backends/sqla/column.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/backends/sqla/db.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/backends/sqla/exceptions.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/backends/sqla/extensions/__init__.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/backends/sqla/extensions/audit/__init__.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/backends/sqla/extensions/audit/_logger.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/backends/sqla/extensions/audit/types.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/backends/sqla/extensions/geoalchemy2/__init__.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/backends/sqla/extensions/geoalchemy2/filters.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/backends/sqla/extensions/geoalchemy2/geometry_converter.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/backends/sqla/filters.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/backends/sqla/interface.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/backends/sqla/model.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/backends/sqla/session.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/bases/__init__.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/bases/cache.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/bases/db.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/bases/file_manager.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/bases/filter.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/bases/loop_manager.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/bases/model.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/bases/session.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/bases/user_cache.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/caches/__init__.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/caches/cache.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/caches/serializers.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/caches/storages.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/cli/__init__.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/cli/commands/__init__.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/cli/commands/_security_crypto.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/cli/commands/db/__init__.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/cli/commands/db/templates/fastapi/README +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/cli/commands/db/templates/fastapi/alembic.ini.mako +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/cli/commands/db/templates/fastapi/env.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/cli/commands/db/templates/fastapi/script.py.mako +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/cli/commands/db/templates/fastapi-multidb/README +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/cli/commands/db/templates/fastapi-multidb/alembic.ini.mako +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/cli/commands/db/templates/fastapi-multidb/env.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/cli/commands/db/templates/fastapi-multidb/script.py.mako +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/cli/commands/export.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/cli/commands/translate.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/cli/const.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/cli/decorators.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/cli/types.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/cli/utils.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/config.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/db.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/file_managers/__init__.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/file_managers/file_manager.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/file_managers/image_manager.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/file_managers/s3_file_manager.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/file_managers/s3_image_manager.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/filters.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/globals.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/lang/__init__.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/lang/babel/__init__.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/lang/babel/cli.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/lang/babel/config.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/lang/babel.cfg +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/lang/lazy_text.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/lang/messages.pot +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/lang/translations/de/LC_MESSAGES/messages.mo +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/lang/translations/de/LC_MESSAGES/messages.po +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/lang/translations/en/LC_MESSAGES/messages.mo +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/lang/translations/en/LC_MESSAGES/messages.po +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/loop_managers/__init__.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/loop_managers/loop_manager.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/manager.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/middlewares.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/mixins.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/models.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/py.typed +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/registry.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/routers.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/schemas.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/security/__init__.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/security/sqla/__init__.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/security/sqla/apis.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/security/sqla/models.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/security/sqla/security_manager/_export.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/security/sqla/security_manager/_import.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/security/sqla/user_cache.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/types.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/utils/__init__.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/utils/async_task_runner.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/utils/class_factory.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/utils/csv_json_converter.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/utils/deep_merge.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/utils/extender_mixin.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/utils/flask_appbuilder_utils.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/utils/formatter.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/utils/hooks.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/utils/merge_schema.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/utils/multiple_async_contexts.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/utils/pydantic.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/utils/run_utils.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/utils/self_dependencies.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/utils/smartdefaultdict.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/utils/sqla.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/utils/timezone.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/utils/update_signature.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/utils/use_default_when_none.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/version.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/pyproject.toml +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/conftest.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/docker-compose.gis.yml +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/integration/__init__.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/integration/api/__init__.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/integration/api/test_add_edit_relation_response.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/integration/apis/__init__.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/integration/apis/test_info_callable_schema.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/integration/apis/test_info_contract.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/integration/auth/__init__.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/integration/auth/test_auth_flow.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/integration/auth/test_oauth.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/integration/conftest.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/integration/file_managers/__init__.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/integration/file_managers/test_file_routes.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/integration/security/__init__.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/integration/security/sqla/__init__.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/integration/test_app_smoke.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/__init__.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/api/__init__.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/api/conftest.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/api/model_rest_api/__init__.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/api/model_rest_api/test_columns.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/api/model_rest_api/test_file_mixin.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/api/test_base_api.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/apis/__init__.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/apis/test_info.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/apis/test_license.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/auth/__init__.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/auth/hashers/__init__.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/auth/hashers/test_pbkdf2.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/auth/hashers/test_scrypt.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/auth/password_helpers/__init__.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/auth/password_helpers/test_fab.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/auth/strategies/__init__.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/auth/strategies/test_config.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/auth/strategies/test_db.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/auth/strategies/test_jwt.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/auth/test_auth.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/backends/__init__.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/backends/generic/__init__.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/backends/generic/test_column.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/backends/generic/test_db.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/backends/generic/test_exceptions.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/backends/generic/test_filters.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/backends/generic/test_interface.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/backends/generic/test_model.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/backends/generic/test_session.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/backends/sqla/__init__.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/backends/sqla/conftest.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/backends/sqla/test_audit.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/backends/sqla/test_audit_types.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/backends/sqla/test_column.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/backends/sqla/test_db.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/backends/sqla/test_filters.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/backends/sqla/test_geoalchemy2.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/backends/sqla/test_interface.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/backends/sqla/test_model.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/backends/sqla/test_session.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/bases/__init__.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/bases/test_db.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/bases/test_file_manager.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/bases/test_filter.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/bases/test_interface.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/bases/test_model.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/bases/test_session.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/cli/__init__.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/cli/commands/__init__.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/cli/commands/conftest.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/cli/commands/test_db.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/cli/commands/test_export.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/cli/commands/test_security_crypto.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/cli/commands/test_translate.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/cli/conftest.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/cli/test_decorators.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/cli/test_types.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/cli/test_utils.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/file_managers/__init__.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/file_managers/conftest.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/file_managers/test_file_manager.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/file_managers/test_image_manager.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/file_managers/test_s3_file_manager.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/file_managers/test_s3_image_manager.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/lang/__init__.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/lang/test_babel_cli.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/lang/test_babel_config.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/lang/test_lazy_text.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/security/__init__.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/security/sqla/__init__.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/security/sqla/conftest.py +0 -0
- {fastapi_rtk-2.15.0/tests/unit/utils → fastapi_rtk-2.17.0/tests/unit/security/sqla/security_manager}/__init__.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/security/sqla/test_apis.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/security/sqla/test_models.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/test_caches.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/test_config.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/test_db.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/test_fastapi_react_toolkit.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/test_filters.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/test_globals.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/test_manager.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/test_middlewares.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/test_mixins.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/test_models.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/test_registry.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/test_routers.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/test_schemas.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/test_types.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/test_user_cache.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/test_version.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/utils/test_async_task_runner.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/utils/test_class_factory.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/utils/test_csv_json_converter.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/utils/test_deep_merge.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/utils/test_extender_mixin.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/utils/test_flask_appbuilder_utils.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/utils/test_formatter.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/utils/test_hooks.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/utils/test_merge_schema.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/utils/test_multiple_async_contexts.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/utils/test_pydantic.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/utils/test_run_utils.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/utils/test_self_dependencies.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/utils/test_smartdefaultdict.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/utils/test_sqla.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/utils/test_timezone.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/utils/test_update_signature.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/utils/test_use_default_when_none.py +0 -0
- {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/uv.lock +0 -0
|
@@ -294,4 +294,10 @@ dist
|
|
|
294
294
|
.pnp.*
|
|
295
295
|
|
|
296
296
|
.vscode
|
|
297
|
-
py/fastapi_rtk/_version.py
|
|
297
|
+
py/fastapi_rtk/_version.py
|
|
298
|
+
|
|
299
|
+
# What `fastapi-rtk agent install` writes when it is run against the example app.
|
|
300
|
+
# The guide's source of truth is py/fastapi_rtk/agent_docs/guide/.
|
|
301
|
+
py/example/docs/agents/
|
|
302
|
+
py/example/AGENTS.md
|
|
303
|
+
py/example/.claude/
|
|
@@ -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
|
|
@@ -69,6 +69,21 @@ FastAPI React Toolkit bootstraps a web API with [FastAPI](https://github.com/tia
|
|
|
69
69
|
|
|
70
70
|
You can use `fastapi-rtk create-app` command to quickly set up a new project with the recommended structure and example code.
|
|
71
71
|
|
|
72
|
+
### AI coding agents
|
|
73
|
+
|
|
74
|
+
If you work with an AI coding agent, run this inside your project to teach it the framework:
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
fastapi-rtk agent install
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
It installs the guide at `docs/agents/fastapi-rtk/`, then one entry point per agent:
|
|
81
|
+
|
|
82
|
+
- `.claude/skills/rtk-developer/SKILL.md` for Claude Code, when the project has a `.claude` directory or a `CLAUDE.md`, or `claude` is on your PATH. `--claude` writes it regardless, `--no-claude` skips it.
|
|
83
|
+
- A section in `AGENTS.md`, read by Codex, Cursor and others following that convention, when no other entry point was written. `--agents-md` writes it regardless, `--no-agents-md` skips it.
|
|
84
|
+
|
|
85
|
+
The guide ships inside the installed package, so re-run with `--force` after an upgrade. `fastapi-rtk agent uninstall` removes it all again, keeping your own text in `AGENTS.md` and any file you added under the guide directory. Every file that gets overwritten or removed is copied to `<name>.<YYYYmmdd-HHMMSS>.bak` first.
|
|
86
|
+
|
|
72
87
|
### Recommended Project Structure
|
|
73
88
|
|
|
74
89
|
```
|
|
@@ -20,6 +20,21 @@ FastAPI React Toolkit bootstraps a web API with [FastAPI](https://github.com/tia
|
|
|
20
20
|
|
|
21
21
|
You can use `fastapi-rtk create-app` command to quickly set up a new project with the recommended structure and example code.
|
|
22
22
|
|
|
23
|
+
### AI coding agents
|
|
24
|
+
|
|
25
|
+
If you work with an AI coding agent, run this inside your project to teach it the framework:
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
fastapi-rtk agent install
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
It installs the guide at `docs/agents/fastapi-rtk/`, then one entry point per agent:
|
|
32
|
+
|
|
33
|
+
- `.claude/skills/rtk-developer/SKILL.md` for Claude Code, when the project has a `.claude` directory or a `CLAUDE.md`, or `claude` is on your PATH. `--claude` writes it regardless, `--no-claude` skips it.
|
|
34
|
+
- A section in `AGENTS.md`, read by Codex, Cursor and others following that convention, when no other entry point was written. `--agents-md` writes it regardless, `--no-agents-md` skips it.
|
|
35
|
+
|
|
36
|
+
The guide ships inside the installed package, so re-run with `--force` after an upgrade. `fastapi-rtk agent uninstall` removes it all again, keeping your own text in `AGENTS.md` and any file you added under the guide directory. Every file that gets overwritten or removed is copied to `<name>.<YYYYmmdd-HHMMSS>.bak` first.
|
|
37
|
+
|
|
23
38
|
### Recommended Project Structure
|
|
24
39
|
|
|
25
40
|
```
|
|
@@ -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",
|
|
@@ -185,6 +198,7 @@ __all__ = [
|
|
|
185
198
|
"ignore_g_user",
|
|
186
199
|
"relationship_filter",
|
|
187
200
|
"docs",
|
|
201
|
+
"priority",
|
|
188
202
|
# .dependencies
|
|
189
203
|
"set_global_user",
|
|
190
204
|
"current_permissions",
|
|
@@ -193,6 +207,10 @@ __all__ = [
|
|
|
193
207
|
"raise_exception",
|
|
194
208
|
"FastAPIReactToolkitException",
|
|
195
209
|
"RolesMismatchException",
|
|
210
|
+
"RoleNotFoundException",
|
|
211
|
+
"RoleAlreadyExistsException",
|
|
212
|
+
"RoleInUseException",
|
|
213
|
+
"ColumnNotSupportedException",
|
|
196
214
|
"HTTPWithValidationException",
|
|
197
215
|
# .fastapi_react_toolkit
|
|
198
216
|
"FastAPIReactToolkit",
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "2.17.0"
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
## fastapi-rtk
|
|
2
|
+
|
|
3
|
+
This project uses [fastapi-rtk](https://codeberg.org/datatactics/fastapi-rtk), a full-stack toolkit
|
|
4
|
+
whose Python backend generates CRUD endpoints from SQLAlchemy models and whose React frontend
|
|
5
|
+
consumes them through `ApiProvider`. Treat the two halves as one system, not two independent stacks.
|
|
6
|
+
|
|
7
|
+
Detailed guidance ships with the package and was installed into this project:
|
|
8
|
+
|
|
9
|
+
- `docs/agents/fastapi-rtk/overview.md`: start here. Maps each feature to its backend and frontend
|
|
10
|
+
halves, and says which of the files below to open.
|
|
11
|
+
- `docs/agents/fastapi-rtk/backend.md`: models, `ModelRestApi`, hooks, filters, permissions,
|
|
12
|
+
migrations, file uploads, bulk handlers, OAuth.
|
|
13
|
+
- `docs/agents/fastapi-rtk/frontend.md`: `Provider`, `ApiProvider`, `useApi`, `NextGenDataGrid`,
|
|
14
|
+
`useForms`, dialogs, JsonForms, i18n.
|
|
15
|
+
- `docs/agents/fastapi-rtk/legacy.md`: workarounds for older releases, keyed by symptom. Open it only
|
|
16
|
+
when this project pins an older fastapi-rtk than the guide was verified against.
|
|
17
|
+
|
|
18
|
+
Read the file that covers the half you are touching before writing fastapi-rtk code.
|
|
19
|
+
|
|
20
|
+
### Rules that always apply
|
|
21
|
+
|
|
22
|
+
1. `resource_name` is the contract. Backend `resource_name = "items"` and frontend
|
|
23
|
+
`<ApiProvider resource_name="items">` must match exactly; a typo breaks it silently.
|
|
24
|
+
2. Extend the generated endpoints through `pre_*` / `post_*` hooks rather than hand-rolled routes,
|
|
25
|
+
and render resource tables with `NextGenDataGrid` configured through `columnProps` rather than a
|
|
26
|
+
raw table. Reserve `@expose` for endpoints that are not CRUD on a model.
|
|
27
|
+
3. Async-first: use async drivers (`sqlite+aiosqlite`, `postgresql+asyncpg`), write hooks as
|
|
28
|
+
`async def`, and bridge sync code with `smart_run`.
|
|
29
|
+
4. Filter relationship options on the backend with `@relationship_filter` or
|
|
30
|
+
`add_query_rel_fields` / `edit_query_rel_fields`, never in JS.
|
|
31
|
+
5. Frontend provider order is MantineProvider, then the fastapi-rtk `Provider`, then the app. CSS
|
|
32
|
+
imports go Mantine first, fastapi-rtk last.
|
|
33
|
+
|
|
34
|
+
Refresh this section and the guide after upgrading fastapi-rtk:
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
fastapi-rtk agent install --force
|
|
38
|
+
```
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
name: rtk-developer
|
|
2
|
+
description: Full-stack development with the FastAPI React Toolkit (fastapi-rtk), a tightly coupled Python (FastAPI + SQLAlchemy + Pydantic + Alembic) backend and React (Mantine-based) frontend framework that generates CRUD endpoints from models and consumes them automatically through an ApiProvider. Use this skill whenever the user is building, modifying, or debugging anything in a fastapi-rtk project: Python models, ModelRestApi / BaseApi endpoints, pre/post hooks, permissions, migrations, file uploads, bulk operations, or the React side (Provider setup, ApiProvider, useApi, NextGenDataGrid, useForms, dialogs, JsonForms). Also use it when the user mentions fastapi-rtk, rtk, "rtk backend", "rtk frontend", or describes a problem that touches both sides at once (e.g. adding a model and surfacing it in a grid). Prefer this skill over plain FastAPI or React skills whenever the project imports from `fastapi_rtk` or `fastapi-rtk` (JS package).
|