tina4-python 3.13.62__tar.gz → 3.13.63__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.
- {tina4_python-3.13.62 → tina4_python-3.13.63}/PKG-INFO +1 -1
- {tina4_python-3.13.62 → tina4_python-3.13.63}/pyproject.toml +1 -1
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/__init__.py +1 -1
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/crud/__init__.py +16 -8
- {tina4_python-3.13.62 → tina4_python-3.13.63}/.gitignore +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/README.md +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/CLAUDE.md +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/HtmlElement.py +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/Testing.py +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/ai/__init__.py +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/api/__init__.py +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/auth/__init__.py +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/cache/__init__.py +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/cli/__init__.py +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/container/__init__.py +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/context/__init__.py +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/context/chunker.py +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/core/__init__.py +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/core/cache.py +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/core/constants.py +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/core/events.py +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/core/middleware.py +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/core/rate_limiter.py +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/core/request.py +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/core/response.py +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/core/router.py +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/core/server.py +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/database/__init__.py +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/database/adapter.py +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/database/connection.py +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/database/firebird.py +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/database/mongodb.py +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/database/mssql.py +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/database/mysql.py +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/database/odbc.py +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/database/postgres.py +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/database/sqlite.py +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/debug/__init__.py +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/debug/error_overlay.py +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/dev_admin/__init__.py +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/dev_admin/metrics.py +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/dev_admin/plan.py +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/dev_admin/project_index.py +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/docs.py +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/docstore/__init__.py +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/dotenv/__init__.py +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/env.py +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/frond/FROND.md +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/frond/__init__.py +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/frond/engine.py +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/gallery/auth/meta.json +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/gallery/auth/src/routes/api/gallery_auth.py +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/gallery/database/meta.json +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/gallery/database/src/routes/api/gallery_db.py +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/gallery/error-overlay/meta.json +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/gallery/error-overlay/src/routes/api/gallery_crash.py +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/gallery/orm/meta.json +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/gallery/orm/src/orm/Product.py +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/gallery/orm/src/routes/api/gallery_products.py +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/gallery/queue/meta.json +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/gallery/queue/src/routes/api/gallery_queue.py +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/gallery/rest-api/meta.json +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/gallery/rest-api/src/routes/api/gallery_hello.py +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/gallery/templates/meta.json +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/gallery/templates/src/routes/gallery_page.py +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/gallery/templates/src/templates/gallery_page.twig +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/graphql/__init__.py +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/i18n/__init__.py +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/mcp/__init__.py +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/mcp/protocol.py +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/mcp/tools.py +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/messenger/__init__.py +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/migration/__init__.py +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/migration/runner.py +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/orm/__init__.py +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/orm/fields.py +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/orm/model.py +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/public/__feedback/widget.js +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/public/css/tina4.css +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/public/css/tina4.min.css +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/public/favicon.ico +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/public/images/logo.svg +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/public/images/tina4-logo-icon.webp +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/public/js/frond.js +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/public/js/frond.min.js +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/public/js/tina4-dev-admin.js +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/public/js/tina4-dev-admin.min.js +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/public/js/tina4.min.js +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/public/js/tina4js.min.js +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/public/swagger/index.html +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/public/swagger/oauth2-redirect.html +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/query_builder/__init__.py +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/queue/__init__.py +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/queue/job.py +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/queue/kafka_backend.py +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/queue/lite_backend.py +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/queue/mongo_backend.py +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/queue/rabbitmq_backend.py +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/queue_backends/__init__.py +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/queue_backends/kafka_backend.py +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/queue_backends/mongo_backend.py +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/queue_backends/rabbitmq_backend.py +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/realtime/__init__.py +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/realtime/models/Attachment.py +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/realtime/models/Channel.py +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/realtime/models/ChannelMember.py +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/realtime/models/Message.py +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/realtime/models/Workspace.py +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/realtime/models/__init__.py +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/realtime/storage.py +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/scss/__init__.py +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/scss/tina4css/_alerts.scss +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/scss/tina4css/_badges.scss +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/scss/tina4css/_buttons.scss +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/scss/tina4css/_cards.scss +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/scss/tina4css/_forms.scss +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/scss/tina4css/_grid.scss +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/scss/tina4css/_modals.scss +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/scss/tina4css/_nav.scss +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/scss/tina4css/_reset.scss +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/scss/tina4css/_tables.scss +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/scss/tina4css/_typography.scss +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/scss/tina4css/_utilities.scss +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/scss/tina4css/_variables.scss +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/scss/tina4css/base.scss +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/scss/tina4css/colors.scss +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/scss/tina4css/tina4.scss +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/seeder/__init__.py +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/service/__init__.py +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/session/__init__.py +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/session_handlers/__init__.py +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/session_handlers/mongodb_handler.py +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/session_handlers/redis_handler.py +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/session_handlers/valkey_handler.py +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/swagger/__init__.py +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/templates/components/crud.twig +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/templates/docker/distroless/Dockerfile +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/templates/docker/poetry/Dockerfile +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/templates/docker/python/Dockerfile +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/templates/docker/uv/Dockerfile +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/templates/errors/302.twig +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/templates/errors/401.twig +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/templates/errors/403.twig +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/templates/errors/404.twig +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/templates/errors/500.twig +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/templates/errors/502.twig +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/templates/errors/503.twig +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/templates/errors/base.twig +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/templates/frontend/README.md +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/templates/readme.md +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/test/__init__.py +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/test_client/__init__.py +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/translations/af/LC_MESSAGES/messages.mo +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/translations/af/LC_MESSAGES/messages.po +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/translations/en/LC_MESSAGES/messages.mo +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/translations/en/LC_MESSAGES/messages.po +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/translations/es/LC_MESSAGES/messages.mo +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/translations/es/LC_MESSAGES/messages.po +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/translations/fr/LC_MESSAGES/messages.mo +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/translations/fr/LC_MESSAGES/messages.po +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/translations/ja/LC_MESSAGES/messages.mo +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/translations/ja/LC_MESSAGES/messages.po +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/translations/zh/LC_MESSAGES/messages.mo +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/translations/zh/LC_MESSAGES/messages.po +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/validator/__init__.py +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/websocket/__init__.py +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/websocket/backplane.py +0 -0
- {tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/wsdl/__init__.py +0 -0
|
@@ -21,8 +21,10 @@ Generated endpoints per model:
|
|
|
21
21
|
PUT /api/{table_name}/{id} — update record by primary key
|
|
22
22
|
DELETE /api/{table_name}/{id} — delete record by primary key
|
|
23
23
|
|
|
24
|
-
|
|
25
|
-
|
|
24
|
+
Write routes (POST/PUT/DELETE) are SECURE BY DEFAULT — they require a valid
|
|
25
|
+
token, matching Tina4's framework-wide default (the router gates writes unless a
|
|
26
|
+
route is @noauth). Pass ``public=True`` to open them explicitly, e.g.
|
|
27
|
+
``AutoCrud.register(Note, public=True)``.
|
|
26
28
|
"""
|
|
27
29
|
import importlib
|
|
28
30
|
import inspect
|
|
@@ -66,12 +68,15 @@ class AutoCrud:
|
|
|
66
68
|
return example
|
|
67
69
|
|
|
68
70
|
@staticmethod
|
|
69
|
-
def register(model_class, prefix: str = "/api"):
|
|
71
|
+
def register(model_class, prefix: str = "/api", public: bool = False):
|
|
70
72
|
"""Register REST endpoints for a single ORM model class.
|
|
71
73
|
|
|
72
74
|
Args:
|
|
73
75
|
model_class: An ORM subclass with table_name and fields defined.
|
|
74
76
|
prefix: URL prefix for the generated routes (default "/api").
|
|
77
|
+
public: If True, the write routes (POST/PUT/DELETE) are OPEN (no auth).
|
|
78
|
+
Default False keeps them **secure-by-default** — a valid token is
|
|
79
|
+
required, matching the framework's write-gating.
|
|
75
80
|
|
|
76
81
|
Returns:
|
|
77
82
|
List of dicts describing the generated routes.
|
|
@@ -168,7 +173,8 @@ class AutoCrud:
|
|
|
168
173
|
|
|
169
174
|
create_handler.__name__ = f"autocrud_create_{table}"
|
|
170
175
|
create_handler.__qualname__ = f"autocrud_create_{table}"
|
|
171
|
-
|
|
176
|
+
if public: # secure-by-default; opt-in to public writes
|
|
177
|
+
create_handler._noauth = True
|
|
172
178
|
create_handler._swagger_summary = f"Create {pretty_name}"
|
|
173
179
|
create_handler._swagger_tags = [table]
|
|
174
180
|
create_handler._swagger_example = example_body
|
|
@@ -201,7 +207,8 @@ class AutoCrud:
|
|
|
201
207
|
|
|
202
208
|
update_handler.__name__ = f"autocrud_update_{table}"
|
|
203
209
|
update_handler.__qualname__ = f"autocrud_update_{table}"
|
|
204
|
-
|
|
210
|
+
if public:
|
|
211
|
+
update_handler._noauth = True
|
|
205
212
|
update_handler._swagger_summary = f"Update {pretty_name}"
|
|
206
213
|
update_handler._swagger_tags = [table]
|
|
207
214
|
update_handler._swagger_example = example_body
|
|
@@ -224,7 +231,8 @@ class AutoCrud:
|
|
|
224
231
|
|
|
225
232
|
delete_handler.__name__ = f"autocrud_delete_{table}"
|
|
226
233
|
delete_handler.__qualname__ = f"autocrud_delete_{table}"
|
|
227
|
-
|
|
234
|
+
if public:
|
|
235
|
+
delete_handler._noauth = True
|
|
228
236
|
delete_handler._swagger_summary = f"Delete {pretty_name}"
|
|
229
237
|
delete_handler._swagger_tags = [table]
|
|
230
238
|
Router.add("DELETE", f"{base_path}/{{id}}", delete_handler)
|
|
@@ -237,7 +245,7 @@ class AutoCrud:
|
|
|
237
245
|
return generated
|
|
238
246
|
|
|
239
247
|
@staticmethod
|
|
240
|
-
def discover(models_dir: str = "src/orm", prefix: str = "/api"):
|
|
248
|
+
def discover(models_dir: str = "src/orm", prefix: str = "/api", public: bool = False):
|
|
241
249
|
"""Auto-discover all ORM models in a directory and register CRUD routes.
|
|
242
250
|
|
|
243
251
|
Scans .py files in the given directory, imports them, and registers
|
|
@@ -308,7 +316,7 @@ class AutoCrud:
|
|
|
308
316
|
and attr._get_table() # Has a table name
|
|
309
317
|
and attr._get_table() not in AutoCrud._registered
|
|
310
318
|
):
|
|
311
|
-
AutoCrud.register(attr, prefix=prefix)
|
|
319
|
+
AutoCrud.register(attr, prefix=prefix, public=public)
|
|
312
320
|
discovered.append(attr.__name__)
|
|
313
321
|
|
|
314
322
|
if discovered:
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/public/images/tina4-logo-icon.webp
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
|
{tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/public/swagger/oauth2-redirect.html
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
|
{tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/queue_backends/rabbitmq_backend.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
|
{tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/session_handlers/mongodb_handler.py
RENAMED
|
File without changes
|
{tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/session_handlers/redis_handler.py
RENAMED
|
File without changes
|
{tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/session_handlers/valkey_handler.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/templates/docker/distroless/Dockerfile
RENAMED
|
File without changes
|
{tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/templates/docker/poetry/Dockerfile
RENAMED
|
File without changes
|
{tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/templates/docker/python/Dockerfile
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
|
{tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/translations/af/LC_MESSAGES/messages.mo
RENAMED
|
File without changes
|
{tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/translations/af/LC_MESSAGES/messages.po
RENAMED
|
File without changes
|
{tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/translations/en/LC_MESSAGES/messages.mo
RENAMED
|
File without changes
|
{tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/translations/en/LC_MESSAGES/messages.po
RENAMED
|
File without changes
|
{tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/translations/es/LC_MESSAGES/messages.mo
RENAMED
|
File without changes
|
{tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/translations/es/LC_MESSAGES/messages.po
RENAMED
|
File without changes
|
{tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/translations/fr/LC_MESSAGES/messages.mo
RENAMED
|
File without changes
|
{tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/translations/fr/LC_MESSAGES/messages.po
RENAMED
|
File without changes
|
{tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/translations/ja/LC_MESSAGES/messages.mo
RENAMED
|
File without changes
|
{tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/translations/ja/LC_MESSAGES/messages.po
RENAMED
|
File without changes
|
{tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/translations/zh/LC_MESSAGES/messages.mo
RENAMED
|
File without changes
|
{tina4_python-3.13.62 → tina4_python-3.13.63}/tina4_python/translations/zh/LC_MESSAGES/messages.po
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|