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.
Files changed (134) hide show
  1. {tina4_python-3.2.0 → tina4_python-3.3.0}/.gitignore +60 -60
  2. {tina4_python-3.2.0 → tina4_python-3.3.0}/PKG-INFO +2 -2
  3. {tina4_python-3.2.0 → tina4_python-3.3.0}/README.md +725 -725
  4. {tina4_python-3.2.0 → tina4_python-3.3.0}/pyproject.toml +70 -70
  5. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/CLAUDE.md +1774 -1780
  6. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/HtmlElement.py +124 -124
  7. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/Testing.py +183 -183
  8. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/__init__.py +40 -40
  9. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/ai/__init__.py +412 -412
  10. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/api/__init__.py +144 -144
  11. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/auth/__init__.py +192 -183
  12. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/cache/__init__.py +727 -727
  13. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/cli/__init__.py +560 -524
  14. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/container/__init__.py +85 -85
  15. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/core/__init__.py +32 -32
  16. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/core/cache.py +161 -161
  17. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/core/constants.py +47 -47
  18. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/core/events.py +130 -130
  19. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/core/middleware.py +139 -139
  20. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/core/request.py +170 -162
  21. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/core/response.py +234 -234
  22. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/core/router.py +412 -240
  23. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/core/server.py +1243 -966
  24. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/crud/__init__.py +264 -264
  25. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/database/__init__.py +17 -17
  26. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/database/adapter.py +531 -345
  27. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/database/connection.py +279 -278
  28. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/database/firebird.py +256 -254
  29. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/database/mssql.py +245 -243
  30. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/database/mysql.py +215 -213
  31. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/database/odbc.py +174 -172
  32. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/database/postgres.py +237 -235
  33. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/database/sqlite.py +213 -211
  34. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/debug/__init__.py +225 -225
  35. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/debug/error_overlay.py +245 -245
  36. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/dev_admin/__init__.py +1761 -1731
  37. tina4_python-3.3.0/tina4_python/dev_reload.py +206 -0
  38. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/dotenv/__init__.py +159 -159
  39. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/frond/FROND.md +490 -490
  40. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/frond/__init__.py +12 -12
  41. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/frond/engine.py +1441 -1314
  42. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/gallery/auth/meta.json +1 -1
  43. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/gallery/auth/src/routes/api/gallery_auth.py +121 -121
  44. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/gallery/database/meta.json +1 -1
  45. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/gallery/database/src/routes/api/gallery_db.py +48 -48
  46. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/gallery/error-overlay/meta.json +1 -1
  47. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/gallery/error-overlay/src/routes/api/gallery_crash.py +19 -19
  48. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/gallery/orm/meta.json +1 -1
  49. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/gallery/orm/src/orm/Product.py +10 -10
  50. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/gallery/orm/src/routes/api/gallery_products.py +17 -17
  51. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/gallery/queue/meta.json +1 -1
  52. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/gallery/queue/src/routes/api/gallery_queue.py +256 -259
  53. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/gallery/rest-api/meta.json +1 -1
  54. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/gallery/rest-api/src/routes/api/gallery_hello.py +19 -19
  55. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/gallery/templates/meta.json +1 -1
  56. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/gallery/templates/src/routes/gallery_page.py +15 -15
  57. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/gallery/templates/src/templates/gallery_page.twig +255 -255
  58. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/graphql/__init__.py +622 -622
  59. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/i18n/__init__.py +108 -108
  60. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/messenger/__init__.py +833 -833
  61. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/migration/__init__.py +13 -13
  62. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/migration/runner.py +290 -244
  63. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/orm/__init__.py +38 -38
  64. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/orm/fields.py +295 -295
  65. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/orm/model.py +716 -682
  66. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/public/css/tina4.css +2463 -2463
  67. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/public/css/tina4.min.css +1 -1
  68. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/public/images/logo.svg +5 -5
  69. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/public/js/frond.min.js +419 -419
  70. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/public/js/tina4-dev-admin.min.js +326 -326
  71. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/public/js/tina4.min.js +92 -92
  72. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/public/swagger/index.html +90 -90
  73. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/public/swagger/oauth2-redirect.html +63 -63
  74. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/queue/__init__.py +562 -505
  75. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/queue_backends/__init__.py +21 -20
  76. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/queue_backends/kafka_backend.py +358 -358
  77. tina4_python-3.3.0/tina4_python/queue_backends/mongo_backend.py +210 -0
  78. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/queue_backends/rabbitmq_backend.py +425 -425
  79. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/scss/__init__.py +456 -456
  80. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/scss/tina4css/_alerts.scss +34 -34
  81. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/scss/tina4css/_badges.scss +22 -22
  82. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/scss/tina4css/_buttons.scss +69 -69
  83. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/scss/tina4css/_cards.scss +49 -49
  84. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/scss/tina4css/_forms.scss +156 -156
  85. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/scss/tina4css/_grid.scss +81 -81
  86. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/scss/tina4css/_modals.scss +84 -84
  87. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/scss/tina4css/_nav.scss +149 -149
  88. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/scss/tina4css/_reset.scss +94 -94
  89. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/scss/tina4css/_tables.scss +54 -54
  90. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/scss/tina4css/_typography.scss +55 -55
  91. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/scss/tina4css/_utilities.scss +197 -197
  92. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/scss/tina4css/_variables.scss +117 -117
  93. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/scss/tina4css/base.scss +1 -1
  94. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/scss/tina4css/colors.scss +48 -48
  95. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/scss/tina4css/tina4.scss +17 -17
  96. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/seeder/__init__.py +182 -182
  97. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/service/__init__.py +414 -414
  98. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/session/__init__.py +273 -253
  99. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/session_handlers/__init__.py +18 -18
  100. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/session_handlers/mongodb_handler.py +339 -339
  101. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/session_handlers/redis_handler.py +206 -206
  102. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/session_handlers/valkey_handler.py +208 -208
  103. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/swagger/__init__.py +285 -285
  104. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/templates/components/crud.twig +516 -516
  105. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/templates/docker/distroless/Dockerfile +61 -61
  106. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/templates/docker/poetry/Dockerfile +57 -57
  107. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/templates/docker/python/Dockerfile +61 -61
  108. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/templates/docker/uv/Dockerfile +58 -58
  109. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/templates/errors/302.twig +14 -14
  110. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/templates/errors/401.twig +9 -9
  111. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/templates/errors/403.twig +29 -29
  112. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/templates/errors/404.twig +29 -29
  113. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/templates/errors/500.twig +38 -38
  114. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/templates/errors/502.twig +9 -9
  115. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/templates/errors/503.twig +12 -12
  116. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/templates/errors/base.twig +37 -37
  117. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/templates/frontend/README.md +130 -130
  118. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/translations/af/LC_MESSAGES/messages.po +233 -233
  119. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/translations/en/LC_MESSAGES/messages.po +233 -233
  120. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/translations/es/LC_MESSAGES/messages.po +233 -233
  121. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/translations/fr/LC_MESSAGES/messages.po +233 -233
  122. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/translations/ja/LC_MESSAGES/messages.po +233 -233
  123. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/translations/zh/LC_MESSAGES/messages.po +233 -233
  124. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/websocket/__init__.py +492 -492
  125. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/wsdl/__init__.py +356 -356
  126. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/public/favicon.ico +0 -0
  127. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/public/images/tina4-logo-icon.webp +0 -0
  128. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/templates/readme.md +0 -0
  129. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/translations/af/LC_MESSAGES/messages.mo +0 -0
  130. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/translations/en/LC_MESSAGES/messages.mo +0 -0
  131. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/translations/es/LC_MESSAGES/messages.mo +0 -0
  132. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/translations/fr/LC_MESSAGES/messages.mo +0 -0
  133. {tina4_python-3.2.0 → tina4_python-3.3.0}/tina4_python/translations/ja/LC_MESSAGES/messages.mo +0 -0
  134. {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.2.0
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 |