tina4-python 3.11.5__tar.gz → 3.11.9__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.11.5 → tina4_python-3.11.9}/PKG-INFO +1 -1
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/__init__.py +1 -1
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/cli/__init__.py +1 -1
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/core/server.py +1 -4
- tina4_python-3.11.9/tina4_python/dev_admin/__init__.py +1503 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/dev_admin/metrics.py +3 -3
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/frond/engine.py +7 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/graphql/__init__.py +2 -2
- tina4_python-3.11.9/tina4_python/public/js/tina4-dev-admin.js +480 -0
- tina4_python-3.11.9/tina4_python/public/js/tina4-dev-admin.min.js +565 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/session_handlers/mongodb_handler.py +2 -2
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/session_handlers/redis_handler.py +2 -2
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/session_handlers/valkey_handler.py +2 -2
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/websocket/__init__.py +18 -2
- tina4_python-3.11.5/tina4_python/dev_admin/__init__.py +0 -2642
- tina4_python-3.11.5/tina4_python/dev_reload.py +0 -214
- tina4_python-3.11.5/tina4_python/public/js/tina4-dev-admin.js +0 -426
- tina4_python-3.11.5/tina4_python/public/js/tina4-dev-admin.min.js +0 -426
- {tina4_python-3.11.5 → tina4_python-3.11.9}/.gitignore +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/README.md +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/pyproject.toml +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/CLAUDE.md +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/HtmlElement.py +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/Testing.py +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/ai/__init__.py +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/api/__init__.py +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/auth/__init__.py +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/cache/__init__.py +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/container/__init__.py +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/core/__init__.py +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/core/cache.py +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/core/constants.py +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/core/events.py +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/core/middleware.py +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/core/rate_limiter.py +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/core/request.py +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/core/response.py +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/core/router.py +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/crud/__init__.py +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/database/__init__.py +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/database/adapter.py +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/database/connection.py +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/database/firebird.py +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/database/mongodb.py +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/database/mssql.py +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/database/mysql.py +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/database/odbc.py +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/database/postgres.py +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/database/sqlite.py +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/debug/__init__.py +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/debug/error_overlay.py +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/dotenv/__init__.py +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/frond/FROND.md +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/frond/__init__.py +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/gallery/auth/meta.json +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/gallery/auth/src/routes/api/gallery_auth.py +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/gallery/database/meta.json +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/gallery/database/src/routes/api/gallery_db.py +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/gallery/error-overlay/meta.json +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/gallery/error-overlay/src/routes/api/gallery_crash.py +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/gallery/orm/meta.json +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/gallery/orm/src/orm/Product.py +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/gallery/orm/src/routes/api/gallery_products.py +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/gallery/queue/meta.json +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/gallery/queue/src/routes/api/gallery_queue.py +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/gallery/rest-api/meta.json +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/gallery/rest-api/src/routes/api/gallery_hello.py +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/gallery/templates/meta.json +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/gallery/templates/src/routes/gallery_page.py +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/gallery/templates/src/templates/gallery_page.twig +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/i18n/__init__.py +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/mcp/__init__.py +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/mcp/protocol.py +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/mcp/tools.py +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/messenger/__init__.py +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/migration/__init__.py +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/migration/runner.py +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/orm/__init__.py +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/orm/fields.py +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/orm/model.py +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/public/css/tina4.css +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/public/css/tina4.min.css +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/public/favicon.ico +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/public/images/logo.svg +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/public/images/tina4-logo-icon.webp +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/public/js/frond.min.js +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/public/js/tina4.min.js +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/public/js/tina4js.min.js +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/public/swagger/index.html +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/public/swagger/oauth2-redirect.html +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/query_builder/__init__.py +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/queue/__init__.py +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/queue/job.py +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/queue/kafka_backend.py +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/queue/lite_backend.py +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/queue/mongo_backend.py +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/queue/rabbitmq_backend.py +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/queue_backends/__init__.py +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/queue_backends/kafka_backend.py +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/queue_backends/mongo_backend.py +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/queue_backends/rabbitmq_backend.py +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/scss/__init__.py +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/scss/tina4css/_alerts.scss +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/scss/tina4css/_badges.scss +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/scss/tina4css/_buttons.scss +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/scss/tina4css/_cards.scss +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/scss/tina4css/_forms.scss +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/scss/tina4css/_grid.scss +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/scss/tina4css/_modals.scss +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/scss/tina4css/_nav.scss +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/scss/tina4css/_reset.scss +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/scss/tina4css/_tables.scss +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/scss/tina4css/_typography.scss +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/scss/tina4css/_utilities.scss +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/scss/tina4css/_variables.scss +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/scss/tina4css/base.scss +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/scss/tina4css/colors.scss +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/scss/tina4css/tina4.scss +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/seeder/__init__.py +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/service/__init__.py +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/session/__init__.py +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/session_handlers/__init__.py +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/swagger/__init__.py +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/templates/components/crud.twig +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/templates/docker/distroless/Dockerfile +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/templates/docker/poetry/Dockerfile +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/templates/docker/python/Dockerfile +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/templates/docker/uv/Dockerfile +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/templates/errors/302.twig +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/templates/errors/401.twig +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/templates/errors/403.twig +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/templates/errors/404.twig +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/templates/errors/500.twig +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/templates/errors/502.twig +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/templates/errors/503.twig +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/templates/errors/base.twig +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/templates/frontend/README.md +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/templates/readme.md +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/test_client/__init__.py +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/translations/af/LC_MESSAGES/messages.mo +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/translations/af/LC_MESSAGES/messages.po +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/translations/en/LC_MESSAGES/messages.mo +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/translations/en/LC_MESSAGES/messages.po +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/translations/es/LC_MESSAGES/messages.mo +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/translations/es/LC_MESSAGES/messages.po +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/translations/fr/LC_MESSAGES/messages.mo +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/translations/fr/LC_MESSAGES/messages.po +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/translations/ja/LC_MESSAGES/messages.mo +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/translations/ja/LC_MESSAGES/messages.po +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/translations/zh/LC_MESSAGES/messages.mo +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/translations/zh/LC_MESSAGES/messages.po +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/validator/__init__.py +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/websocket/backplane.py +0 -0
- {tina4_python-3.11.5 → tina4_python-3.11.9}/tina4_python/wsdl/__init__.py +0 -0
|
@@ -693,7 +693,7 @@ async def list_{route_path}(request, response):
|
|
|
693
693
|
page = int(request.params.get("page", 1))
|
|
694
694
|
per_page = int(request.params.get("per_page", 20))
|
|
695
695
|
offset = (page - 1) * per_page
|
|
696
|
-
results = {model}().select(limit=per_page,
|
|
696
|
+
results = {model}().select(limit=per_page, offset=offset)
|
|
697
697
|
return response(results.to_paginate(page=page, per_page=per_page))
|
|
698
698
|
|
|
699
699
|
|
|
@@ -825,16 +825,13 @@ def _handle_rate_limit(request: Request, response: Response) -> Response | None:
|
|
|
825
825
|
|
|
826
826
|
async def _handle_dev_admin(request: Request, response: Response) -> Response:
|
|
827
827
|
"""Serve the /__dev dashboard and API routes."""
|
|
828
|
-
from tina4_python.dev_admin import get_api_handlers
|
|
828
|
+
from tina4_python.dev_admin import get_api_handlers
|
|
829
829
|
if request.path in ("/__dev/", "/__dev", "/__dev/v2", "/__dev/v2/"):
|
|
830
830
|
# Unified SPA dev admin
|
|
831
831
|
response.html("""<!DOCTYPE html>
|
|
832
832
|
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width,initial-scale=1.0"><title>Tina4 Dev Admin</title></head>
|
|
833
833
|
<body><div id="app" data-framework="python" data-color="#3b82f6"></div>
|
|
834
834
|
<script src="/js/tina4-dev-admin.min.js"></script></body></html>""")
|
|
835
|
-
elif request.path in ("/__dev/v1", "/__dev/v1/"):
|
|
836
|
-
# Legacy inline dev admin (kept for comparison)
|
|
837
|
-
response.html(render_dashboard())
|
|
838
835
|
else:
|
|
839
836
|
handlers = get_api_handlers()
|
|
840
837
|
handler_info = handlers.get(request.path)
|