django-cfg 1.1.55__tar.gz → 1.1.58__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 (262) hide show
  1. {django_cfg-1.1.55 → django_cfg-1.1.58}/PKG-INFO +1 -1
  2. {django_cfg-1.1.55 → django_cfg-1.1.58}/pyproject.toml +1 -1
  3. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/__init__.py +1 -1
  4. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/core/generation.py +1 -3
  5. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/management/commands/rundramatiq.py +28 -17
  6. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/modules/django_tasks.py +68 -0
  7. {django_cfg-1.1.55 → django_cfg-1.1.58}/.gitignore +0 -0
  8. {django_cfg-1.1.55 → django_cfg-1.1.58}/LICENSE +0 -0
  9. {django_cfg-1.1.55 → django_cfg-1.1.58}/MANIFEST.in +0 -0
  10. {django_cfg-1.1.55 → django_cfg-1.1.58}/README.md +0 -0
  11. {django_cfg-1.1.55 → django_cfg-1.1.58}/requirements-dev.txt +0 -0
  12. {django_cfg-1.1.55 → django_cfg-1.1.58}/requirements-test.txt +0 -0
  13. {django_cfg-1.1.55 → django_cfg-1.1.58}/requirements.txt +0 -0
  14. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/__init__.py +0 -0
  15. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/accounts/README.md +0 -0
  16. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/accounts/__init__.py +0 -0
  17. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/accounts/admin/__init__.py +0 -0
  18. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/accounts/admin/activity.py +0 -0
  19. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/accounts/admin/filters.py +0 -0
  20. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/accounts/admin/group.py +0 -0
  21. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/accounts/admin/inlines.py +0 -0
  22. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/accounts/admin/otp.py +0 -0
  23. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/accounts/admin/registration_source.py +0 -0
  24. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/accounts/admin/twilio_response.py +0 -0
  25. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/accounts/admin/user.py +0 -0
  26. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/accounts/apps.py +0 -0
  27. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/accounts/management/commands/test_otp.py +0 -0
  28. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/accounts/managers/__init__.py +0 -0
  29. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/accounts/managers/user_manager.py +0 -0
  30. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/accounts/migrations/0001_initial.py +0 -0
  31. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/accounts/migrations/0002_add_phone_otp_clean.py +0 -0
  32. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/accounts/migrations/0003_twilioresponse.py +0 -0
  33. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/accounts/migrations/0004_delete_twilioresponse.py +0 -0
  34. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/accounts/migrations/__init__.py +0 -0
  35. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/accounts/models.py +0 -0
  36. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/accounts/serializers/__init__.py +0 -0
  37. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/accounts/serializers/otp.py +0 -0
  38. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/accounts/serializers/profile.py +0 -0
  39. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/accounts/serializers/webhook.py +0 -0
  40. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/accounts/services/__init__.py +0 -0
  41. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/accounts/services/activity_service.py +0 -0
  42. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/accounts/services/otp_service.py +0 -0
  43. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/accounts/signals.py +0 -0
  44. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/accounts/templates/emails/base_email.html +0 -0
  45. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/accounts/templates/emails/base_email.txt +0 -0
  46. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/accounts/templates/emails/otp_email.html +0 -0
  47. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/accounts/templates/emails/otp_email.txt +0 -0
  48. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/accounts/templates/emails/welcome_email.html +0 -0
  49. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/accounts/templates/emails/welcome_email.txt +0 -0
  50. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/accounts/urls.py +0 -0
  51. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/accounts/utils/notifications.py +0 -0
  52. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/accounts/views/__init__.py +0 -0
  53. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/accounts/views/otp.py +0 -0
  54. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/accounts/views/profile.py +0 -0
  55. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/accounts/views/webhook.py +0 -0
  56. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/api/__init__.py +0 -0
  57. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/api/commands/__init__.py +0 -0
  58. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/api/commands/urls.py +0 -0
  59. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/api/commands/views.py +0 -0
  60. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/api/health/__init__.py +0 -0
  61. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/api/health/urls.py +0 -0
  62. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/api/health/views.py +0 -0
  63. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/leads/README.md +0 -0
  64. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/leads/__init__.py +0 -0
  65. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/leads/admin.py +0 -0
  66. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/leads/apps.py +0 -0
  67. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/leads/migrations/0001_initial.py +0 -0
  68. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/leads/migrations/__init__.py +0 -0
  69. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/leads/models.py +0 -0
  70. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/leads/serializers.py +0 -0
  71. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/leads/signals.py +0 -0
  72. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/leads/tests.py +0 -0
  73. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/leads/urls.py +0 -0
  74. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/leads/views.py +0 -0
  75. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/newsletter/README.md +0 -0
  76. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/newsletter/__init__.py +0 -0
  77. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/newsletter/admin.py +0 -0
  78. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/newsletter/admin_filters.py +0 -0
  79. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/newsletter/apps.py +0 -0
  80. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/newsletter/management/__init__.py +0 -0
  81. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/newsletter/management/commands/__init__.py +0 -0
  82. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/newsletter/management/commands/test_newsletter.py +0 -0
  83. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/newsletter/managers/README.md +0 -0
  84. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/newsletter/managers/__init__.py +0 -0
  85. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/newsletter/migrations/0001_initial.py +0 -0
  86. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/newsletter/migrations/__init__.py +0 -0
  87. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/newsletter/models.py +0 -0
  88. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/newsletter/serializers.py +0 -0
  89. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/newsletter/services/email_service.py +0 -0
  90. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/newsletter/signals.py +0 -0
  91. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/newsletter/urls.py +0 -0
  92. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/newsletter/utils/__init__.py +0 -0
  93. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/newsletter/views/__init__.py +0 -0
  94. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/newsletter/views/campaigns.py +0 -0
  95. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/newsletter/views/emails.py +0 -0
  96. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/newsletter/views/newsletters.py +0 -0
  97. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/newsletter/views/subscriptions.py +0 -0
  98. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/newsletter/views/tracking.py +0 -0
  99. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/support/__init__.py +0 -0
  100. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/support/admin.py +0 -0
  101. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/support/admin_filters.py +0 -0
  102. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/support/apps.py +0 -0
  103. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/support/managers/message_manager.py +0 -0
  104. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/support/managers/ticket_manager.py +0 -0
  105. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/support/migrations/0001_initial.py +0 -0
  106. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/support/migrations/0002_alter_message_ticket.py +0 -0
  107. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/support/migrations/__init__.py +0 -0
  108. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/support/models.py +0 -0
  109. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/support/serializers.py +0 -0
  110. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/support/signals.py +0 -0
  111. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/support/templates/support/chat/access_denied.html +0 -0
  112. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/support/templates/support/chat/ticket_chat.html +0 -0
  113. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/support/urls.py +0 -0
  114. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/support/utils/__init__.py +0 -0
  115. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/support/utils/support_email_service.py +0 -0
  116. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/support/views/__init__.py +0 -0
  117. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/support/views/admin.py +0 -0
  118. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/support/views/api.py +0 -0
  119. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/support/views/chat.py +0 -0
  120. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/tasks/__init__.py +0 -0
  121. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/tasks/admin.py +0 -0
  122. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/tasks/apps.py +0 -0
  123. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/tasks/serializers.py +0 -0
  124. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/tasks/static/tasks/css/dashboard.css +0 -0
  125. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/tasks/static/tasks/js/api.js +0 -0
  126. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/tasks/static/tasks/js/dashboard.js +0 -0
  127. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/tasks/static/tasks/js/modals.js +0 -0
  128. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/tasks/static/tasks/js/notifications.js +0 -0
  129. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/tasks/static/tasks/js/task-monitor.js +0 -0
  130. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/tasks/static/tasks/js/theme.js +0 -0
  131. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/tasks/templates/tasks/base.html +0 -0
  132. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/tasks/templates/tasks/components/info_cards.html +0 -0
  133. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/tasks/templates/tasks/components/management_actions.html +0 -0
  134. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/tasks/templates/tasks/components/overview_tab.html +0 -0
  135. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/tasks/templates/tasks/components/queues_tab.html +0 -0
  136. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/tasks/templates/tasks/components/status_cards.html +0 -0
  137. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/tasks/templates/tasks/components/tab_navigation.html +0 -0
  138. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/tasks/templates/tasks/components/task_details_modal.html +0 -0
  139. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/tasks/templates/tasks/components/tasks_tab.html +0 -0
  140. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/tasks/templates/tasks/components/workers_tab.html +0 -0
  141. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/tasks/templates/tasks/dashboard.html +0 -0
  142. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/tasks/urls.py +0 -0
  143. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/tasks/views.py +0 -0
  144. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps/urls.py +0 -0
  145. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/apps.py +0 -0
  146. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/archive/django_sample.zip +0 -0
  147. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/cli/README.md +0 -0
  148. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/cli/__init__.py +0 -0
  149. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/cli/commands/__init__.py +0 -0
  150. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/cli/commands/create_project.py +0 -0
  151. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/cli/commands/info.py +0 -0
  152. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/cli/main.py +0 -0
  153. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/cli/utils.py +0 -0
  154. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/core/__init__.py +0 -0
  155. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/core/config.py +0 -0
  156. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/core/environment.py +0 -0
  157. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/core/validation.py +0 -0
  158. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/exceptions.py +0 -0
  159. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/integration.py +0 -0
  160. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/management/__init__.py +0 -0
  161. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/management/commands/__init__.py +0 -0
  162. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/management/commands/check_settings.py +0 -0
  163. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/management/commands/clear_constance.py +0 -0
  164. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/management/commands/create_token.py +0 -0
  165. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/management/commands/generate.py +0 -0
  166. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/management/commands/list_urls.py +0 -0
  167. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/management/commands/migrator.py +0 -0
  168. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/management/commands/runserver_ngrok.py +0 -0
  169. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/management/commands/script.py +0 -0
  170. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/management/commands/show_config.py +0 -0
  171. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/management/commands/show_urls.py +0 -0
  172. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/management/commands/superuser.py +0 -0
  173. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/management/commands/task_clear.py +0 -0
  174. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/management/commands/task_status.py +0 -0
  175. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/management/commands/test_email.py +0 -0
  176. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/management/commands/test_telegram.py +0 -0
  177. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/management/commands/test_twilio.py +0 -0
  178. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/management/commands/tree.py +0 -0
  179. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/management/commands/validate_config.py +0 -0
  180. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/middleware/README.md +0 -0
  181. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/middleware/__init__.py +0 -0
  182. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/middleware/user_activity.py +0 -0
  183. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/models/__init__.py +0 -0
  184. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/models/cache.py +0 -0
  185. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/models/constance.py +0 -0
  186. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/models/database.py +0 -0
  187. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/models/drf.py +0 -0
  188. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/models/jwt.py +0 -0
  189. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/models/limits.py +0 -0
  190. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/models/ngrok.py +0 -0
  191. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/models/revolution.py +0 -0
  192. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/models/services.py +0 -0
  193. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/models/tasks.py +0 -0
  194. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/models/unfold.py +0 -0
  195. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/modules/__init__.py +0 -0
  196. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/modules/base.py +0 -0
  197. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/modules/django_currency/README.md +0 -0
  198. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/modules/django_currency/__init__.py +0 -0
  199. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/modules/django_currency/cache.py +0 -0
  200. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/modules/django_currency/converter.py +0 -0
  201. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/modules/django_currency/service.py +0 -0
  202. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/modules/django_email.py +0 -0
  203. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/modules/django_llm/README.md +0 -0
  204. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/modules/django_llm/__init__.py +0 -0
  205. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/modules/django_llm/example.py +0 -0
  206. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/modules/django_llm/llm/__init__.py +0 -0
  207. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/modules/django_llm/llm/cache.py +0 -0
  208. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/modules/django_llm/llm/client.py +0 -0
  209. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/modules/django_llm/llm/costs.py +0 -0
  210. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/modules/django_llm/llm/extractor.py +0 -0
  211. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/modules/django_llm/llm/models_cache.py +0 -0
  212. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/modules/django_llm/llm/tokenizer.py +0 -0
  213. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/modules/django_llm/translator/__init__.py +0 -0
  214. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/modules/django_llm/translator/cache.py +0 -0
  215. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/modules/django_llm/translator/translator.py +0 -0
  216. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/modules/django_logger.py +0 -0
  217. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/modules/django_ngrok.py +0 -0
  218. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/modules/django_telegram.py +0 -0
  219. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/modules/django_twilio/README.md +0 -0
  220. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/modules/django_twilio/__init__.py +0 -0
  221. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/modules/django_twilio/exceptions.py +0 -0
  222. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/modules/django_twilio/models.py +0 -0
  223. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/modules/django_twilio/sendgrid_service.py +0 -0
  224. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/modules/django_twilio/service.py +0 -0
  225. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/modules/django_twilio/simple_service.py +0 -0
  226. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/modules/django_twilio/templates/guide.md +0 -0
  227. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/modules/django_twilio/templates/sendgrid_otp_email.html +0 -0
  228. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/modules/django_twilio/templates/sendgrid_test_data.json +0 -0
  229. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/modules/django_twilio/twilio_service.py +0 -0
  230. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/modules/logger.py +0 -0
  231. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/modules/unfold/__init__.py +0 -0
  232. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/modules/unfold/callbacks.py +0 -0
  233. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/modules/unfold/dashboard.py +0 -0
  234. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/modules/unfold/models.py +0 -0
  235. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/modules/unfold/system_monitor.py +0 -0
  236. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/modules/unfold/tailwind.py +0 -0
  237. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/routers.py +0 -0
  238. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/templates/__init__.py +0 -0
  239. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/templates/admin/index.html +0 -0
  240. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/templates/admin/layouts/dashboard_with_tabs.html +0 -0
  241. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/templates/admin/snippets/components/activity_tracker.html +0 -0
  242. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/templates/admin/snippets/components/charts_section.html +0 -0
  243. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/templates/admin/snippets/components/django_commands.html +0 -0
  244. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/templates/admin/snippets/components/quick_actions.html +0 -0
  245. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/templates/admin/snippets/components/recent_activity.html +0 -0
  246. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/templates/admin/snippets/components/recent_users_table.html +0 -0
  247. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/templates/admin/snippets/components/stats_cards.html +0 -0
  248. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/templates/admin/snippets/components/stats_tiles.html +0 -0
  249. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/templates/admin/snippets/components/system_health.html +0 -0
  250. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/templates/admin/snippets/components/system_metrics.html +0 -0
  251. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/templates/admin/snippets/components/user_permissions.html +0 -0
  252. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/templates/admin/snippets/tabs/app_stats_tab.html +0 -0
  253. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/templates/admin/snippets/tabs/commands_tab.html +0 -0
  254. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/templates/admin/snippets/tabs/overview_tab.html +0 -0
  255. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/templates/admin/snippets/tabs/stats_tab.html +0 -0
  256. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/templates/admin/snippets/tabs/users_tab.html +0 -0
  257. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/templates/admin/snippets/zones/zones_table.html +0 -0
  258. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/templates/emails/base_email.html +0 -0
  259. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/utils/__init__.py +0 -0
  260. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/utils/path_resolution.py +0 -0
  261. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/utils/smart_defaults.py +0 -0
  262. {django_cfg-1.1.55 → django_cfg-1.1.58}/src/django_cfg/version_check.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: django-cfg
3
- Version: 1.1.55
3
+ Version: 1.1.58
4
4
  Summary: 🚀 Production-ready Django configuration framework with type-safe settings, smart automation, and modern developer experience
5
5
  Project-URL: Homepage, https://github.com/markolofsen/django-cfg
6
6
  Project-URL: Documentation, https://django-cfg.readthedocs.io
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "django-cfg"
7
- version = "1.1.55"
7
+ version = "1.1.58"
8
8
  description = "🚀 Production-ready Django configuration framework with type-safe settings, smart automation, and modern developer experience"
9
9
  readme = "README.md"
10
10
  license = {text = "MIT"}
@@ -38,7 +38,7 @@ default_app_config = "django_cfg.apps.DjangoCfgConfig"
38
38
  from typing import TYPE_CHECKING
39
39
 
40
40
  # Version information
41
- __version__ = "1.1.55"
41
+ __version__ = "1.1.58"
42
42
  __author__ = "Unrealos Team"
43
43
  __email__ = "info@unrealos.com"
44
44
  __license__ = "MIT"
@@ -192,9 +192,7 @@ class SettingsGenerator:
192
192
  for alias, db_config in config.databases.items():
193
193
  if db_config.has_routing_rules():
194
194
  for app in db_config.apps:
195
- # Extract app_label from full path (e.g., "apps.knowbase" -> "knowbase")
196
- app_label = app.split('.')[-1] if '.' in app else app
197
- routing_rules[app_label] = alias
195
+ routing_rules[app] = alias
198
196
 
199
197
  if routing_rules:
200
198
  settings["DATABASE_ROUTERS"] = ["django_cfg.routers.DatabaseRouter"]
@@ -143,8 +143,7 @@ class Command(BaseCommand):
143
143
  if options.get("pid_file"):
144
144
  args.extend(["--pid-file", options["pid_file"]])
145
145
 
146
- # Add broker (required positional argument)
147
- args.append("django_dramatiq.setup")
146
+ # Note: Using Python API instead of CLI, so no broker argument needed
148
147
 
149
148
  # Add discovered task modules
150
149
  discovered_modules = get_task_service().discover_tasks()
@@ -184,7 +183,7 @@ class Command(BaseCommand):
184
183
  self.stdout.write(f" {' '.join(worker_args)}")
185
184
 
186
185
  def _start_workers(self, worker_args, options):
187
- """Start Dramatiq workers."""
186
+ """Start Dramatiq workers using Python API instead of CLI."""
188
187
  self.stdout.write(
189
188
  self.style.SUCCESS("Starting Dramatiq workers...")
190
189
  )
@@ -193,9 +192,15 @@ class Command(BaseCommand):
193
192
  task_service = get_task_service()
194
193
  config = task_service.config
195
194
 
196
- self.stdout.write(f"Processes: {config.get_effective_processes()}")
197
- self.stdout.write(f"Threads: {config.dramatiq.threads}")
198
- self.stdout.write(f"Queues: {', '.join(config.get_effective_queues())}")
195
+ processes = options.get("processes") or config.get_effective_processes()
196
+ threads = options.get("threads") or config.dramatiq.threads
197
+ queues = config.get_effective_queues()
198
+ if options.get("queues"):
199
+ queues = [q.strip() for q in options["queues"].split(",")]
200
+
201
+ self.stdout.write(f"Processes: {processes}")
202
+ self.stdout.write(f"Threads: {threads}")
203
+ self.stdout.write(f"Queues: {', '.join(queues)}")
199
204
 
200
205
  # Write PID file if requested
201
206
  if options.get("pid_file"):
@@ -204,20 +209,26 @@ class Command(BaseCommand):
204
209
  self.stdout.write(f"PID written to: {options['pid_file']}")
205
210
 
206
211
  try:
207
- # Import and run dramatiq
212
+ # Import dramatiq and get broker
208
213
  import dramatiq
209
- from dramatiq.cli import main as dramatiq_main
214
+ from dramatiq.worker import Worker
215
+ from django_cfg.modules.django_tasks import get_dramatiq_broker
216
+
217
+ # Get the configured broker
218
+ broker = get_dramatiq_broker()
210
219
 
211
- # Replace sys.argv with our arguments
212
- original_argv = sys.argv[:]
213
- sys.argv = worker_args
220
+ # Discover and import task modules
221
+ discovered_modules = get_task_service().discover_tasks()
222
+ for module_name in discovered_modules:
223
+ try:
224
+ __import__(module_name)
225
+ self.stdout.write(f"Loaded tasks from: {module_name}")
226
+ except ImportError as e:
227
+ self.stdout.write(f"Warning: Could not import {module_name}: {e}")
214
228
 
215
- try:
216
- # Run dramatiq CLI
217
- dramatiq_main()
218
- finally:
219
- # Restore original argv
220
- sys.argv = original_argv
229
+ # Create and start worker
230
+ worker = Worker(broker, worker_timeout=600000)
231
+ worker.start()
221
232
 
222
233
  except KeyboardInterrupt:
223
234
  self.stdout.write("\nShutting down workers...")
@@ -712,6 +712,72 @@ def extend_constance_config_with_tasks():
712
712
  return []
713
713
 
714
714
 
715
+ # === Broker Creation ===
716
+
717
+ def create_dramatiq_broker():
718
+ """
719
+ Create and configure Dramatiq broker from Django settings.
720
+
721
+ This function creates a broker instance that can be used directly
722
+ by the Dramatiq CLI without requiring a separate broker.py file.
723
+
724
+ Returns:
725
+ dramatiq.Broker: Configured Dramatiq broker instance
726
+ """
727
+ try:
728
+ from django.conf import settings
729
+
730
+ if not hasattr(settings, 'DRAMATIQ_BROKER'):
731
+ raise RuntimeError("DRAMATIQ_BROKER not configured in Django settings")
732
+
733
+ broker_config = settings.DRAMATIQ_BROKER
734
+
735
+ # Create broker from Django settings
736
+ broker = RedisBroker(**broker_config['OPTIONS'])
737
+
738
+ # Add middleware (only if not already present)
739
+ existing_middleware_types = {type(mw).__name__ for mw in broker.middleware}
740
+
741
+ for middleware_path in broker_config['MIDDLEWARE']:
742
+ try:
743
+ module_path, class_name = middleware_path.rsplit('.', 1)
744
+
745
+ # Skip if middleware of this type already exists
746
+ if class_name in existing_middleware_types:
747
+ continue
748
+
749
+ module = __import__(module_path, fromlist=[class_name])
750
+ middleware_class = getattr(module, class_name)
751
+ broker.add_middleware(middleware_class())
752
+ except Exception as e:
753
+ logger.warning(f"Failed to add middleware {middleware_path}: {e}")
754
+
755
+ return broker
756
+
757
+ except Exception as e:
758
+ logger.error(f"Failed to create Dramatiq broker: {e}")
759
+ raise
760
+
761
+
762
+ # Global broker instance (lazy-loaded)
763
+ _broker_instance = None
764
+
765
+
766
+ def get_dramatiq_broker():
767
+ """
768
+ Get the global Dramatiq broker instance.
769
+
770
+ Returns:
771
+ dramatiq.Broker: The singleton broker instance
772
+ """
773
+ global _broker_instance
774
+
775
+ if _broker_instance is None:
776
+ _broker_instance = create_dramatiq_broker()
777
+
778
+ return _broker_instance
779
+
780
+
715
781
  # === Exports ===
716
782
 
717
783
  __all__ = [
@@ -725,4 +791,6 @@ __all__ = [
725
791
  "extend_constance_config_with_tasks",
726
792
  "initialize_task_system",
727
793
  "clear_dramatiq_queues",
794
+ "create_dramatiq_broker",
795
+ "get_dramatiq_broker",
728
796
  ]
File without changes
File without changes
File without changes
File without changes