django-cfg 1.3.13__py3-none-any.whl → 1.4.3__py3-none-any.whl

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 (446) hide show
  1. django_cfg/__init__.py +1 -1
  2. django_cfg/apps/accounts/admin/user_admin.py +39 -16
  3. django_cfg/apps/accounts/serializers/profile.py +1 -1
  4. django_cfg/apps/accounts/services/otp_service.py +18 -11
  5. django_cfg/apps/accounts/signals.py +15 -24
  6. django_cfg/apps/accounts/utils/notifications.py +217 -358
  7. django_cfg/apps/accounts/views/otp.py +2 -2
  8. django_cfg/apps/accounts/views/webhook.py +1 -1
  9. django_cfg/apps/agents/core/django_agent.py +1 -1
  10. django_cfg/apps/agents/examples/__init__.py +3 -0
  11. django_cfg/apps/agents/examples/simple_example.py +161 -0
  12. django_cfg/apps/api/commands/views.py +66 -83
  13. django_cfg/apps/api/health/drf_views.py +269 -0
  14. django_cfg/apps/api/health/serializers.py +45 -0
  15. django_cfg/apps/api/health/urls.py +6 -1
  16. django_cfg/apps/knowbase/admin/actions/__init__.py +13 -0
  17. django_cfg/apps/knowbase/admin/actions/visibility_actions.py +56 -0
  18. django_cfg/apps/knowbase/admin/document_admin.py +136 -270
  19. django_cfg/apps/knowbase/admin/helpers/__init__.py +17 -0
  20. django_cfg/apps/knowbase/admin/helpers/configs.py +72 -0
  21. django_cfg/apps/knowbase/admin/helpers/display_helpers.py +156 -0
  22. django_cfg/apps/knowbase/admin/helpers/statistics.py +108 -0
  23. django_cfg/apps/knowbase/config/constance_fields.py +1 -1
  24. django_cfg/apps/knowbase/config/settings.py +2 -2
  25. django_cfg/apps/knowbase/examples/__init__.py +3 -0
  26. django_cfg/apps/knowbase/examples/external_data_usage.py +191 -0
  27. django_cfg/apps/knowbase/mixins/__init__.py +19 -2
  28. django_cfg/apps/knowbase/mixins/config/__init__.py +14 -0
  29. django_cfg/apps/knowbase/mixins/config/defaults.py +75 -0
  30. django_cfg/apps/knowbase/mixins/config/meta_config.py +120 -0
  31. django_cfg/apps/knowbase/mixins/creator.py +10 -10
  32. django_cfg/apps/knowbase/mixins/examples/vehicle_model_example.py +199 -0
  33. django_cfg/apps/knowbase/mixins/external_data_mixin.py +105 -403
  34. django_cfg/apps/knowbase/mixins/generators/__init__.py +16 -0
  35. django_cfg/apps/knowbase/mixins/generators/content_generator.py +218 -0
  36. django_cfg/apps/knowbase/mixins/generators/field_analyzer.py +76 -0
  37. django_cfg/apps/knowbase/mixins/generators/metadata_generator.py +124 -0
  38. django_cfg/apps/knowbase/mixins/service.py +2 -2
  39. django_cfg/apps/knowbase/services/archive/__init__.py +1 -0
  40. django_cfg/apps/knowbase/services/archive/analyzers/__init__.py +17 -0
  41. django_cfg/apps/knowbase/services/archive/analyzers/complexity_analyzer.py +33 -0
  42. django_cfg/apps/knowbase/services/archive/analyzers/purpose_detector.py +36 -0
  43. django_cfg/apps/knowbase/services/archive/analyzers/quality_analyzer.py +39 -0
  44. django_cfg/apps/knowbase/services/archive/analyzers/tag_generator.py +103 -0
  45. django_cfg/apps/knowbase/services/archive/chunking/__init__.py +19 -0
  46. django_cfg/apps/knowbase/services/archive/chunking/base.py +81 -0
  47. django_cfg/apps/knowbase/services/archive/chunking/json_chunker.py +62 -0
  48. django_cfg/apps/knowbase/services/archive/chunking/markdown_chunker.py +107 -0
  49. django_cfg/apps/knowbase/services/archive/chunking/python_chunker.py +248 -0
  50. django_cfg/apps/knowbase/services/archive/chunking/text_chunker.py +70 -0
  51. django_cfg/apps/knowbase/services/archive/chunking_service.py +110 -729
  52. django_cfg/apps/knowbase/services/archive/context/__init__.py +14 -0
  53. django_cfg/apps/knowbase/services/archive/context/builders.py +220 -0
  54. django_cfg/apps/knowbase/services/archive/context/models.py +38 -0
  55. django_cfg/apps/knowbase/services/embedding/models.py +18 -14
  56. django_cfg/apps/knowbase/services/embedding/processors.py +6 -3
  57. django_cfg/apps/knowbase/tasks/document_processing.py +11 -3
  58. django_cfg/apps/leads/tests.py +1 -1
  59. django_cfg/apps/payments/admin/api_keys_admin.py +1 -1
  60. django_cfg/apps/payments/admin/balance_admin.py +1 -1
  61. django_cfg/apps/payments/admin/currencies_admin.py +1 -1
  62. django_cfg/apps/payments/admin/payments_admin.py +1 -1
  63. django_cfg/apps/payments/admin/subscriptions_admin.py +1 -1
  64. django_cfg/apps/payments/admin_interface/templates/payments/base.html +59 -126
  65. django_cfg/apps/payments/admin_interface/views/api/payments.py +1 -1
  66. django_cfg/apps/payments/admin_interface/views/api/stats.py +1 -1
  67. django_cfg/apps/payments/admin_interface/views/api/users.py +1 -1
  68. django_cfg/apps/payments/admin_interface/views/api/webhook_admin.py +1 -1
  69. django_cfg/apps/payments/admin_interface/views/api/webhook_public.py +1 -1
  70. django_cfg/apps/payments/admin_interface/views/base.py +29 -2
  71. django_cfg/apps/payments/apps.py +1 -1
  72. django_cfg/apps/payments/config/django_cfg_integration.py +2 -2
  73. django_cfg/apps/payments/config/helpers.py +3 -2
  74. django_cfg/apps/payments/management/commands/cleanup_expired_data.py +1 -1
  75. django_cfg/apps/payments/management/commands/currency_stats.py +1 -1
  76. django_cfg/apps/payments/management/commands/manage_currencies.py +1 -1
  77. django_cfg/apps/payments/management/commands/manage_providers.py +1 -1
  78. django_cfg/apps/payments/management/commands/process_pending_payments.py +1 -1
  79. django_cfg/apps/payments/management/commands/test_providers.py +1 -1
  80. django_cfg/apps/payments/middleware/api_access.py +1 -1
  81. django_cfg/apps/payments/middleware/rate_limiting.py +1 -1
  82. django_cfg/apps/payments/middleware/usage_tracking.py +1 -1
  83. django_cfg/apps/payments/models/balance.py +2 -2
  84. django_cfg/apps/payments/models/managers/api_key_managers.py +1 -1
  85. django_cfg/apps/payments/models/managers/balance_managers.py +1 -1
  86. django_cfg/apps/payments/models/managers/currency_managers.py +1 -1
  87. django_cfg/apps/payments/models/managers/payment_managers.py +1 -1
  88. django_cfg/apps/payments/models/managers/subscription_managers.py +1 -1
  89. django_cfg/apps/payments/models/payments.py +2 -2
  90. django_cfg/apps/payments/services/cache_service/__init__.py +1 -1
  91. django_cfg/apps/payments/services/cache_service/simple_cache.py +10 -5
  92. django_cfg/apps/payments/services/core/base.py +1 -1
  93. django_cfg/apps/payments/services/core/currency/__init__.py +13 -0
  94. django_cfg/apps/payments/services/core/currency/currency_converter.py +57 -0
  95. django_cfg/apps/payments/services/core/currency/currency_validator.py +61 -0
  96. django_cfg/apps/payments/services/core/operations/__init__.py +15 -0
  97. django_cfg/apps/payments/services/core/operations/payment_canceller.py +100 -0
  98. django_cfg/apps/payments/services/core/operations/payment_creator.py +196 -0
  99. django_cfg/apps/payments/services/core/operations/status_checker.py +100 -0
  100. django_cfg/apps/payments/services/core/payment_service.py +124 -612
  101. django_cfg/apps/payments/services/core/providers/__init__.py +13 -0
  102. django_cfg/apps/payments/services/core/providers/provider_client.py +132 -0
  103. django_cfg/apps/payments/services/core/providers/status_mapper.py +89 -0
  104. django_cfg/apps/payments/services/core/utils/__init__.py +13 -0
  105. django_cfg/apps/payments/services/core/utils/data_converter.py +48 -0
  106. django_cfg/apps/payments/services/core/utils/statistics_calculator.py +69 -0
  107. django_cfg/apps/payments/services/providers/base.py +1 -1
  108. django_cfg/apps/payments/services/providers/nowpayments/__init__.py +3 -3
  109. django_cfg/apps/payments/services/providers/nowpayments/parsers/__init__.py +9 -0
  110. django_cfg/apps/payments/services/providers/nowpayments/parsers/data/__init__.py +23 -0
  111. django_cfg/apps/payments/services/providers/nowpayments/parsers/data/constants.py +23 -0
  112. django_cfg/apps/payments/services/providers/nowpayments/parsers/data/currency_names.py +244 -0
  113. django_cfg/apps/payments/services/providers/nowpayments/parsers/data/patterns.py +511 -0
  114. django_cfg/apps/payments/services/providers/nowpayments/parsers/parser.py +168 -0
  115. django_cfg/apps/payments/services/providers/nowpayments/provider.py +1 -1
  116. django_cfg/apps/payments/services/providers/nowpayments/sync.py +1 -1
  117. django_cfg/apps/payments/services/providers/registry.py +1 -1
  118. django_cfg/apps/payments/services/providers/sync_service.py +1 -1
  119. django_cfg/apps/payments/signals/__init__.py +1 -1
  120. django_cfg/apps/payments/signals/api_key_signals.py +1 -1
  121. django_cfg/apps/payments/signals/balance_signals.py +1 -1
  122. django_cfg/apps/payments/signals/payment_signals.py +1 -1
  123. django_cfg/apps/payments/signals/subscription_signals.py +1 -1
  124. django_cfg/apps/payments/views/api/api_keys.py +1 -1
  125. django_cfg/apps/payments/views/api/balances.py +1 -1
  126. django_cfg/apps/payments/views/api/base.py +1 -1
  127. django_cfg/apps/payments/views/api/currencies.py +1 -1
  128. django_cfg/apps/payments/views/api/payments.py +1 -1
  129. django_cfg/apps/payments/views/api/subscriptions.py +1 -1
  130. django_cfg/apps/payments/views/api/webhooks.py +1 -1
  131. django_cfg/apps/payments/views/serializers/api_keys.py +1 -1
  132. django_cfg/apps/payments/views/serializers/balances.py +1 -1
  133. django_cfg/apps/payments/views/serializers/currencies.py +1 -1
  134. django_cfg/apps/payments/views/serializers/payments.py +1 -1
  135. django_cfg/apps/payments/views/serializers/subscriptions.py +1 -1
  136. django_cfg/apps/payments/views/serializers/webhooks.py +1 -1
  137. django_cfg/apps/support/admin/support_admin.py +21 -13
  138. django_cfg/apps/support/templates/support/chat/access_denied.html +21 -27
  139. django_cfg/apps/support/templates/support/chat/ticket_chat.html +183 -254
  140. django_cfg/apps/support/utils/support_email_service.py +1 -1
  141. django_cfg/apps/tasks/templates/tasks/layout/base.html +20 -115
  142. django_cfg/apps/tasks/utils/simulator.py +1 -1
  143. django_cfg/apps/tasks/views/dashboard.py +33 -3
  144. django_cfg/apps/urls.py +5 -1
  145. django_cfg/cli/README.md +57 -471
  146. django_cfg/cli/commands/create_project.py +140 -529
  147. django_cfg/cli/main.py +13 -10
  148. django_cfg/core/__init__.py +63 -6
  149. django_cfg/core/base/__init__.py +5 -0
  150. django_cfg/core/base/config_model.py +652 -0
  151. django_cfg/core/builders/__init__.py +11 -0
  152. django_cfg/core/builders/apps_builder.py +258 -0
  153. django_cfg/core/builders/middleware_builder.py +115 -0
  154. django_cfg/core/builders/security_builder.py +96 -0
  155. django_cfg/core/config.py +20 -892
  156. django_cfg/core/constants.py +69 -0
  157. django_cfg/core/environment/__init__.py +9 -0
  158. django_cfg/core/exceptions.py +45 -298
  159. django_cfg/core/generation/__init__.py +51 -0
  160. django_cfg/core/generation/core_generators/__init__.py +0 -0
  161. django_cfg/core/generation/core_generators/settings.py +90 -0
  162. django_cfg/core/generation/core_generators/static.py +82 -0
  163. django_cfg/core/generation/core_generators/templates.py +141 -0
  164. django_cfg/core/generation/data_generators/__init__.py +15 -0
  165. django_cfg/core/generation/data_generators/cache.py +132 -0
  166. django_cfg/core/generation/data_generators/database.py +117 -0
  167. django_cfg/core/generation/generation.py +92 -0
  168. django_cfg/core/generation/integration_generators/__init__.py +21 -0
  169. django_cfg/core/generation/integration_generators/api.py +237 -0
  170. django_cfg/core/generation/integration_generators/sessions.py +65 -0
  171. django_cfg/core/generation/integration_generators/tailwind.py +54 -0
  172. django_cfg/core/generation/integration_generators/tasks.py +92 -0
  173. django_cfg/core/generation/integration_generators/third_party.py +144 -0
  174. django_cfg/core/generation/orchestrator.py +285 -0
  175. django_cfg/core/generation/protocols.py +30 -0
  176. django_cfg/core/generation/security_generators/__init__.py +0 -0
  177. django_cfg/core/generation/utility_generators/__init__.py +24 -0
  178. django_cfg/core/generation/utility_generators/email.py +58 -0
  179. django_cfg/core/generation/utility_generators/i18n.py +66 -0
  180. django_cfg/core/generation/utility_generators/limits.py +58 -0
  181. django_cfg/core/generation/utility_generators/logging.py +66 -0
  182. django_cfg/core/generation/utility_generators/security.py +101 -0
  183. django_cfg/core/generation/utils/__init__.py +0 -0
  184. django_cfg/core/generation/utils/helpers.py +32 -0
  185. django_cfg/core/integration/__init__.py +18 -25
  186. django_cfg/core/integration/display/startup.py +146 -133
  187. django_cfg/core/integration/url_integration.py +13 -2
  188. django_cfg/core/services/__init__.py +5 -0
  189. django_cfg/core/services/config_service.py +121 -0
  190. django_cfg/core/state/__init__.py +9 -0
  191. django_cfg/core/state/registry.py +84 -0
  192. django_cfg/core/types/__init__.py +15 -0
  193. django_cfg/core/types/aliases.py +15 -0
  194. django_cfg/core/types/enums.py +49 -0
  195. django_cfg/dashboard/DEBUG_README.md +105 -0
  196. django_cfg/dashboard/REFACTORING_SUMMARY.md +237 -0
  197. django_cfg/dashboard/__init__.py +24 -0
  198. django_cfg/dashboard/components.py +308 -0
  199. django_cfg/dashboard/debug.py +176 -0
  200. django_cfg/dashboard/management/__init__.py +0 -0
  201. django_cfg/dashboard/management/commands/__init__.py +0 -0
  202. django_cfg/dashboard/management/commands/debug_dashboard.py +109 -0
  203. django_cfg/dashboard/sections/__init__.py +1 -0
  204. django_cfg/dashboard/sections/base.py +128 -0
  205. django_cfg/dashboard/sections/commands.py +32 -0
  206. django_cfg/dashboard/sections/overview.py +394 -0
  207. django_cfg/dashboard/sections/stats.py +48 -0
  208. django_cfg/dashboard/sections/system.py +73 -0
  209. django_cfg/management/commands/check_settings.py +6 -2
  210. django_cfg/management/commands/clear_constance.py +6 -1
  211. django_cfg/management/commands/create_token.py +5 -4
  212. django_cfg/management/commands/generate.py +5 -0
  213. django_cfg/management/commands/list_urls.py +7 -2
  214. django_cfg/management/commands/migrate_all.py +6 -2
  215. django_cfg/management/commands/migrator.py +6 -1
  216. django_cfg/management/commands/rundramatiq.py +6 -1
  217. django_cfg/management/commands/rundramatiq_simulator.py +11 -4
  218. django_cfg/management/commands/runserver_ngrok.py +9 -7
  219. django_cfg/management/commands/script.py +25 -21
  220. django_cfg/management/commands/show_config.py +6 -1
  221. django_cfg/management/commands/show_urls.py +8 -3
  222. django_cfg/management/commands/superuser.py +5 -4
  223. django_cfg/management/commands/task_clear.py +8 -3
  224. django_cfg/management/commands/task_status.py +8 -3
  225. django_cfg/management/commands/test_email.py +6 -1
  226. django_cfg/management/commands/test_telegram.py +6 -1
  227. django_cfg/management/commands/test_twilio.py +6 -1
  228. django_cfg/management/commands/tree.py +7 -4
  229. django_cfg/models/__init__.py +88 -3
  230. django_cfg/models/api/__init__.py +27 -0
  231. django_cfg/models/{api.py → api/config.py} +1 -1
  232. django_cfg/models/api/drf/__init__.py +21 -0
  233. django_cfg/models/api/drf/config.py +101 -0
  234. django_cfg/models/api/drf/redoc.py +31 -0
  235. django_cfg/models/api/drf/spectacular.py +129 -0
  236. django_cfg/models/api/drf/swagger.py +59 -0
  237. django_cfg/models/{api_keys.py → api/keys.py} +16 -6
  238. django_cfg/models/{limits.py → api/limits.py} +0 -1
  239. django_cfg/models/base/__init__.py +14 -0
  240. django_cfg/models/django/__init__.py +16 -0
  241. django_cfg/models/{constance.py → django/constance.py} +1 -1
  242. django_cfg/models/{environment.py → django/environment.py} +1 -1
  243. django_cfg/models/infrastructure/__init__.py +17 -0
  244. django_cfg/models/{cache.py → infrastructure/cache.py} +3 -2
  245. django_cfg/models/infrastructure/database/__init__.py +22 -0
  246. django_cfg/models/infrastructure/database/config.py +265 -0
  247. django_cfg/models/infrastructure/database/converters.py +91 -0
  248. django_cfg/models/infrastructure/database/parsers.py +96 -0
  249. django_cfg/models/infrastructure/database/routing.py +85 -0
  250. django_cfg/models/infrastructure/database/validators.py +170 -0
  251. django_cfg/models/{logging.py → infrastructure/logging.py} +1 -1
  252. django_cfg/models/{security.py → infrastructure/security.py} +2 -2
  253. django_cfg/models/ngrok/__init__.py +11 -0
  254. django_cfg/models/ngrok/auth.py +37 -0
  255. django_cfg/models/ngrok/config.py +77 -0
  256. django_cfg/models/ngrok/tunnel.py +35 -0
  257. django_cfg/models/payments/__init__.py +20 -0
  258. django_cfg/models/payments/api_keys.py +57 -0
  259. django_cfg/models/{payments.py → payments/config.py} +56 -154
  260. django_cfg/models/payments/providers/__init__.py +15 -0
  261. django_cfg/models/payments/providers/base.py +25 -0
  262. django_cfg/models/payments/providers/nowpayments.py +48 -0
  263. django_cfg/models/services/__init__.py +18 -0
  264. django_cfg/models/services/base.py +65 -0
  265. django_cfg/models/{email.py → services/email.py} +1 -1
  266. django_cfg/models/services/telegram.py +172 -0
  267. django_cfg/models/tasks/__init__.py +51 -0
  268. django_cfg/models/tasks/backends.py +250 -0
  269. django_cfg/models/tasks/config.py +314 -0
  270. django_cfg/models/tasks/utils.py +174 -0
  271. django_cfg/modules/base.py +18 -3
  272. django_cfg/modules/django_admin/decorators/actions.py +1 -1
  273. django_cfg/modules/django_admin/decorators/display.py +1 -1
  274. django_cfg/modules/django_admin/mixins/standalone_actions_mixin.py +1 -1
  275. django_cfg/modules/django_currency/examples/__init__.py +3 -0
  276. django_cfg/modules/django_currency/examples/example_database_usage.py +144 -0
  277. django_cfg/modules/django_drf_theme/CHANGELOG.md +210 -0
  278. django_cfg/modules/django_drf_theme/EXAMPLE.md +465 -0
  279. django_cfg/modules/django_drf_theme/IMPLEMENTATION.md +232 -0
  280. django_cfg/modules/django_drf_theme/README.md +207 -0
  281. django_cfg/modules/django_drf_theme/TAILWIND_CDN_GUIDE.md +274 -0
  282. django_cfg/modules/django_drf_theme/__init__.py +23 -0
  283. django_cfg/modules/django_drf_theme/apps.py +15 -0
  284. django_cfg/modules/django_drf_theme/renderers.py +58 -0
  285. django_cfg/modules/django_drf_theme/templates/rest_framework/tailwind/api.html +375 -0
  286. django_cfg/modules/django_drf_theme/templates/rest_framework/tailwind/base.html +938 -0
  287. django_cfg/modules/django_drf_theme/templates/rest_framework/tailwind/forms/filter_form.html +132 -0
  288. django_cfg/modules/django_drf_theme/templates/rest_framework/tailwind/forms/raw_data_form.html +123 -0
  289. django_cfg/modules/django_drf_theme/templatetags/__init__.py +1 -0
  290. django_cfg/modules/django_drf_theme/templatetags/tailwind_tags.py +57 -0
  291. django_cfg/modules/django_email/__init__.py +14 -0
  292. django_cfg/modules/{django_email.py → django_email/service.py} +78 -113
  293. django_cfg/modules/django_email/utils.py +40 -0
  294. django_cfg/modules/django_health/__init__.py +9 -0
  295. django_cfg/modules/{django_health.py → django_health/service.py} +23 -21
  296. django_cfg/modules/django_ipc_client/README.md +346 -0
  297. django_cfg/modules/django_ipc_client/__init__.py +51 -0
  298. django_cfg/modules/django_ipc_client/client.py +540 -0
  299. django_cfg/modules/django_ipc_client/config.py +207 -0
  300. django_cfg/modules/django_ipc_client/dashboard/README.md +517 -0
  301. django_cfg/modules/django_ipc_client/dashboard/UNFOLD_INTEGRATION.md +439 -0
  302. django_cfg/modules/django_ipc_client/dashboard/__init__.py +11 -0
  303. django_cfg/modules/django_ipc_client/dashboard/apps.py +22 -0
  304. django_cfg/modules/django_ipc_client/dashboard/monitor.py +435 -0
  305. django_cfg/modules/django_ipc_client/dashboard/static/django_ipc_dashboard/js/dashboard.js +373 -0
  306. django_cfg/modules/django_ipc_client/dashboard/templates/django_ipc_dashboard/base.html +76 -0
  307. django_cfg/modules/django_ipc_client/dashboard/templates/django_ipc_dashboard/dashboard.html +200 -0
  308. django_cfg/modules/django_ipc_client/dashboard/urls.py +22 -0
  309. django_cfg/modules/django_ipc_client/dashboard/urls_admin.py +9 -0
  310. django_cfg/modules/django_ipc_client/dashboard/views.py +251 -0
  311. django_cfg/modules/django_ipc_client/exceptions.py +201 -0
  312. django_cfg/modules/django_llm/llm/client.py +155 -550
  313. django_cfg/modules/django_llm/llm/embeddings/__init__.py +13 -0
  314. django_cfg/modules/django_llm/llm/embeddings/mock_embedder.py +106 -0
  315. django_cfg/modules/django_llm/llm/embeddings/openai_embedder.py +79 -0
  316. django_cfg/modules/django_llm/llm/models_api/__init__.py +9 -0
  317. django_cfg/modules/django_llm/llm/models_api/models_query.py +163 -0
  318. django_cfg/modules/django_llm/llm/providers/__init__.py +15 -0
  319. django_cfg/modules/django_llm/llm/providers/config_builder.py +103 -0
  320. django_cfg/modules/django_llm/llm/providers/provider_manager.py +148 -0
  321. django_cfg/modules/django_llm/llm/providers/provider_selector.py +60 -0
  322. django_cfg/modules/django_llm/llm/requests/__init__.py +15 -0
  323. django_cfg/modules/django_llm/llm/requests/cache_manager.py +170 -0
  324. django_cfg/modules/django_llm/llm/requests/chat_handler.py +199 -0
  325. django_cfg/modules/django_llm/llm/requests/embedding_handler.py +113 -0
  326. django_cfg/modules/django_llm/llm/responses/__init__.py +9 -0
  327. django_cfg/modules/django_llm/llm/responses/response_builder.py +131 -0
  328. django_cfg/modules/django_llm/llm/stats/__init__.py +9 -0
  329. django_cfg/modules/django_llm/llm/stats/stats_manager.py +107 -0
  330. django_cfg/modules/django_llm/translator/detectors/__init__.py +13 -0
  331. django_cfg/modules/django_llm/translator/detectors/language_detector.py +90 -0
  332. django_cfg/modules/django_llm/translator/detectors/script_detector.py +153 -0
  333. django_cfg/modules/django_llm/translator/stats/__init__.py +11 -0
  334. django_cfg/modules/django_llm/translator/stats/stats_tracker.py +85 -0
  335. django_cfg/modules/django_llm/translator/translator.py +150 -603
  336. django_cfg/modules/django_llm/translator/translators/__init__.py +15 -0
  337. django_cfg/modules/django_llm/translator/translators/json_translator.py +316 -0
  338. django_cfg/modules/django_llm/translator/translators/text_translator.py +139 -0
  339. django_cfg/modules/django_llm/translator/utils/__init__.py +13 -0
  340. django_cfg/modules/django_llm/translator/utils/prompt_builder.py +110 -0
  341. django_cfg/modules/django_llm/translator/utils/text_utils.py +114 -0
  342. django_cfg/modules/django_logging/FIXES_SUMMARY.md +276 -0
  343. django_cfg/modules/django_logging/LOGGING_GUIDE.md +504 -0
  344. django_cfg/modules/django_logging/__init__.py +14 -0
  345. django_cfg/modules/{django_logger.py → django_logging/django_logger.py} +13 -13
  346. django_cfg/modules/{logger.py → django_logging/logger.py} +14 -4
  347. django_cfg/modules/django_ngrok/__init__.py +39 -0
  348. django_cfg/modules/{django_ngrok.py → django_ngrok/service.py} +14 -42
  349. django_cfg/modules/django_rpc_old/POETRY.md +344 -0
  350. django_cfg/modules/django_rpc_old/README.md +397 -0
  351. django_cfg/modules/django_rpc_old/TESTING.md +358 -0
  352. django_cfg/modules/django_rpc_old/__init__.py +39 -0
  353. django_cfg/modules/django_rpc_old/client.py +531 -0
  354. django_cfg/modules/django_rpc_old/config.py +279 -0
  355. django_cfg/modules/django_rpc_old/exceptions.py +172 -0
  356. django_cfg/modules/django_tailwind/README.md +478 -0
  357. django_cfg/modules/django_tailwind/__init__.py +7 -0
  358. django_cfg/modules/django_tailwind/apps.py +10 -0
  359. django_cfg/modules/django_tailwind/templates/django_tailwind/app.html +5 -0
  360. django_cfg/modules/django_tailwind/templates/django_tailwind/base.html +117 -0
  361. django_cfg/modules/django_tailwind/templates/django_tailwind/components/navbar.html +124 -0
  362. django_cfg/modules/django_tailwind/templates/django_tailwind/components/theme_toggle.html +54 -0
  363. django_cfg/modules/django_tailwind/templates/django_tailwind/components/user_menu.html +116 -0
  364. django_cfg/modules/django_tailwind/templates/django_tailwind/simple.html +46 -0
  365. django_cfg/modules/django_tailwind/templatetags/__init__.py +1 -0
  366. django_cfg/modules/django_tailwind/templatetags/tailwind_info.py +185 -0
  367. django_cfg/modules/django_tasks/__init__.py +29 -0
  368. django_cfg/modules/django_tasks/factory.py +127 -0
  369. django_cfg/modules/{django_tasks.py → django_tasks/service.py} +45 -274
  370. django_cfg/modules/django_tasks/settings.py +107 -0
  371. django_cfg/modules/django_telegram/__init__.py +29 -0
  372. django_cfg/modules/{django_telegram.py → django_telegram/service.py} +45 -113
  373. django_cfg/modules/django_telegram/utils.py +62 -0
  374. django_cfg/modules/django_twilio/__init__.py +54 -107
  375. django_cfg/modules/django_twilio/_imports.py +30 -0
  376. django_cfg/modules/django_twilio/base.py +192 -0
  377. django_cfg/modules/django_twilio/email_otp.py +227 -0
  378. django_cfg/modules/django_twilio/sendgrid_service.py +1 -1
  379. django_cfg/modules/django_twilio/simple_service.py +1 -2
  380. django_cfg/modules/django_twilio/sms.py +94 -0
  381. django_cfg/modules/django_twilio/twilio_service.py +2 -3
  382. django_cfg/modules/django_twilio/unified.py +310 -0
  383. django_cfg/modules/django_twilio/utils.py +190 -0
  384. django_cfg/modules/django_twilio/whatsapp.py +137 -0
  385. django_cfg/modules/django_unfold/callbacks/base.py +198 -7
  386. django_cfg/modules/django_unfold/callbacks/main.py +102 -10
  387. django_cfg/modules/django_unfold/dashboard.py +65 -43
  388. django_cfg/modules/django_unfold/models/config.py +13 -12
  389. django_cfg/modules/django_unfold/models/navigation.py +8 -3
  390. django_cfg/modules/django_unfold/models/tabs.py +2 -2
  391. django_cfg/modules/django_unfold/templates/unfold/helpers/app_list.html +102 -0
  392. django_cfg/registry/core.py +24 -26
  393. django_cfg/registry/modules.py +5 -2
  394. django_cfg/registry/services.py +20 -3
  395. django_cfg/registry/third_party.py +8 -8
  396. django_cfg/static/admin/css/dashboard.css +260 -0
  397. django_cfg/static/admin/js/commands.js +171 -0
  398. django_cfg/static/admin/js/dashboard.js +126 -0
  399. django_cfg/templates/admin/components/management_commands.js +375 -0
  400. django_cfg/templates/admin/components/progress_bar.html +18 -23
  401. django_cfg/templates/admin/examples/component_class_example.html +156 -0
  402. django_cfg/templates/admin/index.html +48 -20
  403. django_cfg/templates/admin/index_new.html +106 -0
  404. django_cfg/templates/admin/layouts/base_dashboard.html +60 -0
  405. django_cfg/templates/admin/layouts/dashboard_with_tabs.html +1 -20
  406. django_cfg/templates/admin/sections/commands_section.html +626 -0
  407. django_cfg/templates/admin/sections/overview_section.html +112 -0
  408. django_cfg/templates/admin/sections/stats_section.html +35 -0
  409. django_cfg/templates/admin/sections/system_section.html +99 -0
  410. django_cfg/templates/admin/snippets/components/CHARTS_GUIDE.md +322 -0
  411. django_cfg/templates/admin/snippets/components/activity_tracker.html +85 -47
  412. django_cfg/templates/admin/snippets/components/charts_section.html +154 -64
  413. django_cfg/templates/admin/snippets/components/django_commands.html +3 -3
  414. django_cfg/templates/admin/snippets/components/recent_activity_improved.html +25 -0
  415. django_cfg/templates/admin/snippets/components/recent_users_table.html +1 -1
  416. django_cfg/templates/admin/snippets/components/system_metrics.html +179 -93
  417. django_cfg/templates/admin/snippets/zones/zones_table.html +2 -2
  418. django_cfg/templatetags/django_cfg.py +7 -1
  419. django_cfg/utils/smart_defaults.py +4 -4
  420. django_cfg-1.4.3.dist-info/METADATA +533 -0
  421. {django_cfg-1.3.13.dist-info → django_cfg-1.4.3.dist-info}/RECORD +432 -195
  422. django_cfg/apps/accounts/utils/auth_email_service.py +0 -84
  423. django_cfg/apps/payments/services/providers/nowpayments/parsers.py +0 -879
  424. django_cfg/core/generation.py +0 -621
  425. django_cfg/management/commands/validate_config.py +0 -189
  426. django_cfg/models/database.py +0 -480
  427. django_cfg/models/drf.py +0 -272
  428. django_cfg/models/ngrok.py +0 -122
  429. django_cfg/models/services.py +0 -440
  430. django_cfg/models/tasks.py +0 -550
  431. django_cfg/modules/django_twilio/service.py +0 -942
  432. django_cfg/template_archive/django_sample.zip +0 -0
  433. django_cfg/templates/rest_framework/api.html +0 -12
  434. django_cfg/utils/toolkit.py +0 -703
  435. django_cfg-1.3.13.dist-info/METADATA +0 -1029
  436. /django_cfg/apps/accounts/management/commands/{test_otp.py → otp_test.py} +0 -0
  437. /django_cfg/core/{environment.py → environment/detector.py} +0 -0
  438. /django_cfg/models/{cors.py → api/cors.py} +0 -0
  439. /django_cfg/models/{jwt.py → api/jwt.py} +0 -0
  440. /django_cfg/models/{base.py → base/config.py} +0 -0
  441. /django_cfg/models/{cfg.py → base/module.py} +0 -0
  442. /django_cfg/models/{revolution.py → django/revolution.py} +0 -0
  443. /django_cfg/modules/{dramatiq_setup.py → django_tasks/dramatiq_setup.py} +0 -0
  444. {django_cfg-1.3.13.dist-info → django_cfg-1.4.3.dist-info}/WHEEL +0 -0
  445. {django_cfg-1.3.13.dist-info → django_cfg-1.4.3.dist-info}/entry_points.txt +0 -0
  446. {django_cfg-1.3.13.dist-info → django_cfg-1.4.3.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,15 @@
1
+ """Core type definitions for django-cfg."""
2
+
3
+ from .enums import EnvironmentMode, StartupInfoMode
4
+ from .aliases import EnvironmentString, DatabaseAlias, AppLabel, MiddlewareLabel, UrlPath, UrlPattern
5
+
6
+ __all__ = [
7
+ "EnvironmentMode",
8
+ "StartupInfoMode",
9
+ "EnvironmentString",
10
+ "DatabaseAlias",
11
+ "AppLabel",
12
+ "MiddlewareLabel",
13
+ "UrlPath",
14
+ "UrlPattern",
15
+ ]
@@ -0,0 +1,15 @@
1
+ """Type aliases for common patterns."""
2
+
3
+ from typing import Literal
4
+
5
+ # Environment types
6
+ EnvironmentString = Literal["development", "production", "test"]
7
+
8
+ # Django types
9
+ DatabaseAlias = str
10
+ AppLabel = str
11
+ MiddlewareLabel = str
12
+
13
+ # URL types
14
+ UrlPath = str
15
+ UrlPattern = str
@@ -0,0 +1,49 @@
1
+ """Core enumerations for django-cfg."""
2
+
3
+ from enum import Enum
4
+
5
+
6
+ class EnvironmentMode(str, Enum):
7
+ """Environment mode enumeration."""
8
+
9
+ DEVELOPMENT = "development"
10
+ PRODUCTION = "production"
11
+ TEST = "test"
12
+
13
+ @classmethod
14
+ def from_debug(cls, debug: bool) -> "EnvironmentMode":
15
+ """
16
+ Get environment mode from debug flag.
17
+
18
+ Args:
19
+ debug: Debug mode flag
20
+
21
+ Returns:
22
+ DEVELOPMENT if debug=True, PRODUCTION otherwise
23
+ """
24
+ return cls.DEVELOPMENT if debug else cls.PRODUCTION
25
+
26
+ @classmethod
27
+ def is_valid(cls, value: str) -> bool:
28
+ """
29
+ Check if value is a valid environment mode.
30
+
31
+ Args:
32
+ value: Value to check
33
+
34
+ Returns:
35
+ True if valid, False otherwise
36
+ """
37
+ return value in [mode.value for mode in cls]
38
+
39
+
40
+ class StartupInfoMode(str, Enum):
41
+ """Startup information display mode."""
42
+
43
+ NONE = "none"
44
+ SHORT = "short"
45
+ FULL = "full"
46
+
47
+ def should_display(self) -> bool:
48
+ """Check if should display startup info."""
49
+ return self != self.NONE
@@ -0,0 +1,105 @@
1
+ # Dashboard Debug Tool
2
+
3
+ Инструмент для отладки рендеринга dashboard секций.
4
+
5
+ ## Использование
6
+
7
+ ### 1. Management Command
8
+
9
+ Запустить из командной строки для тестирования рендера:
10
+
11
+ ```bash
12
+ # Рендер всех секций
13
+ python manage.py debug_dashboard
14
+
15
+ # Рендер конкретной секции
16
+ python manage.py debug_dashboard --section overview
17
+ python manage.py debug_dashboard --section stats
18
+
19
+ # Указать пользователя
20
+ python manage.py debug_dashboard --user admin
21
+ ```
22
+
23
+ ### 2. Автоматическое сохранение
24
+
25
+ При каждом рендере dashboard секции автоматически сохраняются в:
26
+ ```
27
+ libs/django_cfg/src/django_cfg/debug/dashboard/
28
+ ```
29
+
30
+ Файлы:
31
+ - `section_overview_YYYYMMDD_HHMMSS.html` - отрендеренный HTML
32
+ - `section_overview_YYYYMMDD_HHMMSS_context.json` - контекст шаблона
33
+ - `section_overview_YYYYMMDD_HHMMSS_meta.json` - метаданные
34
+
35
+ **Важно**: Директория `debug/` добавлена в `.gitignore` и не попадает в git.
36
+
37
+ ### 3. Программное использование
38
+
39
+ ```python
40
+ from django_cfg.dashboard.debug import save_section_render
41
+
42
+ # В коде секции
43
+ html = section.render()
44
+ save_section_render('my_section', html, section_data={'key': 'value'})
45
+ ```
46
+
47
+ ## Структура
48
+
49
+ ```
50
+ dashboard/
51
+ ├── debug.py # DashboardDebugger класс
52
+ ├── sections/ # Секции dashboard
53
+ │ ├── overview.py # Overview секция
54
+ │ ├── stats.py # Stats секция
55
+ │ ├── system.py # System секция
56
+ │ └── commands.py # Commands секция
57
+ └── management/
58
+ └── commands/
59
+ └── debug_dashboard.py # Management command
60
+ ```
61
+
62
+ ## Сравнение с архивом
63
+
64
+ ```python
65
+ from django_cfg.dashboard.debug import get_debugger
66
+ from pathlib import Path
67
+
68
+ debugger = get_debugger()
69
+ archive = Path('@archieves/now/dashboard.html')
70
+
71
+ comparison = debugger.compare_with_archive(current_html, archive)
72
+ print(comparison)
73
+ ```
74
+
75
+ ## Debugging workflow
76
+
77
+ 1. Запустить `python manage.py debug_dashboard`
78
+ 2. Проверить `@archieves/debug/renders/`
79
+ 3. Сравнить с `@archieves/now/dashboard.html`
80
+ 4. Проверить context.json для диагностики данных
81
+ 5. Исправить проблемы в секциях/шаблонах
82
+ 6. Повторить
83
+
84
+ ## Примеры проблем
85
+
86
+ ### Пустой вывод данных
87
+ Проверить в `_context.json`:
88
+ - Наличие ключа `data`
89
+ - Структуру данных (`data.stats`, `data.system_health`)
90
+ - Значения (не None, не пустые)
91
+
92
+ ### Template не найден
93
+ ```
94
+ TemplateDoesNotExist: admin/sections/overview_section.html
95
+ ```
96
+ Проверить:
97
+ - Путь к шаблону в `section.template_name`
98
+ - Наличие файла в `templates/admin/sections/`
99
+ - Правильность extends/include
100
+
101
+ ### Ошибки импорта
102
+ Проверить:
103
+ - Наличие всех зависимостей
104
+ - Правильность импортов в секциях
105
+ - Доступность моделей/конфигов
@@ -0,0 +1,237 @@
1
+ # Dashboard Refactoring Summary
2
+
3
+ ## Проблема
4
+
5
+ После рефакторинга dashboard секции данные отображаются не полностью:
6
+ - Отсутствуют Quick Actions
7
+ - Отсутствует Charts Section
8
+ - Отсутствуют System Metrics
9
+ - Отсутствует Activity Tracker
10
+ - По умолчанию открывается таб "API Zones" вместо "Overview"
11
+
12
+ ## Анализ
13
+
14
+ ### Старая структура (`@archieves/django_cfg/templates`)
15
+ ```
16
+ admin/
17
+ ├── layouts/
18
+ │ └── dashboard_with_tabs.html # Layout с табами и JavaScript
19
+ └── snippets/
20
+ ├── tabs/
21
+ │ └── overview_tab.html # Полный overview с includes
22
+ └── components/
23
+ ├── stats_cards.html
24
+ ├── quick_actions.html
25
+ ├── charts_section.html
26
+ ├── recent_activity.html
27
+ ├── system_health.html
28
+ ├── system_metrics.html
29
+ └── activity_tracker.html
30
+ ```
31
+
32
+ ### Новая структура (после рефакторинга)
33
+ ```
34
+ django_cfg/
35
+ ├── dashboard/
36
+ │ ├── sections/
37
+ │ │ ├── base.py # Базовые классы секций
38
+ │ │ ├── overview.py # Overview секция (УПРОЩЕННАЯ!)
39
+ │ │ ├── stats.py
40
+ │ │ ├── system.py
41
+ │ │ └── commands.py
42
+ │ ├── debug.py # Инструмент отладки
43
+ │ └── management/commands/
44
+ │ └── debug_dashboard.py # Management command
45
+ └── templates/admin/
46
+ ├── index.html # Использует новые секции
47
+ └── sections/
48
+ ├── overview_section.html # Шаблон overview (УПРОЩЕННЫЙ!)
49
+ └── ...
50
+ ```
51
+
52
+ ## Решение
53
+
54
+ ### 1. Debug инструмент ✅
55
+ Создан инструмент для отладки рендеринга:
56
+ ```bash
57
+ python manage.py debug_dashboard
58
+ ```
59
+
60
+ Сохраняет рендеры в `@archieves/debug/renders/`:
61
+ - `section_overview_YYYYMMDD_HHMMSS.html`
62
+ - `section_overview_YYYYMMDD_HHMMSS_context.json`
63
+ - `section_overview_YYYYMMDD_HHMMSS_meta.json`
64
+
65
+ ### 2. Автоматическое сохранение рендеров ✅
66
+ При каждом рендере секции автоматически сохраняются через:
67
+ ```python
68
+ from django_cfg.dashboard.debug import save_section_render
69
+
70
+ save_section_render('overview', html)
71
+ ```
72
+
73
+ ### 3. Восстановление недостающих компонентов ✅
74
+ Обновлен `overview_section.html` чтобы включать:
75
+ - ✅ Quick Actions (через include)
76
+ - ✅ Charts Section (через include)
77
+ - ✅ Recent Activity (через include)
78
+ - ✅ System Metrics (через include)
79
+ - ✅ Activity Tracker (через include)
80
+
81
+ ### 4. Исправление активного таба
82
+ **Проблема**: По умолчанию активен таб "API Zones" (data-tab="1")
83
+ **Причина**: JavaScript использует URL hash или сохраненное состояние
84
+
85
+ **Решение**:
86
+ - JavaScript корректно активирует первый таб при загрузке
87
+ - Проблема возникает только если сохранить страницу с активным другим табом
88
+
89
+ ## Архитектура
90
+
91
+ ### Старый подход
92
+ ```django
93
+ {% extends 'admin/layouts/dashboard_with_tabs.html' %}
94
+
95
+ {% block overview_tab %}
96
+ {% include 'admin/snippets/tabs/overview_tab.html' %}
97
+ {% endblock %}
98
+ ```
99
+
100
+ **Плюсы:**
101
+ - Простая структура
102
+ - Все компоненты в templates
103
+
104
+ **Минусы:**
105
+ - Нет разделения логики и представления
106
+ - Нет типизации данных
107
+ - Сложно тестировать
108
+
109
+ ### Новый подход
110
+ ```python
111
+ class OverviewSection(DataSection):
112
+ template_name = "admin/sections/overview_section.html"
113
+
114
+ def get_data(self):
115
+ return {
116
+ 'stats': self.get_key_stats(),
117
+ 'system_health': self.get_system_health(),
118
+ }
119
+ ```
120
+
121
+ **Плюсы:**
122
+ - Разделение логики и представления
123
+ - Типизация данных
124
+ - Легко тестировать
125
+ - Переиспользуемые компоненты
126
+
127
+ **Минусы:**
128
+ - Более сложная структура
129
+ - Нужно поддерживать совместимость со старыми компонентами
130
+
131
+ ## Рекомендации
132
+
133
+ ### Краткосрочные
134
+ 1. ✅ Восстановить все компоненты в overview секции
135
+ 2. ⏳ Проверить остальные секции (stats, system, commands)
136
+ 3. ⏳ Добавить тесты для секций
137
+
138
+ ### Долгосрочные
139
+ 1. Создать templatetags для упрощения:
140
+ ```django
141
+ {% render_section 'overview' %}
142
+ {% render_card stats %}
143
+ ```
144
+
145
+ 2. Унифицировать компоненты:
146
+ - Переписать старые snippets как Python классы
147
+ - Единый стиль для всех секций
148
+
149
+ 3. Добавить конфигурацию:
150
+ ```python
151
+ DJANGO_CFG_DASHBOARD = {
152
+ 'sections': ['overview', 'stats', 'system'],
153
+ 'default_tab': 0,
154
+ }
155
+ ```
156
+
157
+ ## Миграция со старой версии
158
+
159
+ ### Вариант 1: Использовать новые секции (текущий)
160
+ ```django
161
+ {% extends 'admin/layouts/dashboard_with_tabs.html' %}
162
+
163
+ {% block overview_tab %}
164
+ {% if overview_section %}
165
+ {{ overview_section|safe }}
166
+ {% else %}
167
+ {% include 'admin/snippets/tabs/overview_tab.html' %}
168
+ {% endif %}
169
+ {% endblock %}
170
+ ```
171
+
172
+ ### Вариант 2: Вернуться к старым includes
173
+ ```django
174
+ {% extends 'admin/layouts/dashboard_with_tabs.html' %}
175
+
176
+ {% block overview_tab %}
177
+ {% include 'admin/snippets/tabs/overview_tab.html' %}
178
+ {% endblock %}
179
+ ```
180
+
181
+ ### Вариант 3: Гибридный подход (рекомендуется)
182
+ ```django
183
+ {% block overview_tab %}
184
+ {% if use_new_sections %}
185
+ {{ overview_section|safe }}
186
+ {% else %}
187
+ {% include 'admin/snippets/tabs/overview_tab.html' %}
188
+ {% endif %}
189
+ {% endblock %}
190
+ ```
191
+
192
+ ## Файлы
193
+
194
+ ### Изменены
195
+ - `modules/django_unfold/callbacks/main.py` - добавлен рендер секций с debug
196
+ - `templates/admin/index.html` - использует новые секции
197
+ - `templates/admin/sections/overview_section.html` - восстановлены компоненты
198
+
199
+ ### Добавлены
200
+ - `dashboard/` - новая директория с секциями
201
+ - `sections/` - классы секций
202
+ - `debug.py` - отладочный инструмент
203
+ - `management/commands/debug_dashboard.py` - management command
204
+ - `DEBUG_README.md` - документация
205
+ - `REFACTORING_SUMMARY.md` - этот файл
206
+
207
+ ### Архив
208
+ - `@archieves/django_cfg/templates/` - старые шаблоны
209
+ - `@archieves/now/dashboard.html` - последний рендер до исправлений
210
+ - `@archieves/debug/renders/` - сохраненные рендеры для отладки
211
+
212
+ ## Команды
213
+
214
+ ### Отладка
215
+ ```bash
216
+ # Рендер всех секций
217
+ python manage.py debug_dashboard
218
+
219
+ # Рендер конкретной секции
220
+ python manage.py debug_dashboard --section overview
221
+
222
+ # Сравнение с архивом
223
+ diff @archieves/now/dashboard.html @archieves/debug/renders/section_overview_*.html
224
+ ```
225
+
226
+ ### Git
227
+ ```bash
228
+ # Статус изменений
229
+ git status libs/django_cfg/src/django_cfg
230
+
231
+ # Diff изменений
232
+ git diff libs/django_cfg/src/django_cfg
233
+
234
+ # Добавить новые файлы
235
+ git add libs/django_cfg/src/django_cfg/dashboard/
236
+ git add libs/django_cfg/src/django_cfg/templates/admin/sections/
237
+ ```
@@ -0,0 +1,24 @@
1
+ """
2
+ Django CFG Dashboard Module.
3
+
4
+ Section-based architecture for dashboard rendering.
5
+ Inspired by Unfold's clean component approach.
6
+ """
7
+
8
+ from .sections.base import DashboardSection
9
+ from .sections.overview import OverviewSection
10
+ from .sections.stats import StatsSection
11
+ from .sections.system import SystemSection
12
+ from .sections.commands import CommandsSection
13
+
14
+ # Import components to register them with Unfold
15
+ # The @register_component decorator runs on import
16
+ from . import components # noqa: F401
17
+
18
+ __all__ = [
19
+ 'DashboardSection',
20
+ 'OverviewSection',
21
+ 'StatsSection',
22
+ 'SystemSection',
23
+ 'CommandsSection',
24
+ ]