django-bolt 0.2.6__tar.gz → 0.2.7__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.

Potentially problematic release.


This version of django-bolt might be problematic. Click here for more details.

Files changed (248) hide show
  1. {django_bolt-0.2.6 → django_bolt-0.2.7}/CLAUDE.md +1 -0
  2. {django_bolt-0.2.6 → django_bolt-0.2.7}/Cargo.lock +1 -1
  3. {django_bolt-0.2.6 → django_bolt-0.2.7}/Cargo.toml +1 -1
  4. {django_bolt-0.2.6 → django_bolt-0.2.7}/PKG-INFO +2 -2
  5. {django_bolt-0.2.6 → django_bolt-0.2.7}/TODO.md +1 -1
  6. {django_bolt-0.2.6 → django_bolt-0.2.7}/pyproject.toml +2 -2
  7. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/django_bolt/management/commands/runbolt.py +25 -16
  8. {django_bolt-0.2.6 → django_bolt-0.2.7}/.github/workflows/CI.yml +0 -0
  9. {django_bolt-0.2.6 → django_bolt-0.2.7}/.gitignore +0 -0
  10. {django_bolt-0.2.6 → django_bolt-0.2.7}/.python-version +0 -0
  11. {django_bolt-0.2.6 → django_bolt-0.2.7}/BENCHMARK_BASELINE.md +0 -0
  12. {django_bolt-0.2.6 → django_bolt-0.2.7}/BENCHMARK_DEV.md +0 -0
  13. {django_bolt-0.2.6 → django_bolt-0.2.7}/Makefile +0 -0
  14. {django_bolt-0.2.6 → django_bolt-0.2.7}/README.md +0 -0
  15. {django_bolt-0.2.6 → django_bolt-0.2.7}/docs/ANNOTATION_GUIDE.md +0 -0
  16. {django_bolt-0.2.6 → django_bolt-0.2.7}/docs/ASYNC_DJANGO.md +0 -0
  17. {django_bolt-0.2.6 → django_bolt-0.2.7}/docs/CLASS_BASED_VIEWS.md +0 -0
  18. {django_bolt-0.2.6 → django_bolt-0.2.7}/docs/COMPRESSION.md +0 -0
  19. {django_bolt-0.2.6 → django_bolt-0.2.7}/docs/DEPENDENCY_INJECTION.md +0 -0
  20. {django_bolt-0.2.6 → django_bolt-0.2.7}/docs/DJANGO_ADMIN.md +0 -0
  21. {django_bolt-0.2.6 → django_bolt-0.2.7}/docs/EXCEPTIONS.md +0 -0
  22. {django_bolt-0.2.6 → django_bolt-0.2.7}/docs/GETTING_STARTED.md +0 -0
  23. {django_bolt-0.2.6 → django_bolt-0.2.7}/docs/GIL_OPTIMIZATION.md +0 -0
  24. {django_bolt-0.2.6 → django_bolt-0.2.7}/docs/LOGGING.md +0 -0
  25. {django_bolt-0.2.6 → django_bolt-0.2.7}/docs/MIDDLEWARE.md +0 -0
  26. {django_bolt-0.2.6 → django_bolt-0.2.7}/docs/OPENAPI.md +0 -0
  27. {django_bolt-0.2.6 → django_bolt-0.2.7}/docs/OPENAPI_ERROR_RESPONSES.md +0 -0
  28. {django_bolt-0.2.6 → django_bolt-0.2.7}/docs/OPENAPI_METADATA_IMPLEMENTATION.md +0 -0
  29. {django_bolt-0.2.6 → django_bolt-0.2.7}/docs/PAGINATION.md +0 -0
  30. {django_bolt-0.2.6 → django_bolt-0.2.7}/docs/PUBLISHING.md +0 -0
  31. {django_bolt-0.2.6 → django_bolt-0.2.7}/docs/README.md +0 -0
  32. {django_bolt-0.2.6 → django_bolt-0.2.7}/docs/RESPONSES.md +0 -0
  33. {django_bolt-0.2.6 → django_bolt-0.2.7}/docs/SECURITY.md +0 -0
  34. {django_bolt-0.2.6 → django_bolt-0.2.7}/docs/SERIALIZATION.md +0 -0
  35. {django_bolt-0.2.6 → django_bolt-0.2.7}/docs/TESTING_UTILITIES.md +0 -0
  36. {django_bolt-0.2.6 → django_bolt-0.2.7}/docs/favicon.png +0 -0
  37. {django_bolt-0.2.6 → django_bolt-0.2.7}/docs/icon.png +0 -0
  38. {django_bolt-0.2.6 → django_bolt-0.2.7}/docs/logo.png +0 -0
  39. {django_bolt-0.2.6 → django_bolt-0.2.7}/pytest.ini +0 -0
  40. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/django_bolt/__init__.py +0 -0
  41. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/django_bolt/_json.py +0 -0
  42. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/django_bolt/admin/__init__.py +0 -0
  43. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/django_bolt/admin/admin_detection.py +0 -0
  44. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/django_bolt/admin/asgi_bridge.py +0 -0
  45. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/django_bolt/admin/routes.py +0 -0
  46. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/django_bolt/admin/static.py +0 -0
  47. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/django_bolt/admin/static_routes.py +0 -0
  48. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/django_bolt/api.py +0 -0
  49. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/django_bolt/apps.py +0 -0
  50. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/django_bolt/async_collector.py +0 -0
  51. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/django_bolt/auth/__init__.py +0 -0
  52. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/django_bolt/auth/backends.py +0 -0
  53. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/django_bolt/auth/guards.py +0 -0
  54. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/django_bolt/auth/jwt_utils.py +0 -0
  55. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/django_bolt/auth/revocation.py +0 -0
  56. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/django_bolt/auth/token.py +0 -0
  57. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/django_bolt/binding.py +0 -0
  58. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/django_bolt/bootstrap.py +0 -0
  59. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/django_bolt/cli.py +0 -0
  60. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/django_bolt/compression.py +0 -0
  61. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/django_bolt/decorators.py +0 -0
  62. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/django_bolt/dependencies.py +0 -0
  63. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/django_bolt/error_handlers.py +0 -0
  64. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/django_bolt/exceptions.py +0 -0
  65. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/django_bolt/health.py +0 -0
  66. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/django_bolt/logging/__init__.py +0 -0
  67. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/django_bolt/logging/config.py +0 -0
  68. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/django_bolt/logging/middleware.py +0 -0
  69. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/django_bolt/management/__init__.py +0 -0
  70. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/django_bolt/management/commands/__init__.py +0 -0
  71. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/django_bolt/middleware/__init__.py +0 -0
  72. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/django_bolt/middleware/compiler.py +0 -0
  73. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/django_bolt/middleware/middleware.py +0 -0
  74. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/django_bolt/openapi/__init__.py +0 -0
  75. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/django_bolt/openapi/config.py +0 -0
  76. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/django_bolt/openapi/plugins.py +0 -0
  77. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/django_bolt/openapi/routes.py +0 -0
  78. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/django_bolt/openapi/schema_generator.py +0 -0
  79. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/django_bolt/openapi/spec/__init__.py +0 -0
  80. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/django_bolt/openapi/spec/base.py +0 -0
  81. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/django_bolt/openapi/spec/callback.py +0 -0
  82. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/django_bolt/openapi/spec/components.py +0 -0
  83. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/django_bolt/openapi/spec/contact.py +0 -0
  84. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/django_bolt/openapi/spec/discriminator.py +0 -0
  85. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/django_bolt/openapi/spec/encoding.py +0 -0
  86. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/django_bolt/openapi/spec/enums.py +0 -0
  87. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/django_bolt/openapi/spec/example.py +0 -0
  88. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/django_bolt/openapi/spec/external_documentation.py +0 -0
  89. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/django_bolt/openapi/spec/header.py +0 -0
  90. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/django_bolt/openapi/spec/info.py +0 -0
  91. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/django_bolt/openapi/spec/license.py +0 -0
  92. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/django_bolt/openapi/spec/link.py +0 -0
  93. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/django_bolt/openapi/spec/media_type.py +0 -0
  94. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/django_bolt/openapi/spec/oauth_flow.py +0 -0
  95. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/django_bolt/openapi/spec/oauth_flows.py +0 -0
  96. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/django_bolt/openapi/spec/open_api.py +0 -0
  97. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/django_bolt/openapi/spec/operation.py +0 -0
  98. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/django_bolt/openapi/spec/parameter.py +0 -0
  99. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/django_bolt/openapi/spec/path_item.py +0 -0
  100. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/django_bolt/openapi/spec/paths.py +0 -0
  101. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/django_bolt/openapi/spec/reference.py +0 -0
  102. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/django_bolt/openapi/spec/request_body.py +0 -0
  103. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/django_bolt/openapi/spec/response.py +0 -0
  104. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/django_bolt/openapi/spec/responses.py +0 -0
  105. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/django_bolt/openapi/spec/schema.py +0 -0
  106. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/django_bolt/openapi/spec/security_requirement.py +0 -0
  107. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/django_bolt/openapi/spec/security_scheme.py +0 -0
  108. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/django_bolt/openapi/spec/server.py +0 -0
  109. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/django_bolt/openapi/spec/server_variable.py +0 -0
  110. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/django_bolt/openapi/spec/tag.py +0 -0
  111. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/django_bolt/openapi/spec/xml.py +0 -0
  112. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/django_bolt/pagination.py +0 -0
  113. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/django_bolt/param_functions.py +0 -0
  114. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/django_bolt/params.py +0 -0
  115. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/django_bolt/request_parsing.py +0 -0
  116. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/django_bolt/responses.py +0 -0
  117. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/django_bolt/router.py +0 -0
  118. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/django_bolt/serialization.py +0 -0
  119. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/django_bolt/status_codes.py +0 -0
  120. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/django_bolt/testing/__init__.py +0 -0
  121. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/django_bolt/testing/client.py +0 -0
  122. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/django_bolt/testing/helpers.py +0 -0
  123. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/django_bolt/types.py +0 -0
  124. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/django_bolt/typing.py +0 -0
  125. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/django_bolt/views.py +0 -0
  126. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/example/README.md +0 -0
  127. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/example/bench/__init__.py +0 -0
  128. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/example/bench/admin.py +0 -0
  129. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/example/bench/api.py +0 -0
  130. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/example/bench/apps.py +0 -0
  131. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/example/bench/migrations/0001_initial.py +0 -0
  132. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/example/bench/migrations/__init__.py +0 -0
  133. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/example/bench/models.py +0 -0
  134. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/example/bench/tests.py +0 -0
  135. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/example/bench/views.py +0 -0
  136. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/example/manage.py +0 -0
  137. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/example/test_data/100B +0 -0
  138. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/example/test_data/100B.txt +0 -0
  139. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/example/test_data/100K +0 -0
  140. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/example/test_data/100K.json +0 -0
  141. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/example/test_data/100K.txt +0 -0
  142. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/example/test_data/10K +0 -0
  143. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/example/test_data/10K.json +0 -0
  144. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/example/test_data/10K.txt +0 -0
  145. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/example/test_data/1K +0 -0
  146. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/example/test_data/1K.json +0 -0
  147. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/example/test_data/1K.txt +0 -0
  148. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/example/test_data/1M +0 -0
  149. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/example/test_data/1M.json +0 -0
  150. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/example/test_data/1M.txt +0 -0
  151. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/example/test_data/500K +0 -0
  152. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/example/test_data/500K.json +0 -0
  153. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/example/test_data/500K.txt +0 -0
  154. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/example/test_data/5M +0 -0
  155. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/example/test_data/5M.json +0 -0
  156. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/example/test_data/5M.txt +0 -0
  157. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/example/test_data/FILE_UPLOAD_1K +0 -0
  158. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/example/test_data/FILE_UPLOAD_1K_HEADERS.json +0 -0
  159. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/example/test_data/FORM_URLENCODED_1K +0 -0
  160. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/example/test_data/FORM_URLENCODED_1K_HEADERS.json +0 -0
  161. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/example/test_data/MULTIPART_1K +0 -0
  162. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/example/test_data/MULTIPART_1K_HEADERS.json +0 -0
  163. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/example/test_data/__init__.py +0 -0
  164. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/example/test_data/objects.py +0 -0
  165. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/example/test_data/persons_100.json +0 -0
  166. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/example/test_data/persons_50.json +0 -0
  167. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/example/test_data/persons_500.json +0 -0
  168. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/example/testproject/__init__.py +0 -0
  169. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/example/testproject/api.py +0 -0
  170. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/example/testproject/asgi.py +0 -0
  171. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/example/testproject/settings.py +0 -0
  172. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/example/testproject/test_api.py +0 -0
  173. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/example/testproject/urls.py +0 -0
  174. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/example/testproject/views.py +0 -0
  175. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/example/testproject/wsgi.py +0 -0
  176. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/example/users/__init__.py +0 -0
  177. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/example/users/admin.py +0 -0
  178. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/example/users/api.py +0 -0
  179. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/example/users/apps.py +0 -0
  180. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/example/users/migrations/0001_initial.py +0 -0
  181. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/example/users/migrations/__init__.py +0 -0
  182. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/example/users/models.py +0 -0
  183. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/example/users/tests.py +0 -0
  184. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/example/users/views.py +0 -0
  185. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/tests/__init__.py +0 -0
  186. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/tests/admin_tests/__init__.py +0 -0
  187. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/tests/admin_tests/conftest.py +0 -0
  188. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/tests/admin_tests/test_admin_with_django.py +0 -0
  189. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/tests/admin_tests/urls.py +0 -0
  190. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/tests/cbv/__init__.py +0 -0
  191. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/tests/cbv/test_class_views.py +0 -0
  192. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/tests/cbv/test_class_views_django_orm.py +0 -0
  193. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/tests/cbv/test_class_views_features.py +0 -0
  194. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/tests/cbv/test_class_views_with_client.py +0 -0
  195. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/tests/conftest.py +0 -0
  196. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/tests/test_action_decorator.py +0 -0
  197. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/tests/test_auth_secret_key.py +0 -0
  198. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/tests/test_compression.py +0 -0
  199. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/tests/test_cors_implementation.py +0 -0
  200. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/tests/test_decorator_syntax.py +0 -0
  201. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/tests/test_error_handling.py +0 -0
  202. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/tests/test_file_response.py +0 -0
  203. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/tests/test_global_cors.py +0 -0
  204. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/tests/test_guards_auth.py +0 -0
  205. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/tests/test_guards_integration.py +0 -0
  206. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/tests/test_health.py +0 -0
  207. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/tests/test_integration_validation.py +0 -0
  208. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/tests/test_json_validation.py +0 -0
  209. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/tests/test_jwt_auth.py +0 -0
  210. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/tests/test_jwt_token.py +0 -0
  211. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/tests/test_logging.py +0 -0
  212. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/tests/test_logging_merge.py +0 -0
  213. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/tests/test_middleware.py +0 -0
  214. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/tests/test_middleware_server.py +0 -0
  215. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/tests/test_model_viewset.py +0 -0
  216. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/tests/test_models.py +0 -0
  217. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/tests/test_openapi_docs.py +0 -0
  218. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/tests/test_openapi_metadata.py +0 -0
  219. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/tests/test_pagination.py +0 -0
  220. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/tests/test_parameter_validation.py +0 -0
  221. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/tests/test_request_get.py +0 -0
  222. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/tests/test_syntax.py +0 -0
  223. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/tests/test_testing_utilities.py +0 -0
  224. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/tests/test_testing_utilities_simple.py +0 -0
  225. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/tests/test_types.py +0 -0
  226. {django_bolt-0.2.6 → django_bolt-0.2.7}/python/tests/test_viewset_unified.py +0 -0
  227. {django_bolt-0.2.6 → django_bolt-0.2.7}/scripts/benchmark.sh +0 -0
  228. {django_bolt-0.2.6 → django_bolt-0.2.7}/scripts/install_hey.sh +0 -0
  229. {django_bolt-0.2.6 → django_bolt-0.2.7}/scripts/release.sh +0 -0
  230. {django_bolt-0.2.6 → django_bolt-0.2.7}/src/direct_stream.rs +0 -0
  231. {django_bolt-0.2.6 → django_bolt-0.2.7}/src/error.rs +0 -0
  232. {django_bolt-0.2.6 → django_bolt-0.2.7}/src/handler.rs +0 -0
  233. {django_bolt-0.2.6 → django_bolt-0.2.7}/src/json.rs +0 -0
  234. {django_bolt-0.2.6 → django_bolt-0.2.7}/src/lib.rs +0 -0
  235. {django_bolt-0.2.6 → django_bolt-0.2.7}/src/metadata.rs +0 -0
  236. {django_bolt-0.2.6 → django_bolt-0.2.7}/src/middleware/auth.rs +0 -0
  237. {django_bolt-0.2.6 → django_bolt-0.2.7}/src/middleware/compression.rs +0 -0
  238. {django_bolt-0.2.6 → django_bolt-0.2.7}/src/middleware/mod.rs +0 -0
  239. {django_bolt-0.2.6 → django_bolt-0.2.7}/src/middleware/rate_limit.rs +0 -0
  240. {django_bolt-0.2.6 → django_bolt-0.2.7}/src/permissions.rs +0 -0
  241. {django_bolt-0.2.6 → django_bolt-0.2.7}/src/request.rs +0 -0
  242. {django_bolt-0.2.6 → django_bolt-0.2.7}/src/router.rs +0 -0
  243. {django_bolt-0.2.6 → django_bolt-0.2.7}/src/server.rs +0 -0
  244. {django_bolt-0.2.6 → django_bolt-0.2.7}/src/state.rs +0 -0
  245. {django_bolt-0.2.6 → django_bolt-0.2.7}/src/streaming.rs +0 -0
  246. {django_bolt-0.2.6 → django_bolt-0.2.7}/src/test_state.rs +0 -0
  247. {django_bolt-0.2.6 → django_bolt-0.2.7}/src/testing.rs +0 -0
  248. {django_bolt-0.2.6 → django_bolt-0.2.7}/src/validation.rs +0 -0
@@ -533,3 +533,4 @@ uv run --with pytest pytest python/tests -s -vv
533
533
  - **Middleware compilation**: Python middleware config is compiled to Rust metadata at server startup
534
534
  - **Route autodiscovery**: Runs once at server startup, no hot-reload in production mode (use `--dev` for development)
535
535
  - **Multi-process**: Each process has its own Python interpreter and imports Django independently
536
+ - never silently ignore the error or exception. At least we have print method there this happened. This create obscure errors .
@@ -599,7 +599,7 @@ dependencies = [
599
599
 
600
600
  [[package]]
601
601
  name = "django-bolt"
602
- version = "0.2.6"
602
+ version = "0.2.7"
603
603
  dependencies = [
604
604
  "actix-cors",
605
605
  "actix-files",
@@ -1,6 +1,6 @@
1
1
  [package]
2
2
  name = "django-bolt"
3
- version = "0.2.6"
3
+ version = "0.2.7"
4
4
  edition = "2021"
5
5
  readme = "README.md"
6
6
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: django-bolt
3
- Version: 0.2.6
3
+ Version: 0.2.7
4
4
  Classifier: Development Status :: 3 - Alpha
5
5
  Classifier: Intended Audience :: Developers
6
6
  Classifier: License :: OSI Approved :: MIT License
@@ -25,7 +25,7 @@ Requires-Dist: click>=8.1
25
25
  Requires-Dist: msgspec>=0.18
26
26
  Requires-Dist: multipart>=1.3
27
27
  Requires-Dist: pyjwt>=2.10.1
28
- Requires-Dist: uvloop>=0.22.1
28
+ Requires-Dist: uvloop>=0.22.1 ; sys_platform != 'win32'
29
29
  Requires-Dist: pyyaml>=6.0 ; extra == 'yaml'
30
30
  Provides-Extra: yaml
31
31
  Summary: High-performance API framework for Django with Rust-powered endpoints delivering 60k+ RPS
@@ -45,7 +45,7 @@ Pagination helpers
45
45
  ⚠️ content negotiation
46
46
  ⚠️ log level setup from cli (easy to deploy)
47
47
  ⚠️ with broken settings it was not able to find api from root folder
48
- ⚠️ If api folder has error it does not discover the apis
48
+ If api folder has error it does not discover the apis - FIXED (Now crashes with descriptive error instead of silently ignoring)
49
49
  ⚠️ Msgspec based serializer and stuff
50
50
  ✅ Larger json has some GIL contention issue have done alot of investigation. Serialization hold gil when moved serialization to rust it improved but not that much .. Under large concurrency i think it happens . Have to investigate more. (Fixeed using batching gil, reuse event loop, copy memory outside of the gil)
51
51
 
@@ -4,7 +4,7 @@ build-backend = "maturin"
4
4
 
5
5
  [project]
6
6
  name = "django-bolt"
7
- version = "0.2.6"
7
+ version = "0.2.7"
8
8
  description = "High-performance API framework for Django with Rust-powered endpoints delivering 60k+ RPS"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.10"
@@ -40,7 +40,7 @@ dependencies = [
40
40
  "msgspec>=0.18",
41
41
  "multipart>=1.3",
42
42
  "pyjwt>=2.10.1",
43
- "uvloop>=0.22.1"
43
+ "uvloop>=0.22.1; sys_platform != 'win32'"
44
44
  ]
45
45
 
46
46
  [project.optional-dependencies]
@@ -366,25 +366,34 @@ class Command(BaseCommand):
366
366
 
367
367
  def import_api(self, dotted_path):
368
368
  """Import a BoltAPI instance from dotted path like 'myapp.api:api'"""
369
+ if ':' not in dotted_path:
370
+ return None
371
+
372
+ module_path, attr_name = dotted_path.split(':', 1)
373
+
369
374
  try:
370
- if ':' not in dotted_path:
371
- return None
372
-
373
- module_path, attr_name = dotted_path.split(':', 1)
374
375
  module = importlib.import_module(module_path)
375
-
376
- if not hasattr(module, attr_name):
376
+ except ModuleNotFoundError as e:
377
+ # Check if the error is for the target module itself (optional)
378
+ # or for a dependency within the module (fatal error)
379
+ if e.name == module_path or e.name == module_path.split('.')[0]:
380
+ # Target module doesn't exist - this is fine, api.py is optional
377
381
  return None
378
-
379
- api = getattr(module, attr_name)
380
-
381
- # Verify it's a BoltAPI instance
382
- if isinstance(api, BoltAPI):
383
- return api
384
-
385
- except (ImportError, AttributeError, ValueError):
386
- pass
387
-
382
+ else:
383
+ # Module exists but has a missing dependency - let the original error bubble up
384
+ # This preserves the full traceback for debugging
385
+ raise
386
+
387
+ # If attribute doesn't exist, return None (not an error, just doesn't have that attr)
388
+ if not hasattr(module, attr_name):
389
+ return None
390
+
391
+ api = getattr(module, attr_name)
392
+
393
+ # Verify it's a BoltAPI instance
394
+ if isinstance(api, BoltAPI):
395
+ return api
396
+
388
397
  return None
389
398
 
390
399
  def merge_apis(self, apis):
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