tina4-python 3.2.0__tar.gz → 3.3.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.
- {tina4_python-3.2.0 → tina4_python-3.3.0}/.gitignore +60 -60
- {tina4_python-3.2.0 → tina4_python-3.3.0}/PKG-INFO +2 -2
- {tina4_python-3.2.0 → tina4_python-3.3.0}/README.md +725 -725
- {tina4_python-3.2.0 → tina4_python-3.3.0}/pyproject.toml +70 -70
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/CLAUDE.md +1774 -1780
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/HtmlElement.py +124 -124
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/Testing.py +183 -183
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/__init__.py +40 -40
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/ai/__init__.py +412 -412
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/api/__init__.py +144 -144
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/auth/__init__.py +192 -183
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/cache/__init__.py +727 -727
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/cli/__init__.py +560 -524
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/container/__init__.py +85 -85
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/core/__init__.py +32 -32
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/core/cache.py +161 -161
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/core/constants.py +47 -47
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/core/events.py +130 -130
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/core/middleware.py +139 -139
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/core/request.py +170 -162
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/core/response.py +234 -234
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/core/router.py +412 -240
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/core/server.py +1243 -966
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/crud/__init__.py +264 -264
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/database/__init__.py +17 -17
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/database/adapter.py +531 -345
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/database/connection.py +279 -278
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/database/firebird.py +256 -254
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/database/mssql.py +245 -243
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/database/mysql.py +215 -213
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/database/odbc.py +174 -172
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/database/postgres.py +237 -235
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/database/sqlite.py +213 -211
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/debug/__init__.py +225 -225
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/debug/error_overlay.py +245 -245
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/dev_admin/__init__.py +1761 -1731
- tina4_python-3.3.0/tina4_python/dev_reload.py +206 -0
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/dotenv/__init__.py +159 -159
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/frond/FROND.md +490 -490
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/frond/__init__.py +12 -12
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/frond/engine.py +1441 -1314
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/gallery/auth/meta.json +1 -1
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/gallery/auth/src/routes/api/gallery_auth.py +121 -121
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/gallery/database/meta.json +1 -1
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/gallery/database/src/routes/api/gallery_db.py +48 -48
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/gallery/error-overlay/meta.json +1 -1
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/gallery/error-overlay/src/routes/api/gallery_crash.py +19 -19
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/gallery/orm/meta.json +1 -1
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/gallery/orm/src/orm/Product.py +10 -10
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/gallery/orm/src/routes/api/gallery_products.py +17 -17
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/gallery/queue/meta.json +1 -1
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/gallery/queue/src/routes/api/gallery_queue.py +256 -259
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/gallery/rest-api/meta.json +1 -1
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/gallery/rest-api/src/routes/api/gallery_hello.py +19 -19
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/gallery/templates/meta.json +1 -1
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/gallery/templates/src/routes/gallery_page.py +15 -15
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/gallery/templates/src/templates/gallery_page.twig +255 -255
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/graphql/__init__.py +622 -622
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/i18n/__init__.py +108 -108
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/messenger/__init__.py +833 -833
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/migration/__init__.py +13 -13
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/migration/runner.py +290 -244
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/orm/__init__.py +38 -38
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/orm/fields.py +295 -295
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/orm/model.py +716 -682
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/public/css/tina4.css +2463 -2463
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/public/css/tina4.min.css +1 -1
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/public/images/logo.svg +5 -5
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/public/js/frond.min.js +419 -419
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/public/js/tina4-dev-admin.min.js +326 -326
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/public/js/tina4.min.js +92 -92
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/public/swagger/index.html +90 -90
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/public/swagger/oauth2-redirect.html +63 -63
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/queue/__init__.py +562 -505
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/queue_backends/__init__.py +21 -20
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/queue_backends/kafka_backend.py +358 -358
- tina4_python-3.3.0/tina4_python/queue_backends/mongo_backend.py +210 -0
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/queue_backends/rabbitmq_backend.py +425 -425
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/scss/__init__.py +456 -456
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/scss/tina4css/_alerts.scss +34 -34
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/scss/tina4css/_badges.scss +22 -22
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/scss/tina4css/_buttons.scss +69 -69
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/scss/tina4css/_cards.scss +49 -49
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/scss/tina4css/_forms.scss +156 -156
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/scss/tina4css/_grid.scss +81 -81
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/scss/tina4css/_modals.scss +84 -84
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/scss/tina4css/_nav.scss +149 -149
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/scss/tina4css/_reset.scss +94 -94
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/scss/tina4css/_tables.scss +54 -54
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/scss/tina4css/_typography.scss +55 -55
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/scss/tina4css/_utilities.scss +197 -197
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/scss/tina4css/_variables.scss +117 -117
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/scss/tina4css/base.scss +1 -1
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/scss/tina4css/colors.scss +48 -48
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/scss/tina4css/tina4.scss +17 -17
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/seeder/__init__.py +182 -182
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/service/__init__.py +414 -414
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/session/__init__.py +273 -253
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/session_handlers/__init__.py +18 -18
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/session_handlers/mongodb_handler.py +339 -339
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/session_handlers/redis_handler.py +206 -206
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/session_handlers/valkey_handler.py +208 -208
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/swagger/__init__.py +285 -285
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/templates/components/crud.twig +516 -516
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/templates/docker/distroless/Dockerfile +61 -61
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/templates/docker/poetry/Dockerfile +57 -57
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/templates/docker/python/Dockerfile +61 -61
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/templates/docker/uv/Dockerfile +58 -58
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/templates/errors/302.twig +14 -14
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/templates/errors/401.twig +9 -9
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/templates/errors/403.twig +29 -29
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/templates/errors/404.twig +29 -29
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/templates/errors/500.twig +38 -38
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/templates/errors/502.twig +9 -9
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/templates/errors/503.twig +12 -12
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/templates/errors/base.twig +37 -37
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/templates/frontend/README.md +130 -130
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/translations/af/LC_MESSAGES/messages.po +233 -233
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/translations/en/LC_MESSAGES/messages.po +233 -233
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/translations/es/LC_MESSAGES/messages.po +233 -233
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/translations/fr/LC_MESSAGES/messages.po +233 -233
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/translations/ja/LC_MESSAGES/messages.po +233 -233
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/translations/zh/LC_MESSAGES/messages.po +233 -233
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/websocket/__init__.py +492 -492
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/wsdl/__init__.py +356 -356
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/public/favicon.ico +0 -0
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/public/images/tina4-logo-icon.webp +0 -0
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/templates/readme.md +0 -0
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/translations/af/LC_MESSAGES/messages.mo +0 -0
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/translations/en/LC_MESSAGES/messages.mo +0 -0
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/translations/es/LC_MESSAGES/messages.mo +0 -0
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/translations/fr/LC_MESSAGES/messages.mo +0 -0
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/translations/ja/LC_MESSAGES/messages.mo +0 -0
- {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/translations/zh/LC_MESSAGES/messages.mo +0 -0
|
@@ -1,60 +1,60 @@
|
|
|
1
|
-
/.idea/
|
|
2
|
-
/venv/
|
|
3
|
-
/dist/
|
|
4
|
-
/src/public/
|
|
5
|
-
/.pypirc
|
|
6
|
-
/src/templates/index.twig
|
|
7
|
-
/secrets/
|
|
8
|
-
/.env
|
|
9
|
-
/public/css/test.css
|
|
10
|
-
/sessions/
|
|
11
|
-
/tests/secrets/domain.cert
|
|
12
|
-
/tests/secrets/private.key
|
|
13
|
-
/tests/secrets/public.key
|
|
14
|
-
/tests/src/public/css/readme.md
|
|
15
|
-
/tests/src/public/images/403.png
|
|
16
|
-
/tests/src/public/images/404.png
|
|
17
|
-
/tests/src/public/images/logo.png
|
|
18
|
-
/tests/src/public/images/readme.md
|
|
19
|
-
/tests/src/public/js/readme.md
|
|
20
|
-
/tests/src/public/swagger/index.html
|
|
21
|
-
/tests/src/public/swagger/oauth2-redirect.html
|
|
22
|
-
/tests/src/public/favicon.ico
|
|
23
|
-
/tests/src/templates/errors/403.twig
|
|
24
|
-
/tests/src/templates/errors/404.twig
|
|
25
|
-
/tests/src/templates/readme.md
|
|
26
|
-
/tests/src/__init__.py
|
|
27
|
-
/tests/.env
|
|
28
|
-
/tests/app.py
|
|
29
|
-
/test.db
|
|
30
|
-
*.db-wal
|
|
31
|
-
*.db-shm
|
|
32
|
-
*.db-journal
|
|
33
|
-
test_queue*.db
|
|
34
|
-
/queue.db
|
|
35
|
-
/logs/
|
|
36
|
-
/migrations/__test_user.sql
|
|
37
|
-
/migrations/__test_user_item.sql
|
|
38
|
-
/tina4_python.egg-info/
|
|
39
|
-
/src/templates/crud/
|
|
40
|
-
/.venv/
|
|
41
|
-
/publish.bat
|
|
42
|
-
/Dockerfile
|
|
43
|
-
/data.db
|
|
44
|
-
/publish.sh
|
|
45
|
-
/src/scss/
|
|
46
|
-
/broken
|
|
47
|
-
__pycache__/
|
|
48
|
-
.DS_Store
|
|
49
|
-
.coverage
|
|
50
|
-
/benchmarks/.env
|
|
51
|
-
/benchmarks/data.db
|
|
52
|
-
/benchmarks/logs/
|
|
53
|
-
/benchmarks/sessions/
|
|
54
|
-
/benchmarks/secrets/
|
|
55
|
-
/benchmarks/results/
|
|
56
|
-
/benchmarks/__pycache__/
|
|
57
|
-
.claude/
|
|
58
|
-
*.c
|
|
59
|
-
*.so
|
|
60
|
-
build/
|
|
1
|
+
/.idea/
|
|
2
|
+
/venv/
|
|
3
|
+
/dist/
|
|
4
|
+
/src/public/
|
|
5
|
+
/.pypirc
|
|
6
|
+
/src/templates/index.twig
|
|
7
|
+
/secrets/
|
|
8
|
+
/.env
|
|
9
|
+
/public/css/test.css
|
|
10
|
+
/sessions/
|
|
11
|
+
/tests/secrets/domain.cert
|
|
12
|
+
/tests/secrets/private.key
|
|
13
|
+
/tests/secrets/public.key
|
|
14
|
+
/tests/src/public/css/readme.md
|
|
15
|
+
/tests/src/public/images/403.png
|
|
16
|
+
/tests/src/public/images/404.png
|
|
17
|
+
/tests/src/public/images/logo.png
|
|
18
|
+
/tests/src/public/images/readme.md
|
|
19
|
+
/tests/src/public/js/readme.md
|
|
20
|
+
/tests/src/public/swagger/index.html
|
|
21
|
+
/tests/src/public/swagger/oauth2-redirect.html
|
|
22
|
+
/tests/src/public/favicon.ico
|
|
23
|
+
/tests/src/templates/errors/403.twig
|
|
24
|
+
/tests/src/templates/errors/404.twig
|
|
25
|
+
/tests/src/templates/readme.md
|
|
26
|
+
/tests/src/__init__.py
|
|
27
|
+
/tests/.env
|
|
28
|
+
/tests/app.py
|
|
29
|
+
/test.db
|
|
30
|
+
*.db-wal
|
|
31
|
+
*.db-shm
|
|
32
|
+
*.db-journal
|
|
33
|
+
test_queue*.db
|
|
34
|
+
/queue.db
|
|
35
|
+
/logs/
|
|
36
|
+
/migrations/__test_user.sql
|
|
37
|
+
/migrations/__test_user_item.sql
|
|
38
|
+
/tina4_python.egg-info/
|
|
39
|
+
/src/templates/crud/
|
|
40
|
+
/.venv/
|
|
41
|
+
/publish.bat
|
|
42
|
+
/Dockerfile
|
|
43
|
+
/data.db
|
|
44
|
+
/publish.sh
|
|
45
|
+
/src/scss/
|
|
46
|
+
/broken
|
|
47
|
+
__pycache__/
|
|
48
|
+
.DS_Store
|
|
49
|
+
.coverage
|
|
50
|
+
/benchmarks/.env
|
|
51
|
+
/benchmarks/data.db
|
|
52
|
+
/benchmarks/logs/
|
|
53
|
+
/benchmarks/sessions/
|
|
54
|
+
/benchmarks/secrets/
|
|
55
|
+
/benchmarks/results/
|
|
56
|
+
/benchmarks/__pycache__/
|
|
57
|
+
.claude/
|
|
58
|
+
*.c
|
|
59
|
+
*.so
|
|
60
|
+
build/
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: tina4-python
|
|
3
|
-
Version: 3.
|
|
3
|
+
Version: 3.3.0
|
|
4
4
|
Summary: Tina4 Python v3 — Zero-dependency, lightweight web framework
|
|
5
5
|
Author-email: Andre van Zuydam <andrevanzuydam@gmail.com>
|
|
6
6
|
License: MIT
|
|
@@ -115,7 +115,7 @@ Every feature is built from scratch -- no pip install, no node_modules, no third
|
|
|
115
115
|
| **Database** | SQLite, PostgreSQL, MySQL, MSSQL, Firebird -- unified adapter interface, query caching (TINA4_DB_CACHE=true for 4x speedup) |
|
|
116
116
|
| **Auth** | Zero-dep JWT (HS256), sessions (file/Redis/Valkey/MongoDB/database), password hashing, form tokens |
|
|
117
117
|
| **API** | Swagger/OpenAPI auto-generation, GraphQL with ORM auto-schema and GraphiQL IDE, WSDL/SOAP with auto WSDL |
|
|
118
|
-
| **Background** | Queue (SQLite/RabbitMQ/Kafka) with priority, delayed jobs, retry, batch processing |
|
|
118
|
+
| **Background** | Queue (SQLite/RabbitMQ/Kafka/MongoDB) with priority, delayed jobs, retry, batch processing |
|
|
119
119
|
| **Real-time** | Native asyncio WebSocket (RFC 6455), per-path routing, connection manager |
|
|
120
120
|
| **Frontend** | tina4-css (~24 KB), frond.js helper, SCSS compiler, live reload, CSS hot-reload |
|
|
121
121
|
| **DX** | Dev admin dashboard (11 tabs), error overlay, request inspector, AI tool integration, Carbonah green benchmarks |
|