fastapi-rtk 2.18.0__tar.gz → 2.18.1__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.18.0 → fastapi_rtk-2.18.1}/PKG-INFO +1 -1
- fastapi_rtk-2.18.1/fastapi_rtk/_version.py +1 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/agent_docs/guide/backend.md +1 -1
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/backends/sqla/interface.py +8 -3
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/const.py +1 -1
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/backends/sqla/test_interface.py +34 -10
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/test_const.py +1 -1
- fastapi_rtk-2.18.0/fastapi_rtk/_version.py +0 -1
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/.gitignore +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/LICENSE +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/README.md +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/__init__.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/agent_docs/adapters/agents-md/AGENTS.md +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/agent_docs/adapters/claude/skill.frontmatter +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/agent_docs/guide/frontend.md +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/agent_docs/guide/legacy.md +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/agent_docs/guide/overview.md +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/api/__init__.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/api/base_api.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/api/model_rest_api/__init__.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/api/model_rest_api/model_rest_api.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/api/model_rest_api/params.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/api/model_rest_api/services/__init__.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/api/model_rest_api/services/_add_service.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/api/model_rest_api/services/_bulk_service.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/api/model_rest_api/services/_delete_service.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/api/model_rest_api/services/_download_service.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/api/model_rest_api/services/_edit_service.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/api/model_rest_api/services/_file_service.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/api/model_rest_api/services/_info_service.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/api/model_rest_api/services/_list_service.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/api/model_rest_api/services/_schema_service.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/api/model_rest_api/services/_show_service.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/apis/__init__.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/apis/info.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/apis/license.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/auth/__init__.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/auth/auth.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/auth/hashers/__init__.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/auth/hashers/pbkdf2.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/auth/hashers/scrypt.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/auth/ldap.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/auth/password_helpers/__init__.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/auth/password_helpers/fab.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/auth/strategies/__init__.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/auth/strategies/config.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/auth/strategies/db.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/auth/strategies/jwt.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/backends/__init__.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/backends/generic/__init__.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/backends/generic/column.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/backends/generic/db.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/backends/generic/exceptions.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/backends/generic/filters.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/backends/generic/interface.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/backends/generic/model.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/backends/generic/session.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/backends/sqla/__init__.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/backends/sqla/column.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/backends/sqla/db.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/backends/sqla/exceptions.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/backends/sqla/extensions/__init__.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/backends/sqla/extensions/audit/__init__.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/backends/sqla/extensions/audit/_decorators_service.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/backends/sqla/extensions/audit/_lifecycle_service.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/backends/sqla/extensions/audit/_logger.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/backends/sqla/extensions/audit/_processing_service.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/backends/sqla/extensions/audit/audit.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/backends/sqla/extensions/audit/types.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/backends/sqla/extensions/geoalchemy2/__init__.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/backends/sqla/extensions/geoalchemy2/filters.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/backends/sqla/extensions/geoalchemy2/geometry_converter.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/backends/sqla/filters.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/backends/sqla/model.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/backends/sqla/session.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/bases/__init__.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/bases/cache.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/bases/db.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/bases/file_manager.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/bases/filter.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/bases/interface.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/bases/loop_manager.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/bases/model.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/bases/session.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/bases/user_cache.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/caches/__init__.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/caches/cache.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/caches/serializers.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/caches/storages.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/cli/__init__.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/cli/cli.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/cli/commands/__init__.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/cli/commands/_security_crypto.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/cli/commands/agent/__init__.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/cli/commands/agent/adapters/__init__.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/cli/commands/agent/adapters/agents_md.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/cli/commands/agent/adapters/claude.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/cli/commands/agent/base.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/cli/commands/agent/docs.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/cli/commands/db/__init__.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/cli/commands/db/templates/fastapi/README +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/cli/commands/db/templates/fastapi/alembic.ini.mako +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/cli/commands/db/templates/fastapi/env.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/cli/commands/db/templates/fastapi/script.py.mako +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/cli/commands/db/templates/fastapi-multidb/README +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/cli/commands/db/templates/fastapi-multidb/alembic.ini.mako +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/cli/commands/db/templates/fastapi-multidb/env.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/cli/commands/db/templates/fastapi-multidb/script.py.mako +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/cli/commands/export.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/cli/commands/security.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/cli/commands/translate.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/cli/const.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/cli/decorators.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/cli/types.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/cli/utils.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/config.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/db.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/decorators.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/dependencies.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/exceptions.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/fastapi_react_toolkit.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/file_managers/__init__.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/file_managers/file_manager.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/file_managers/image_manager.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/file_managers/s3_file_manager.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/file_managers/s3_image_manager.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/filters.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/globals.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/lang/__init__.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/lang/babel/__init__.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/lang/babel/cli.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/lang/babel/config.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/lang/babel.cfg +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/lang/lazy_text.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/lang/messages.pot +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/lang/translations/de/LC_MESSAGES/messages.mo +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/lang/translations/de/LC_MESSAGES/messages.po +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/lang/translations/en/LC_MESSAGES/messages.mo +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/lang/translations/en/LC_MESSAGES/messages.po +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/loop_managers/__init__.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/loop_managers/loop_manager.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/manager.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/middlewares.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/mixins.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/models.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/py.typed +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/registry.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/routers.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/schemas.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/security/__init__.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/security/sqla/__init__.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/security/sqla/apis.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/security/sqla/models.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/security/sqla/security_manager/__init__.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/security/sqla/security_manager/_builtin_role_service.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/security/sqla/security_manager/_entities.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/security/sqla/security_manager/_exception_filters.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/security/sqla/security_manager/_export.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/security/sqla/security_manager/_import.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/security/sqla/security_manager/_permission_service.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/security/sqla/security_manager/_results.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/security/sqla/security_manager/_role_service.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/security/sqla/security_manager/_user_service.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/security/sqla/security_manager/security_manager.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/security/sqla/user_cache.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/setting.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/types.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/utils/__init__.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/utils/async_task_runner.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/utils/class_factory.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/utils/csv_json_converter.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/utils/deep_merge.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/utils/extender_mixin.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/utils/flask_appbuilder_utils.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/utils/formatter.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/utils/hooks.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/utils/lazy.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/utils/merge_schema.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/utils/multiple_async_contexts.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/utils/pydantic.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/utils/run_utils.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/utils/self_dependencies.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/utils/smartdefaultdict.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/utils/sqla.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/utils/timezone.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/utils/update_signature.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/utils/use_default_when_none.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/version.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/pyproject.toml +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/conftest.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/docker-compose.gis.yml +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/integration/__init__.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/integration/api/__init__.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/integration/api/test_add_edit_relation_response.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/integration/api/test_model_rest_api.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/integration/apis/__init__.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/integration/apis/test_info_callable_schema.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/integration/apis/test_info_contract.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/integration/auth/__init__.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/integration/auth/test_auth_flow.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/integration/auth/test_oauth.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/integration/conftest.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/integration/file_managers/__init__.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/integration/file_managers/test_file_routes.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/integration/security/__init__.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/integration/security/sqla/__init__.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/integration/security/sqla/conftest.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/integration/security/sqla/test_permission_service.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/integration/security/sqla/test_role_service.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/integration/security/sqla/test_security_manager.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/integration/security/sqla/test_user_service.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/integration/test_app_smoke.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/__init__.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/api/__init__.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/api/conftest.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/api/model_rest_api/__init__.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/api/model_rest_api/test_columns.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/api/model_rest_api/test_file_mixin.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/api/model_rest_api/test_init.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/api/model_rest_api/test_service_delegators.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/api/test_base_api.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/apis/__init__.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/apis/test_info.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/apis/test_license.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/auth/__init__.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/auth/hashers/__init__.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/auth/hashers/test_pbkdf2.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/auth/hashers/test_scrypt.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/auth/password_helpers/__init__.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/auth/password_helpers/test_fab.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/auth/strategies/__init__.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/auth/strategies/test_config.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/auth/strategies/test_db.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/auth/strategies/test_jwt.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/auth/test_auth.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/backends/__init__.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/backends/generic/__init__.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/backends/generic/test_column.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/backends/generic/test_db.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/backends/generic/test_exceptions.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/backends/generic/test_filters.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/backends/generic/test_interface.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/backends/generic/test_model.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/backends/generic/test_session.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/backends/sqla/__init__.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/backends/sqla/conftest.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/backends/sqla/test_audit.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/backends/sqla/test_audit_service_delegators.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/backends/sqla/test_audit_types.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/backends/sqla/test_column.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/backends/sqla/test_db.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/backends/sqla/test_filters.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/backends/sqla/test_geoalchemy2.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/backends/sqla/test_model.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/backends/sqla/test_session.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/bases/__init__.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/bases/test_db.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/bases/test_file_manager.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/bases/test_filter.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/bases/test_interface.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/bases/test_model.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/bases/test_session.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/cli/__init__.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/cli/commands/__init__.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/cli/commands/conftest.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/cli/commands/test_db.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/cli/commands/test_export.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/cli/commands/test_security.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/cli/commands/test_security_crypto.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/cli/commands/test_translate.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/cli/conftest.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/cli/test_cli.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/cli/test_decorators.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/cli/test_types.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/cli/test_utils.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/file_managers/__init__.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/file_managers/conftest.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/file_managers/test_file_manager.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/file_managers/test_image_manager.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/file_managers/test_s3_file_manager.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/file_managers/test_s3_image_manager.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/lang/__init__.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/lang/test_babel_cli.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/lang/test_babel_config.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/lang/test_lazy_text.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/security/__init__.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/security/sqla/__init__.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/security/sqla/conftest.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/security/sqla/security_manager/__init__.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/security/sqla/security_manager/test_builtin_role_service.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/security/sqla/security_manager/test_entities.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/security/sqla/security_manager/test_permission_service.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/security/sqla/security_manager/test_results.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/security/sqla/security_manager/test_role_service.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/security/sqla/security_manager/test_user_service.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/security/sqla/test_apis.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/security/sqla/test_models.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/security/sqla/test_security_manager.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/test_caches.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/test_config.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/test_db.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/test_decorators.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/test_dependencies.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/test_exceptions.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/test_fastapi_react_toolkit.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/test_filters.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/test_globals.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/test_manager.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/test_middlewares.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/test_mixins.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/test_models.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/test_registry.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/test_routers.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/test_schemas.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/test_setting.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/test_types.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/test_user_cache.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/test_version.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/utils/__init__.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/utils/test_async_task_runner.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/utils/test_class_factory.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/utils/test_csv_json_converter.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/utils/test_deep_merge.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/utils/test_extender_mixin.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/utils/test_flask_appbuilder_utils.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/utils/test_formatter.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/utils/test_hooks.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/utils/test_lazy.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/utils/test_merge_schema.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/utils/test_multiple_async_contexts.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/utils/test_pydantic.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/utils/test_run_utils.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/utils/test_self_dependencies.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/utils/test_smartdefaultdict.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/utils/test_sqla.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/utils/test_timezone.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/utils/test_update_signature.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/tests/unit/utils/test_use_default_when_none.py +0 -0
- {fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/uv.lock +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: fastapi-rtk
|
|
3
|
-
Version: 2.18.
|
|
3
|
+
Version: 2.18.1
|
|
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.18.1"
|
|
@@ -551,7 +551,7 @@ The task runs later, possibly after the loop has advanced or the enclosing funct
|
|
|
551
551
|
|
|
552
552
|
### Sizing the `/download` stream
|
|
553
553
|
|
|
554
|
-
`/download` exports every row matching the query, so it ignores `page` and `page_size` from the request; they reach the handler and are overwritten. It reads the rows in chunks, and the `download_page_size` attribute on the Api decides how large a chunk is (since the first release after v2.15.0). It is either an int (a fixed chunk) or a resolver `(api, session, params) -> int`. It defaults to the `API_DOWNLOAD_PAGE_SIZE` config key, which is itself the built-in resolver: it counts the matching rows and takes a tenth of them, floored at the `API_DOWNLOAD_MIN_PAGE_SIZE` config key (default `100`) and capped at `API_DOWNLOAD_MAX_PAGE_SIZE` (default `
|
|
554
|
+
`/download` exports every row matching the query, so it ignores `page` and `page_size` from the request; they reach the handler and are overwritten. It reads the rows in chunks, and the `download_page_size` attribute on the Api decides how large a chunk is (since the first release after v2.15.0). It is either an int (a fixed chunk) or a resolver `(api, session, params) -> int`. It defaults to the `API_DOWNLOAD_PAGE_SIZE` config key, which is itself the built-in resolver: it counts the matching rows and takes a tenth of them, floored at the `API_DOWNLOAD_MIN_PAGE_SIZE` config key (default `100`) and capped at `API_DOWNLOAD_MAX_PAGE_SIZE` (default `1000`) so a large table cannot size the chunk into an out-of-memory read.
|
|
555
555
|
|
|
556
556
|
Set it to an int for a fixed chunk, which also skips the count query the default runs:
|
|
557
557
|
|
|
@@ -157,9 +157,14 @@ class SQLAInterface(
|
|
|
157
157
|
if not chunk:
|
|
158
158
|
break
|
|
159
159
|
yield chunk
|
|
160
|
-
|
|
161
|
-
#
|
|
162
|
-
|
|
160
|
+
|
|
161
|
+
# Expunge consumed rows one by one; expunge_all() swaps the identity
|
|
162
|
+
# map the streaming result still holds, killing mid-stream fetches.
|
|
163
|
+
def expunge_chunk() -> None:
|
|
164
|
+
for item in chunk:
|
|
165
|
+
session.expunge(item)
|
|
166
|
+
|
|
167
|
+
await smart_run(expunge_chunk)
|
|
163
168
|
await safe_call(self.close(session))
|
|
164
169
|
|
|
165
170
|
async def add(self, session, item, *, flush=True, commit=True, refresh=True):
|
|
@@ -73,7 +73,7 @@ DEFAULT_PUBLIC_ROLE = "Public"
|
|
|
73
73
|
DEFAULT_API_PAGE_SIZE = 25
|
|
74
74
|
DEFAULT_API_MAX_PAGE_SIZE = 25
|
|
75
75
|
DEFAULT_API_DOWNLOAD_MIN_PAGE_SIZE = 100
|
|
76
|
-
DEFAULT_API_DOWNLOAD_MAX_PAGE_SIZE =
|
|
76
|
+
DEFAULT_API_DOWNLOAD_MAX_PAGE_SIZE = 1000
|
|
77
77
|
DEFAULT_TOKEN_URL = "/api/v1/auth/jwt/login"
|
|
78
78
|
DEFAULT_SECRET = "SUPERSECRET"
|
|
79
79
|
DEFAULT_COOKIE_NAME = "dataTactics"
|
|
@@ -4,6 +4,7 @@ import enum
|
|
|
4
4
|
|
|
5
5
|
import pytest
|
|
6
6
|
import sqlalchemy
|
|
7
|
+
import sqlalchemy.ext.asyncio
|
|
7
8
|
import sqlalchemy.orm
|
|
8
9
|
|
|
9
10
|
from fastapi_rtk import (
|
|
@@ -35,6 +36,12 @@ class _RichModel(Model):
|
|
|
35
36
|
score: Mapped[float | None] = mapped_column(sqlalchemy.Float)
|
|
36
37
|
|
|
37
38
|
|
|
39
|
+
class _StreamRow(Model):
|
|
40
|
+
__tablename__ = "tier8_stream"
|
|
41
|
+
id: Mapped[int] = mapped_column(primary_key=True)
|
|
42
|
+
name: Mapped[str | None] = mapped_column(sqlalchemy.String(50))
|
|
43
|
+
|
|
44
|
+
|
|
38
45
|
@pytest.fixture
|
|
39
46
|
def rich_iface():
|
|
40
47
|
return SQLAInterface(_RichModel)
|
|
@@ -372,20 +379,37 @@ class TestCRUD:
|
|
|
372
379
|
total = sum(len(c) for c in chunks)
|
|
373
380
|
assert total == 3
|
|
374
381
|
|
|
375
|
-
async def
|
|
376
|
-
|
|
377
|
-
original = session.
|
|
382
|
+
async def test_yield_per_expunges_consumed_rows(self, session, iface, monkeypatch):
|
|
383
|
+
expunged = []
|
|
384
|
+
original = session.expunge
|
|
378
385
|
|
|
379
|
-
def
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
original()
|
|
386
|
+
def expunge(item):
|
|
387
|
+
expunged.append(item)
|
|
388
|
+
original(item)
|
|
383
389
|
|
|
384
|
-
monkeypatch.setattr(session, "
|
|
390
|
+
monkeypatch.setattr(session, "expunge", expunge)
|
|
385
391
|
async for _chunk in iface.yield_per(session, {"page_size": 2}):
|
|
386
392
|
pass
|
|
387
|
-
assert
|
|
388
|
-
|
|
393
|
+
assert len(expunged) == 3
|
|
394
|
+
|
|
395
|
+
async def test_yield_per_async_survives_chunk_boundary(self):
|
|
396
|
+
engine = sqlalchemy.ext.asyncio.create_async_engine("sqlite+aiosqlite://")
|
|
397
|
+
try:
|
|
398
|
+
async with engine.begin() as conn:
|
|
399
|
+
await conn.run_sync(_StreamRow.__table__.create)
|
|
400
|
+
interface = SQLAInterface(_StreamRow)
|
|
401
|
+
async with sqlalchemy.ext.asyncio.AsyncSession(engine) as write_session:
|
|
402
|
+
write_session.add_all(
|
|
403
|
+
[_StreamRow(id=i, name=f"n{i}") for i in range(1, 7)]
|
|
404
|
+
)
|
|
405
|
+
await write_session.commit()
|
|
406
|
+
async with sqlalchemy.ext.asyncio.AsyncSession(engine) as read_session:
|
|
407
|
+
total = 0
|
|
408
|
+
async for chunk in interface.yield_per(read_session, {"page_size": 2}):
|
|
409
|
+
total += len(chunk)
|
|
410
|
+
assert total == 6
|
|
411
|
+
finally:
|
|
412
|
+
await engine.dispose()
|
|
389
413
|
|
|
390
414
|
async def test_add(self, session, iface, Person_cls):
|
|
391
415
|
new = Person_cls(id=99, name="Dave", age=50, country_id=1)
|
|
@@ -59,7 +59,7 @@ class TestDefaults:
|
|
|
59
59
|
assert const.DEFAULT_API_PAGE_SIZE == 25
|
|
60
60
|
assert const.DEFAULT_API_MAX_PAGE_SIZE == 25
|
|
61
61
|
assert const.DEFAULT_API_DOWNLOAD_MIN_PAGE_SIZE == 100
|
|
62
|
-
assert const.DEFAULT_API_DOWNLOAD_MAX_PAGE_SIZE ==
|
|
62
|
+
assert const.DEFAULT_API_DOWNLOAD_MAX_PAGE_SIZE == 1000
|
|
63
63
|
|
|
64
64
|
def test_default_token_url(self):
|
|
65
65
|
assert const.DEFAULT_TOKEN_URL.startswith("/")
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = "2.18.0"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/agent_docs/adapters/agents-md/AGENTS.md
RENAMED
|
File without changes
|
{fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/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
|
{fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/api/model_rest_api/services/__init__.py
RENAMED
|
File without changes
|
{fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/api/model_rest_api/services/_add_service.py
RENAMED
|
File without changes
|
{fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/api/model_rest_api/services/_bulk_service.py
RENAMED
|
File without changes
|
{fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/api/model_rest_api/services/_delete_service.py
RENAMED
|
File without changes
|
|
File without changes
|
{fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/api/model_rest_api/services/_edit_service.py
RENAMED
|
File without changes
|
{fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/api/model_rest_api/services/_file_service.py
RENAMED
|
File without changes
|
{fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/api/model_rest_api/services/_info_service.py
RENAMED
|
File without changes
|
{fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/api/model_rest_api/services/_list_service.py
RENAMED
|
File without changes
|
{fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/api/model_rest_api/services/_schema_service.py
RENAMED
|
File without changes
|
{fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/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.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/backends/sqla/extensions/audit/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/backends/sqla/extensions/audit/_logger.py
RENAMED
|
File without changes
|
|
File without changes
|
{fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/backends/sqla/extensions/audit/audit.py
RENAMED
|
File without changes
|
{fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/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
|
{fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/cli/commands/agent/adapters/__init__.py
RENAMED
|
File without changes
|
{fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/cli/commands/agent/adapters/agents_md.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/cli/commands/db/templates/fastapi/README
RENAMED
|
File without changes
|
|
File without changes
|
{fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/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
|
{fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/lang/translations/de/LC_MESSAGES/messages.mo
RENAMED
|
File without changes
|
{fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/lang/translations/de/LC_MESSAGES/messages.po
RENAMED
|
File without changes
|
{fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/lang/translations/en/LC_MESSAGES/messages.mo
RENAMED
|
File without changes
|
{fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/lang/translations/en/LC_MESSAGES/messages.po
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/security/sqla/security_manager/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/security/sqla/security_manager/_entities.py
RENAMED
|
File without changes
|
|
File without changes
|
{fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/security/sqla/security_manager/_export.py
RENAMED
|
File without changes
|
{fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/fastapi_rtk/security/sqla/security_manager/_import.py
RENAMED
|
File without changes
|
|
File without changes
|
{fastapi_rtk-2.18.0 → fastapi_rtk-2.18.1}/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
|
|
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
|