django-cfg 1.4.21__py3-none-any.whl → 1.4.23__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.
- django_cfg/__init__.py +4 -4
- django_cfg/apps/accounts/__init__.py +1 -1
- django_cfg/apps/accounts/__models.py +30 -29
- django_cfg/apps/accounts/admin/__init__.py +14 -3
- django_cfg/apps/accounts/admin/activity_admin.py +19 -19
- django_cfg/apps/accounts/admin/filters.py +7 -6
- django_cfg/apps/accounts/admin/group_admin.py +10 -16
- django_cfg/apps/accounts/admin/inlines.py +21 -19
- django_cfg/apps/accounts/admin/otp_admin.py +12 -12
- django_cfg/apps/accounts/admin/registration_admin.py +24 -24
- django_cfg/apps/accounts/admin/resources.py +49 -48
- django_cfg/apps/accounts/admin/twilio_admin.py +37 -37
- django_cfg/apps/accounts/admin/user_admin.py +45 -41
- django_cfg/apps/accounts/management/commands/otp_test.py +11 -11
- django_cfg/apps/accounts/managers/__init__.py +1 -1
- django_cfg/apps/accounts/managers/user_manager.py +6 -7
- django_cfg/apps/accounts/migrations/0001_initial.py +3 -2
- django_cfg/apps/accounts/models/__init__.py +15 -16
- django_cfg/apps/accounts/models/activity.py +5 -5
- django_cfg/apps/accounts/models/integrations.py +15 -15
- django_cfg/apps/accounts/models/registration.py +3 -2
- django_cfg/apps/accounts/models/user.py +3 -2
- django_cfg/apps/accounts/serializers/__init__.py +10 -3
- django_cfg/apps/accounts/serializers/otp.py +5 -4
- django_cfg/apps/accounts/serializers/profile.py +4 -5
- django_cfg/apps/accounts/serializers/webhook.py +13 -13
- django_cfg/apps/accounts/services/activity_service.py +13 -12
- django_cfg/apps/accounts/services/otp_service.py +16 -14
- django_cfg/apps/accounts/signals.py +18 -16
- django_cfg/apps/accounts/urls.py +10 -5
- django_cfg/apps/accounts/utils/notifications.py +22 -22
- django_cfg/apps/accounts/views/__init__.py +1 -1
- django_cfg/apps/accounts/views/otp.py +15 -14
- django_cfg/apps/accounts/views/profile.py +14 -10
- django_cfg/apps/accounts/views/webhook.py +46 -48
- django_cfg/apps/agents/__init__.py +3 -3
- django_cfg/apps/agents/admin/__init__.py +1 -1
- django_cfg/apps/agents/admin/execution_admin.py +68 -72
- django_cfg/apps/agents/admin/registry_admin.py +50 -54
- django_cfg/apps/agents/admin/toolsets_admin.py +63 -67
- django_cfg/apps/agents/apps.py +3 -3
- django_cfg/apps/agents/core/__init__.py +4 -4
- django_cfg/apps/agents/core/dependencies.py +24 -23
- django_cfg/apps/agents/core/django_agent.py +41 -39
- django_cfg/apps/agents/core/exceptions.py +12 -12
- django_cfg/apps/agents/core/models.py +16 -15
- django_cfg/apps/agents/core/orchestrator.py +58 -58
- django_cfg/apps/agents/examples/simple_example.py +24 -19
- django_cfg/apps/agents/integration/__init__.py +1 -1
- django_cfg/apps/agents/integration/middleware.py +12 -11
- django_cfg/apps/agents/integration/registry.py +52 -49
- django_cfg/apps/agents/integration/signals.py +5 -5
- django_cfg/apps/agents/management/commands/create_agent.py +39 -38
- django_cfg/apps/agents/management/commands/orchestrator_status.py +40 -39
- django_cfg/apps/agents/managers/__init__.py +8 -3
- django_cfg/apps/agents/managers/execution.py +42 -41
- django_cfg/apps/agents/managers/registry.py +40 -39
- django_cfg/apps/agents/managers/toolsets.py +87 -86
- django_cfg/apps/agents/migrations/0001_initial.py +2 -1
- django_cfg/apps/agents/models/__init__.py +2 -2
- django_cfg/apps/agents/models/execution.py +43 -42
- django_cfg/apps/agents/models/registry.py +46 -45
- django_cfg/apps/agents/models/toolsets.py +63 -62
- django_cfg/apps/agents/patterns/__init__.py +5 -5
- django_cfg/apps/agents/patterns/content_agents.py +17 -16
- django_cfg/apps/agents/toolsets/__init__.py +3 -3
- django_cfg/apps/agents/toolsets/cache_toolset.py +56 -55
- django_cfg/apps/agents/toolsets/django_toolset.py +43 -42
- django_cfg/apps/agents/toolsets/file_toolset.py +64 -63
- django_cfg/apps/agents/toolsets/orm_toolset.py +75 -74
- django_cfg/apps/agents/urls.py +3 -2
- django_cfg/apps/api/commands/urls.py +1 -0
- django_cfg/apps/api/commands/views.py +23 -26
- django_cfg/apps/api/endpoints/checker.py +5 -4
- django_cfg/apps/api/endpoints/drf_views.py +2 -2
- django_cfg/apps/api/endpoints/tests.py +6 -5
- django_cfg/apps/api/endpoints/urls.py +2 -1
- django_cfg/apps/api/endpoints/views.py +1 -0
- django_cfg/apps/api/health/drf_views.py +6 -6
- django_cfg/apps/api/health/urls.py +2 -1
- django_cfg/apps/api/health/views.py +41 -41
- django_cfg/{modules/django_ipc_client → apps/ipc}/__init__.py +6 -6
- django_cfg/apps/ipc/apps.py +28 -0
- django_cfg/apps/ipc/serializers/__init__.py +19 -0
- django_cfg/apps/ipc/serializers/serializers.py +229 -0
- django_cfg/apps/ipc/services/__init__.py +7 -0
- django_cfg/apps/ipc/services/client/__init__.py +23 -0
- django_cfg/{modules/django_ipc_client → apps/ipc/services/client}/client.py +7 -6
- django_cfg/{modules/django_ipc_client → apps/ipc/services/client}/exceptions.py +1 -1
- django_cfg/{modules/django_ipc_client/dashboard → apps/ipc/services}/monitor.py +23 -5
- django_cfg/{modules/django_ipc_client/dashboard/static/django_ipc_dashboard/js/dashboard.js → apps/ipc/static/django_cfg_ipc/js/dashboard.mjs} +131 -63
- django_cfg/{modules/django_ipc_client/dashboard/templates/django_ipc_dashboard → apps/ipc/templates/django_cfg_ipc}/base.html +5 -10
- django_cfg/apps/ipc/templates/django_cfg_ipc/dashboard.html +202 -0
- django_cfg/apps/ipc/urls.py +21 -0
- django_cfg/apps/ipc/urls_admin.py +20 -0
- django_cfg/apps/ipc/views/__init__.py +8 -0
- django_cfg/apps/ipc/views/dashboard.py +15 -0
- django_cfg/apps/ipc/views/viewsets.py +245 -0
- django_cfg/apps/knowbase/admin/__init__.py +2 -2
- django_cfg/apps/knowbase/admin/actions/__init__.py +1 -1
- django_cfg/apps/knowbase/admin/actions/visibility_actions.py +2 -1
- django_cfg/apps/knowbase/admin/archive_admin.py +81 -84
- django_cfg/apps/knowbase/admin/chat_admin.py +70 -72
- django_cfg/apps/knowbase/admin/document_admin.py +10 -11
- django_cfg/apps/knowbase/admin/external_data_admin.py +69 -71
- django_cfg/apps/knowbase/admin/helpers/__init__.py +1 -1
- django_cfg/apps/knowbase/admin/helpers/configs.py +2 -2
- django_cfg/apps/knowbase/admin/helpers/statistics.py +1 -1
- django_cfg/apps/knowbase/apps.py +13 -13
- django_cfg/apps/knowbase/config/__init__.py +7 -6
- django_cfg/apps/knowbase/config/constance_fields.py +14 -12
- django_cfg/apps/knowbase/config/constance_settings.py +32 -31
- django_cfg/apps/knowbase/config/settings.py +28 -28
- django_cfg/apps/knowbase/examples/external_data_usage.py +35 -32
- django_cfg/apps/knowbase/management/commands/knowbase_stats.py +33 -32
- django_cfg/apps/knowbase/management/commands/setup_knowbase.py +11 -13
- django_cfg/apps/knowbase/managers/__init__.py +2 -2
- django_cfg/apps/knowbase/managers/archive.py +86 -85
- django_cfg/apps/knowbase/managers/base.py +5 -5
- django_cfg/apps/knowbase/managers/chat.py +29 -28
- django_cfg/apps/knowbase/managers/document.py +39 -39
- django_cfg/apps/knowbase/managers/external_data.py +74 -73
- django_cfg/apps/knowbase/migrations/0001_initial.py +2 -1
- django_cfg/apps/knowbase/migrations/0002_archiveitem_archiveitemchunk_documentarchive_and_more.py +2 -1
- django_cfg/apps/knowbase/mixins/__init__.py +4 -4
- django_cfg/apps/knowbase/mixins/config/__init__.py +1 -1
- django_cfg/apps/knowbase/mixins/config/meta_config.py +1 -1
- django_cfg/apps/knowbase/mixins/config.py +19 -18
- django_cfg/apps/knowbase/mixins/creator.py +7 -7
- django_cfg/apps/knowbase/mixins/examples/vehicle_model_example.py +29 -28
- django_cfg/apps/knowbase/mixins/external_data_mixin.py +6 -5
- django_cfg/apps/knowbase/mixins/generators/__init__.py +1 -1
- django_cfg/apps/knowbase/mixins/generators/content_generator.py +2 -2
- django_cfg/apps/knowbase/mixins/service.py +47 -45
- django_cfg/apps/knowbase/models/__init__.py +7 -7
- django_cfg/apps/knowbase/models/archive.py +72 -72
- django_cfg/apps/knowbase/models/base.py +12 -13
- django_cfg/apps/knowbase/models/chat.py +20 -19
- django_cfg/apps/knowbase/models/document.py +37 -35
- django_cfg/apps/knowbase/models/external_data.py +41 -42
- django_cfg/apps/knowbase/serializers/__init__.py +7 -7
- django_cfg/apps/knowbase/serializers/archive_serializers.py +50 -42
- django_cfg/apps/knowbase/serializers/chat_serializers.py +16 -15
- django_cfg/apps/knowbase/serializers/document_serializers.py +13 -12
- django_cfg/apps/knowbase/serializers/external_data_serializers.py +31 -31
- django_cfg/apps/knowbase/serializers/public_serializers.py +10 -9
- django_cfg/apps/knowbase/services/__init__.py +7 -7
- django_cfg/apps/knowbase/services/archive/__init__.py +7 -7
- django_cfg/apps/knowbase/services/archive/analyzers/__init__.py +1 -1
- django_cfg/apps/knowbase/services/archive/analyzers/tag_generator.py +1 -1
- django_cfg/apps/knowbase/services/archive/archive_service.py +109 -112
- django_cfg/apps/knowbase/services/archive/chunking/__init__.py +3 -3
- django_cfg/apps/knowbase/services/archive/chunking/base.py +1 -0
- django_cfg/apps/knowbase/services/archive/chunking/json_chunker.py +4 -3
- django_cfg/apps/knowbase/services/archive/chunking/markdown_chunker.py +5 -4
- django_cfg/apps/knowbase/services/archive/chunking/python_chunker.py +6 -5
- django_cfg/apps/knowbase/services/archive/chunking/text_chunker.py +4 -3
- django_cfg/apps/knowbase/services/archive/chunking_service.py +3 -7
- django_cfg/apps/knowbase/services/archive/context/__init__.py +1 -1
- django_cfg/apps/knowbase/services/archive/context/builders.py +2 -1
- django_cfg/apps/knowbase/services/archive/context/models.py +2 -1
- django_cfg/apps/knowbase/services/archive/exceptions.py +5 -5
- django_cfg/apps/knowbase/services/archive/extraction_service.py +111 -110
- django_cfg/apps/knowbase/services/archive/vectorization_service.py +80 -77
- django_cfg/apps/knowbase/services/base.py +11 -9
- django_cfg/apps/knowbase/services/chat_service.py +40 -39
- django_cfg/apps/knowbase/services/document_service.py +28 -27
- django_cfg/apps/knowbase/services/embedding/__init__.py +9 -9
- django_cfg/apps/knowbase/services/embedding/async_processor.py +38 -40
- django_cfg/apps/knowbase/services/embedding/batch_processor.py +45 -42
- django_cfg/apps/knowbase/services/embedding/batch_result.py +7 -6
- django_cfg/apps/knowbase/services/embedding/models.py +52 -51
- django_cfg/apps/knowbase/services/embedding/processors.py +24 -23
- django_cfg/apps/knowbase/services/embedding/utils.py +17 -17
- django_cfg/apps/knowbase/services/prompt_builder.py +24 -23
- django_cfg/apps/knowbase/services/search_service.py +52 -49
- django_cfg/apps/knowbase/signals/__init__.py +2 -5
- django_cfg/apps/knowbase/signals/archive_signals.py +35 -34
- django_cfg/apps/knowbase/signals/chat_signals.py +6 -5
- django_cfg/apps/knowbase/signals/document_signals.py +22 -22
- django_cfg/apps/knowbase/signals/external_data_signals.py +22 -22
- django_cfg/apps/knowbase/tasks/__init__.py +6 -7
- django_cfg/apps/knowbase/tasks/archive_tasks.py +41 -41
- django_cfg/apps/knowbase/tasks/document_processing.py +49 -44
- django_cfg/apps/knowbase/tasks/external_data_tasks.py +46 -44
- django_cfg/apps/knowbase/tasks/maintenance.py +26 -24
- django_cfg/apps/knowbase/urls.py +3 -2
- django_cfg/apps/knowbase/urls_admin.py +6 -3
- django_cfg/apps/knowbase/urls_system.py +4 -5
- django_cfg/apps/knowbase/utils/chunk_settings.py +22 -20
- django_cfg/apps/knowbase/utils/text_processing.py +76 -75
- django_cfg/apps/knowbase/utils/validation.py +9 -9
- django_cfg/apps/knowbase/views/__init__.py +5 -5
- django_cfg/apps/knowbase/views/archive_views.py +90 -87
- django_cfg/apps/knowbase/views/base.py +9 -12
- django_cfg/apps/knowbase/views/chat_views.py +32 -32
- django_cfg/apps/knowbase/views/document_views.py +27 -28
- django_cfg/apps/knowbase/views/public_views.py +19 -19
- django_cfg/apps/leads/admin/leads_admin.py +41 -45
- django_cfg/apps/leads/admin/resources.py +14 -14
- django_cfg/apps/leads/admin.py +7 -9
- django_cfg/apps/leads/apps.py +1 -1
- django_cfg/apps/leads/models.py +17 -17
- django_cfg/apps/leads/serializers.py +5 -4
- django_cfg/apps/leads/signals.py +7 -7
- django_cfg/apps/leads/tests.py +47 -47
- django_cfg/apps/leads/urls.py +2 -2
- django_cfg/apps/leads/views.py +11 -11
- django_cfg/apps/maintenance/__init__.py +3 -3
- django_cfg/apps/maintenance/admin/__init__.py +1 -1
- django_cfg/apps/maintenance/admin/api_key_admin.py +36 -36
- django_cfg/apps/maintenance/admin/log_admin.py +35 -37
- django_cfg/apps/maintenance/admin/scheduled_admin.py +47 -51
- django_cfg/apps/maintenance/admin/site_admin.py +49 -52
- django_cfg/apps/maintenance/apps.py +2 -2
- django_cfg/apps/maintenance/management/commands/maintenance.py +53 -52
- django_cfg/apps/maintenance/management/commands/process_scheduled_maintenance.py +44 -44
- django_cfg/apps/maintenance/management/commands/sync_cloudflare.py +32 -32
- django_cfg/apps/maintenance/managers/__init__.py +1 -1
- django_cfg/apps/maintenance/managers/cloudflare_site_manager.py +39 -38
- django_cfg/apps/maintenance/managers/maintenance_log_manager.py +32 -31
- django_cfg/apps/maintenance/migrations/0001_initial.py +1 -0
- django_cfg/apps/maintenance/models/__init__.py +2 -2
- django_cfg/apps/maintenance/models/cloudflare_api_key.py +15 -15
- django_cfg/apps/maintenance/models/cloudflare_site.py +24 -22
- django_cfg/apps/maintenance/models/maintenance_log.py +15 -14
- django_cfg/apps/maintenance/models/scheduled_maintenance.py +53 -52
- django_cfg/apps/maintenance/services/__init__.py +3 -3
- django_cfg/apps/maintenance/services/bulk_operations_service.py +68 -68
- django_cfg/apps/maintenance/services/maintenance_service.py +59 -58
- django_cfg/apps/maintenance/services/scheduled_maintenance_service.py +52 -52
- django_cfg/apps/maintenance/services/site_sync_service.py +64 -65
- django_cfg/apps/maintenance/utils/__init__.py +1 -1
- django_cfg/apps/maintenance/utils/retry_utils.py +17 -17
- django_cfg/apps/newsletter/admin/__init__.py +12 -16
- django_cfg/apps/newsletter/admin/newsletter_admin.py +90 -87
- django_cfg/apps/newsletter/admin/resources.py +29 -29
- django_cfg/apps/newsletter/admin.py +39 -32
- django_cfg/apps/newsletter/management/commands/test_newsletter.py +3 -3
- django_cfg/apps/newsletter/managers/__init__.py +1 -1
- django_cfg/apps/newsletter/migrations/0001_initial.py +2 -1
- django_cfg/apps/newsletter/models.py +34 -33
- django_cfg/apps/newsletter/serializers.py +13 -13
- django_cfg/apps/newsletter/services/email_service.py +42 -40
- django_cfg/apps/newsletter/signals.py +4 -3
- django_cfg/apps/newsletter/urls.py +7 -7
- django_cfg/apps/newsletter/views/__init__.py +14 -19
- django_cfg/apps/newsletter/views/campaigns.py +19 -19
- django_cfg/apps/newsletter/views/emails.py +20 -20
- django_cfg/apps/newsletter/views/newsletters.py +5 -5
- django_cfg/apps/newsletter/views/subscriptions.py +24 -24
- django_cfg/apps/newsletter/views/tracking.py +6 -5
- django_cfg/apps/payments/admin/__init__.py +6 -5
- django_cfg/apps/payments/admin/api_keys_admin.py +43 -45
- django_cfg/apps/payments/admin/balance_admin.py +41 -47
- django_cfg/apps/payments/admin/currencies_admin.py +60 -62
- django_cfg/apps/payments/admin/endpoint_groups_admin.py +14 -28
- django_cfg/apps/payments/admin/filters.py +59 -59
- django_cfg/apps/payments/admin/networks_admin.py +36 -50
- django_cfg/apps/payments/admin/payments_admin.py +47 -49
- django_cfg/apps/payments/admin/subscriptions_admin.py +30 -32
- django_cfg/apps/payments/admin/tariffs_admin.py +37 -42
- django_cfg/apps/payments/admin_interface/serializers/__init__.py +12 -13
- django_cfg/apps/payments/admin_interface/serializers/payment_serializers.py +28 -27
- django_cfg/apps/payments/admin_interface/serializers/webhook_serializers.py +4 -5
- django_cfg/apps/payments/admin_interface/templates/payments/base.html +407 -3
- django_cfg/apps/payments/admin_interface/templates/payments/components/ngrok_status.html +13 -13
- django_cfg/apps/payments/admin_interface/templates/payments/payment_dashboard.html +5 -1
- django_cfg/apps/payments/admin_interface/templates/payments/payment_detail.html +105 -49
- django_cfg/apps/payments/admin_interface/templates/payments/payment_form.html +4 -1
- django_cfg/apps/payments/admin_interface/templates/payments/payment_list.html +16 -8
- django_cfg/apps/payments/admin_interface/templates/payments/webhook_dashboard.html +16 -8
- django_cfg/apps/payments/admin_interface/views/__init__.py +8 -9
- django_cfg/apps/payments/admin_interface/views/api/__init__.py +3 -3
- django_cfg/apps/payments/admin_interface/views/api/payments.py +52 -54
- django_cfg/apps/payments/admin_interface/views/api/stats.py +33 -30
- django_cfg/apps/payments/admin_interface/views/api/users.py +10 -11
- django_cfg/apps/payments/admin_interface/views/api/webhook_admin.py +46 -51
- django_cfg/apps/payments/admin_interface/views/api/webhook_public.py +9 -9
- django_cfg/apps/payments/admin_interface/views/base.py +17 -19
- django_cfg/apps/payments/admin_interface/views/dashboard.py +10 -10
- django_cfg/apps/payments/admin_interface/views/forms.py +21 -20
- django_cfg/apps/payments/apps.py +7 -6
- django_cfg/apps/payments/config/__init__.py +4 -4
- django_cfg/apps/payments/config/django_cfg_integration.py +22 -21
- django_cfg/apps/payments/config/helpers.py +14 -12
- django_cfg/apps/payments/management/commands/cleanup_expired_data.py +85 -86
- django_cfg/apps/payments/management/commands/currency_stats.py +84 -87
- django_cfg/apps/payments/management/commands/manage_currencies.py +59 -58
- django_cfg/apps/payments/management/commands/manage_providers.py +103 -105
- django_cfg/apps/payments/management/commands/process_pending_payments.py +67 -70
- django_cfg/apps/payments/management/commands/test_providers.py +83 -84
- django_cfg/apps/payments/middleware/__init__.py +1 -1
- django_cfg/apps/payments/middleware/api_access.py +77 -78
- django_cfg/apps/payments/middleware/rate_limiting.py +72 -72
- django_cfg/apps/payments/middleware/usage_tracking.py +66 -64
- django_cfg/apps/payments/migrations/0001_initial.py +2 -1
- django_cfg/apps/payments/models/__init__.py +11 -12
- django_cfg/apps/payments/models/api_keys.py +29 -27
- django_cfg/apps/payments/models/balance.py +38 -38
- django_cfg/apps/payments/models/base.py +12 -11
- django_cfg/apps/payments/models/currencies.py +53 -52
- django_cfg/apps/payments/models/managers/__init__.py +13 -14
- django_cfg/apps/payments/models/managers/api_key_managers.py +55 -53
- django_cfg/apps/payments/models/managers/balance_managers.py +98 -97
- django_cfg/apps/payments/models/managers/currency_managers.py +70 -69
- django_cfg/apps/payments/models/managers/payment_managers.py +113 -111
- django_cfg/apps/payments/models/managers/subscription_managers.py +99 -97
- django_cfg/apps/payments/models/payments.py +167 -73
- django_cfg/apps/payments/models/subscriptions.py +56 -54
- django_cfg/apps/payments/models/tariffs.py +35 -34
- django_cfg/apps/payments/services/__init__.py +33 -36
- django_cfg/apps/payments/services/cache/__init__.py +7 -1
- django_cfg/apps/payments/services/cache_service/__init__.py +22 -20
- django_cfg/apps/payments/services/cache_service/api_key_cache.py +6 -5
- django_cfg/apps/payments/services/cache_service/interfaces.py +5 -5
- django_cfg/apps/payments/services/cache_service/keys.py +8 -8
- django_cfg/apps/payments/services/cache_service/rate_limit_cache.py +8 -7
- django_cfg/apps/payments/services/cache_service/simple_cache.py +17 -14
- django_cfg/apps/payments/services/core/__init__.py +3 -3
- django_cfg/apps/payments/services/core/balance_service.py +69 -65
- django_cfg/apps/payments/services/core/base.py +25 -22
- django_cfg/apps/payments/services/core/currency/__init__.py +1 -1
- django_cfg/apps/payments/services/core/currency/currency_converter.py +2 -0
- django_cfg/apps/payments/services/core/currency_service.py +68 -66
- django_cfg/apps/payments/services/core/operations/__init__.py +1 -1
- django_cfg/apps/payments/services/core/operations/payment_canceller.py +2 -1
- django_cfg/apps/payments/services/core/operations/payment_creator.py +2 -1
- django_cfg/apps/payments/services/core/operations/status_checker.py +2 -1
- django_cfg/apps/payments/services/core/payment_service.py +10 -7
- django_cfg/apps/payments/services/core/providers/provider_client.py +2 -2
- django_cfg/apps/payments/services/core/subscription_service.py +77 -74
- django_cfg/apps/payments/services/core/utils/data_converter.py +1 -0
- django_cfg/apps/payments/services/core/utils/statistics_calculator.py +1 -0
- django_cfg/apps/payments/services/core/webhook_service.py +67 -63
- django_cfg/apps/payments/services/integrations/__init__.py +3 -3
- django_cfg/apps/payments/services/integrations/ngrok_service.py +1 -0
- django_cfg/apps/payments/services/integrations/providers_config.py +3 -2
- django_cfg/apps/payments/services/providers/base.py +59 -57
- django_cfg/apps/payments/services/providers/models/__init__.py +7 -14
- django_cfg/apps/payments/services/providers/models/base.py +15 -15
- django_cfg/apps/payments/services/providers/models/providers.py +13 -12
- django_cfg/apps/payments/services/providers/models/universal.py +6 -5
- django_cfg/apps/payments/services/providers/nowpayments/__init__.py +4 -4
- django_cfg/apps/payments/services/providers/nowpayments/config.py +9 -8
- django_cfg/apps/payments/services/providers/nowpayments/models.py +15 -15
- django_cfg/apps/payments/services/providers/nowpayments/parsers/data/__init__.py +2 -2
- django_cfg/apps/payments/services/providers/nowpayments/parsers/data/patterns.py +26 -26
- django_cfg/apps/payments/services/providers/nowpayments/parsers/parser.py +3 -2
- django_cfg/apps/payments/services/providers/nowpayments/provider.py +95 -99
- django_cfg/apps/payments/services/providers/nowpayments/sync.py +41 -40
- django_cfg/apps/payments/services/providers/registry.py +65 -63
- django_cfg/apps/payments/services/providers/sync_service.py +50 -50
- django_cfg/apps/payments/services/types/__init__.py +21 -22
- django_cfg/apps/payments/services/types/data.py +14 -13
- django_cfg/apps/payments/services/types/requests.py +21 -22
- django_cfg/apps/payments/services/types/responses.py +16 -15
- django_cfg/apps/payments/services/types/webhooks.py +30 -30
- django_cfg/apps/payments/signals/__init__.py +4 -6
- django_cfg/apps/payments/signals/api_key_signals.py +33 -32
- django_cfg/apps/payments/signals/balance_signals.py +28 -26
- django_cfg/apps/payments/signals/payment_signals.py +29 -28
- django_cfg/apps/payments/signals/subscription_signals.py +39 -38
- django_cfg/apps/payments/static/payments/js/ngrok-status.js +12 -8
- django_cfg/apps/payments/static/payments/js/payment-detail.js +1 -1
- django_cfg/apps/payments/static/payments/js/payment-form.js +3 -3
- django_cfg/apps/payments/static/payments/js/payment-list.js +13 -6
- django_cfg/apps/payments/static/payments/js/webhook-dashboard-mjs.js +241 -0
- django_cfg/apps/payments/tasks/__init__.py +11 -12
- django_cfg/apps/payments/tasks/types.py +10 -9
- django_cfg/apps/payments/tasks/usage_tracking.py +44 -46
- django_cfg/apps/payments/templatetags/payment_tags.py +27 -27
- django_cfg/apps/payments/urls.py +31 -14
- django_cfg/apps/payments/urls_admin.py +10 -10
- django_cfg/apps/payments/views/api/__init__.py +32 -33
- django_cfg/apps/payments/views/api/api_keys.py +62 -62
- django_cfg/apps/payments/views/api/balances.py +63 -64
- django_cfg/apps/payments/views/api/base.py +52 -52
- django_cfg/apps/payments/views/api/currencies.py +75 -63
- django_cfg/apps/payments/views/api/payments.py +73 -74
- django_cfg/apps/payments/views/api/subscriptions.py +71 -72
- django_cfg/apps/payments/views/api/webhooks.py +85 -84
- django_cfg/apps/payments/views/overview/__init__.py +7 -7
- django_cfg/apps/payments/views/overview/serializers.py +13 -14
- django_cfg/apps/payments/views/overview/services.py +66 -67
- django_cfg/apps/payments/views/overview/urls.py +2 -1
- django_cfg/apps/payments/views/overview/views.py +31 -31
- django_cfg/apps/payments/views/serializers/__init__.py +35 -36
- django_cfg/apps/payments/views/serializers/api_keys.py +59 -57
- django_cfg/apps/payments/views/serializers/balances.py +34 -33
- django_cfg/apps/payments/views/serializers/currencies.py +36 -34
- django_cfg/apps/payments/views/serializers/payments.py +48 -47
- django_cfg/apps/payments/views/serializers/subscriptions.py +50 -45
- django_cfg/apps/payments/views/serializers/webhooks.py +17 -16
- django_cfg/apps/support/admin/__init__.py +3 -3
- django_cfg/apps/support/admin/resources.py +26 -26
- django_cfg/apps/support/admin/support_admin.py +44 -48
- django_cfg/apps/support/admin.py +16 -15
- django_cfg/apps/support/apps.py +1 -1
- django_cfg/apps/support/managers/message_manager.py +4 -4
- django_cfg/apps/support/managers/ticket_manager.py +13 -12
- django_cfg/apps/support/migrations/0001_initial.py +2 -1
- django_cfg/apps/support/models.py +3 -1
- django_cfg/apps/support/serializers.py +4 -2
- django_cfg/apps/support/signals.py +12 -10
- django_cfg/apps/support/urls.py +4 -3
- django_cfg/apps/support/utils/support_email_service.py +11 -9
- django_cfg/apps/support/views/__init__.py +3 -3
- django_cfg/apps/support/views/admin.py +9 -9
- django_cfg/apps/support/views/api.py +10 -9
- django_cfg/apps/support/views/chat.py +14 -14
- django_cfg/apps/tasks/admin/tasks_admin.py +65 -74
- django_cfg/apps/tasks/apps.py +2 -2
- django_cfg/apps/tasks/serializers.py +6 -6
- django_cfg/apps/tasks/static/tasks/js/dashboard/main.mjs +44 -20
- django_cfg/apps/tasks/static/tasks/js/dashboard/overview.mjs +7 -5
- django_cfg/apps/tasks/static/tasks/js/dashboard/queues.mjs +5 -3
- django_cfg/apps/tasks/static/tasks/js/dashboard/tasks.mjs +5 -3
- django_cfg/apps/tasks/static/tasks/js/dashboard/workers.mjs +5 -3
- django_cfg/apps/tasks/tasks/demo_tasks.py +12 -11
- django_cfg/apps/tasks/templates/tasks/components/tasks_mjs_integration.html +269 -0
- django_cfg/apps/tasks/templates/tasks/pages/dashboard-improved.html +168 -0
- django_cfg/apps/tasks/templates/tasks/pages/dashboard.html +21 -2
- django_cfg/apps/tasks/urls.py +3 -2
- django_cfg/apps/tasks/urls_admin.py +1 -0
- django_cfg/apps/tasks/utils/simulator.py +49 -52
- django_cfg/apps/tasks/views/api.py +75 -73
- django_cfg/apps/tasks/views/dashboard.py +5 -4
- django_cfg/apps/urls.py +20 -11
- django_cfg/apps.py +6 -5
- django_cfg/cli/commands/create_project.py +7 -6
- django_cfg/cli/commands/info.py +25 -25
- django_cfg/cli/utils.py +27 -27
- django_cfg/config.py +1 -1
- django_cfg/core/__init__.py +8 -8
- django_cfg/core/base/config_model.py +13 -12
- django_cfg/core/builders/apps_builder.py +2 -2
- django_cfg/core/builders/middleware_builder.py +1 -1
- django_cfg/core/builders/security_builder.py +1 -1
- django_cfg/core/config.py +2 -2
- django_cfg/core/environment/detector.py +27 -28
- django_cfg/core/exceptions.py +1 -1
- django_cfg/core/generation/core_generators/settings.py +1 -1
- django_cfg/core/generation/core_generators/static.py +11 -5
- django_cfg/core/generation/core_generators/templates.py +1 -1
- django_cfg/core/generation/data_generators/__init__.py +1 -1
- django_cfg/core/generation/data_generators/cache.py +1 -1
- django_cfg/core/generation/data_generators/database.py +1 -1
- django_cfg/core/generation/generation.py +1 -3
- django_cfg/core/generation/integration_generators/__init__.py +2 -2
- django_cfg/core/generation/integration_generators/api.py +12 -2
- django_cfg/core/generation/integration_generators/sessions.py +1 -1
- django_cfg/core/generation/integration_generators/tailwind.py +1 -1
- django_cfg/core/generation/integration_generators/tasks.py +1 -1
- django_cfg/core/generation/integration_generators/third_party.py +1 -1
- django_cfg/core/generation/orchestrator.py +1 -1
- django_cfg/core/generation/protocols.py +1 -1
- django_cfg/core/generation/utility_generators/__init__.py +1 -1
- django_cfg/core/generation/utility_generators/email.py +1 -1
- django_cfg/core/generation/utility_generators/i18n.py +1 -1
- django_cfg/core/generation/utility_generators/limits.py +1 -1
- django_cfg/core/generation/utility_generators/logging.py +1 -1
- django_cfg/core/generation/utility_generators/security.py +1 -1
- django_cfg/core/generation/utils/helpers.py +1 -1
- django_cfg/core/integration/__init__.py +5 -5
- django_cfg/core/integration/commands_collector.py +38 -39
- django_cfg/core/integration/display/__init__.py +2 -2
- django_cfg/core/integration/display/base.py +30 -30
- django_cfg/core/integration/display/ngrok.py +35 -36
- django_cfg/core/integration/display/startup.py +149 -139
- django_cfg/core/integration/url_integration.py +10 -10
- django_cfg/core/integration/version_checker.py +20 -19
- django_cfg/core/services/config_service.py +4 -4
- django_cfg/core/state/__init__.py +1 -1
- django_cfg/core/state/registry.py +1 -1
- django_cfg/core/types/__init__.py +8 -1
- django_cfg/core/validation.py +36 -39
- django_cfg/management/commands/check_endpoints.py +3 -1
- django_cfg/management/commands/check_settings.py +3 -1
- django_cfg/management/commands/clear_constance.py +3 -1
- django_cfg/management/commands/create_token.py +3 -1
- django_cfg/management/commands/generate_clients.py +3 -1
- django_cfg/management/commands/migrate_all.py +3 -1
- django_cfg/management/commands/rundramatiq.py +3 -1
- django_cfg/management/commands/rundramatiq_simulator.py +3 -1
- django_cfg/management/commands/runserver_ngrok.py +3 -1
- django_cfg/management/commands/show_config.py +3 -1
- django_cfg/management/commands/superuser.py +3 -1
- django_cfg/management/commands/task_clear.py +3 -1
- django_cfg/management/commands/task_status.py +3 -1
- django_cfg/management/commands/test_email.py +3 -1
- django_cfg/management/commands/test_telegram.py +3 -1
- django_cfg/management/commands/test_twilio.py +3 -1
- django_cfg/management/commands/validate_openapi.py +3 -1
- django_cfg/middleware/pagination.py +8 -8
- django_cfg/middleware/public_endpoints.py +24 -23
- django_cfg/middleware/user_activity.py +27 -25
- django_cfg/models/__init__.py +19 -20
- django_cfg/models/api/__init__.py +4 -4
- django_cfg/models/api/config.py +23 -21
- django_cfg/models/api/cors.py +17 -16
- django_cfg/models/api/drf/__init__.py +1 -1
- django_cfg/models/api/drf/config.py +2 -1
- django_cfg/models/api/drf/redoc.py +2 -1
- django_cfg/models/api/drf/spectacular.py +4 -2
- django_cfg/models/api/drf/swagger.py +2 -1
- django_cfg/models/api/jwt.py +37 -36
- django_cfg/models/api/keys.py +13 -12
- django_cfg/models/api/limits.py +31 -30
- django_cfg/models/base/config.py +40 -41
- django_cfg/models/base/module.py +8 -8
- django_cfg/models/django/__init__.py +1 -1
- django_cfg/models/django/constance.py +8 -7
- django_cfg/models/django/environment.py +5 -3
- django_cfg/models/django/openapi.py +6 -16
- django_cfg/models/django/revolution_legacy.py +17 -16
- django_cfg/models/infrastructure/__init__.py +1 -1
- django_cfg/models/infrastructure/cache.py +46 -45
- django_cfg/models/infrastructure/database/config.py +4 -6
- django_cfg/models/infrastructure/database/converters.py +1 -1
- django_cfg/models/infrastructure/database/parsers.py +1 -1
- django_cfg/models/infrastructure/database/validators.py +1 -1
- django_cfg/models/infrastructure/logging.py +59 -57
- django_cfg/models/infrastructure/security.py +26 -24
- django_cfg/models/ngrok/auth.py +2 -1
- django_cfg/models/ngrok/config.py +3 -2
- django_cfg/models/ngrok/tunnel.py +2 -1
- django_cfg/models/payments/__init__.py +1 -1
- django_cfg/models/payments/api_keys.py +3 -1
- django_cfg/models/payments/config.py +4 -1
- django_cfg/models/payments/providers/base.py +2 -1
- django_cfg/models/payments/providers/nowpayments.py +3 -1
- django_cfg/models/services/__init__.py +1 -1
- django_cfg/models/services/base.py +2 -1
- django_cfg/models/services/email.py +28 -26
- django_cfg/models/services/telegram.py +2 -1
- django_cfg/models/tasks/__init__.py +2 -2
- django_cfg/models/tasks/backends.py +4 -3
- django_cfg/models/tasks/config.py +6 -4
- django_cfg/models/tasks/utils.py +3 -3
- django_cfg/modules/base.py +18 -17
- django_cfg/modules/django_admin/__init__.py +14 -15
- django_cfg/modules/django_admin/decorators/__init__.py +1 -1
- django_cfg/modules/django_admin/decorators/actions.py +8 -7
- django_cfg/modules/django_admin/decorators/display.py +9 -7
- django_cfg/modules/django_admin/icons/__init__.py +1 -1
- django_cfg/modules/django_admin/icons/constants.py +27 -27
- django_cfg/modules/django_admin/icons/generate_icons.py +54 -54
- django_cfg/modules/django_admin/management/commands/check_endpoints.py +5 -3
- django_cfg/modules/django_admin/management/commands/check_settings.py +40 -44
- django_cfg/modules/django_admin/management/commands/clear_constance.py +29 -30
- django_cfg/modules/django_admin/management/commands/create_token.py +42 -42
- django_cfg/modules/django_admin/management/commands/list_urls.py +37 -38
- django_cfg/modules/django_admin/management/commands/migrate_all.py +13 -15
- django_cfg/modules/django_admin/management/commands/migrator.py +17 -17
- django_cfg/modules/django_admin/management/commands/script.py +58 -60
- django_cfg/modules/django_admin/management/commands/show_config.py +32 -30
- django_cfg/modules/django_admin/management/commands/show_urls.py +46 -44
- django_cfg/modules/django_admin/management/commands/superuser.py +47 -48
- django_cfg/modules/django_admin/management/commands/tree.py +50 -54
- django_cfg/modules/django_admin/mixins/display_mixin.py +16 -15
- django_cfg/modules/django_admin/mixins/optimization_mixin.py +9 -8
- django_cfg/modules/django_admin/mixins/standalone_actions_mixin.py +25 -24
- django_cfg/modules/django_admin/models/__init__.py +4 -4
- django_cfg/modules/django_admin/models/action_models.py +3 -1
- django_cfg/modules/django_admin/models/badge_models.py +4 -2
- django_cfg/modules/django_admin/models/base.py +3 -3
- django_cfg/modules/django_admin/models/display_models.py +1 -0
- django_cfg/modules/django_admin/utils/badges.py +27 -26
- django_cfg/modules/django_admin/utils/displays.py +49 -49
- django_cfg/modules/django_client/apps.py +21 -3
- django_cfg/modules/django_client/core/__init__.py +9 -10
- django_cfg/modules/django_client/core/archive/manager.py +2 -2
- django_cfg/modules/django_client/core/cli/main.py +1 -3
- django_cfg/modules/django_client/core/config/config.py +3 -1
- django_cfg/modules/django_client/core/config/group.py +1 -0
- django_cfg/modules/django_client/core/config/service.py +2 -1
- django_cfg/modules/django_client/core/generator/__init__.py +1 -1
- django_cfg/modules/django_client/core/generator/base.py +2 -2
- django_cfg/modules/django_client/core/generator/python/async_client_gen.py +1 -1
- django_cfg/modules/django_client/core/generator/python/files_generator.py +1 -1
- django_cfg/modules/django_client/core/generator/python/generator.py +4 -4
- django_cfg/modules/django_client/core/generator/python/models_generator.py +1 -1
- django_cfg/modules/django_client/core/generator/python/operations_generator.py +2 -2
- django_cfg/modules/django_client/core/generator/python/sync_client_gen.py +1 -1
- django_cfg/modules/django_client/core/generator/typescript/client_generator.py +3 -1
- django_cfg/modules/django_client/core/generator/typescript/fetchers_generator.py +14 -13
- django_cfg/modules/django_client/core/generator/typescript/files_generator.py +1 -0
- django_cfg/modules/django_client/core/generator/typescript/generator.py +6 -6
- django_cfg/modules/django_client/core/generator/typescript/hooks_generator.py +12 -10
- django_cfg/modules/django_client/core/generator/typescript/models_generator.py +2 -1
- django_cfg/modules/django_client/core/generator/typescript/naming.py +2 -3
- django_cfg/modules/django_client/core/generator/typescript/operations_generator.py +12 -10
- django_cfg/modules/django_client/core/generator/typescript/schemas_generator.py +3 -2
- django_cfg/modules/django_client/core/generator/typescript/templates/client/client.ts.jinja +14 -6
- django_cfg/modules/django_client/core/generator/typescript/templates/main_index.ts.jinja +4 -10
- django_cfg/modules/django_client/core/groups/__init__.py +1 -1
- django_cfg/modules/django_client/core/groups/detector.py +2 -1
- django_cfg/modules/django_client/core/groups/manager.py +2 -1
- django_cfg/modules/django_client/core/ir/schema.py +1 -1
- django_cfg/modules/django_client/core/parser/base.py +0 -2
- django_cfg/modules/django_client/core/parser/models/schema.py +1 -1
- django_cfg/modules/django_client/core/validation/__init__.py +1 -1
- django_cfg/modules/django_client/core/validation/fixer.py +1 -2
- django_cfg/modules/django_client/core/validation/reporter.py +2 -2
- django_cfg/modules/django_client/core/validation/safety.py +1 -1
- django_cfg/modules/django_client/management/commands/generate_client.py +14 -11
- django_cfg/modules/django_client/management/commands/validate_openapi.py +4 -6
- django_cfg/modules/django_client/spectacular/__init__.py +1 -1
- django_cfg/modules/django_client/spectacular/async_detection.py +3 -2
- django_cfg/modules/django_client/spectacular/enum_naming.py +1 -1
- django_cfg/modules/django_client/spectacular/schema.py +5 -5
- django_cfg/modules/django_client/system/__init__.py +24 -0
- django_cfg/modules/django_client/system/base_generator.py +123 -0
- django_cfg/modules/django_client/system/generate_mjs_clients.py +174 -0
- django_cfg/modules/django_client/system/mjs_generator.py +219 -0
- django_cfg/modules/django_client/system/schema_parser.py +195 -0
- django_cfg/modules/django_client/system/templates/api_client.js.j2 +87 -0
- django_cfg/modules/django_client/system/templates/app_index.js.j2 +13 -0
- django_cfg/modules/django_client/system/templates/base_client.js.j2 +166 -0
- django_cfg/modules/django_client/system/templates/main_index.js.j2 +80 -0
- django_cfg/modules/django_client/system/templates/types.js.j2 +24 -0
- django_cfg/modules/django_client/urls.py +3 -2
- django_cfg/modules/django_currency/__init__.py +17 -18
- django_cfg/modules/django_currency/clients/__init__.py +2 -2
- django_cfg/modules/django_currency/clients/coinpaprika_client.py +48 -48
- django_cfg/modules/django_currency/clients/hybrid_client.py +76 -75
- django_cfg/modules/django_currency/core/__init__.py +7 -13
- django_cfg/modules/django_currency/core/converter.py +25 -24
- django_cfg/modules/django_currency/core/models.py +9 -8
- django_cfg/modules/django_currency/database/__init__.py +4 -4
- django_cfg/modules/django_currency/database/database_loader.py +65 -66
- django_cfg/modules/django_currency/examples/example_database_usage.py +29 -28
- django_cfg/modules/django_currency/utils/cache.py +10 -11
- django_cfg/modules/django_dashboard/__init__.py +4 -5
- django_cfg/modules/django_dashboard/components.py +11 -7
- django_cfg/modules/django_dashboard/debug.py +1 -3
- django_cfg/modules/django_dashboard/management/commands/debug_dashboard.py +3 -3
- django_cfg/modules/django_dashboard/sections/base.py +2 -1
- django_cfg/modules/django_dashboard/sections/commands.py +3 -2
- django_cfg/modules/django_dashboard/sections/documentation.py +8 -6
- django_cfg/modules/django_dashboard/sections/overview.py +13 -9
- django_cfg/modules/django_dashboard/sections/stats.py +2 -2
- django_cfg/modules/django_dashboard/sections/system.py +2 -1
- django_cfg/modules/django_drf_theme/templatetags/tailwind_tags.py +12 -4
- django_cfg/modules/django_email/management/commands/test_email.py +8 -7
- django_cfg/modules/django_email/service.py +5 -4
- django_cfg/modules/django_health/service.py +46 -44
- django_cfg/modules/django_import_export/__init__.py +7 -3
- django_cfg/modules/django_llm/__init__.py +3 -2
- django_cfg/modules/django_llm/example.py +58 -56
- django_cfg/modules/django_llm/llm/__init__.py +1 -1
- django_cfg/modules/django_llm/llm/cache.py +21 -20
- django_cfg/modules/django_llm/llm/client.py +9 -9
- django_cfg/modules/django_llm/llm/costs.py +14 -14
- django_cfg/modules/django_llm/llm/embeddings/__init__.py +1 -1
- django_cfg/modules/django_llm/llm/embeddings/mock_embedder.py +1 -2
- django_cfg/modules/django_llm/llm/embeddings/openai_embedder.py +1 -2
- django_cfg/modules/django_llm/llm/extractor.py +8 -8
- django_cfg/modules/django_llm/llm/models.py +5 -5
- django_cfg/modules/django_llm/llm/models_api/models_query.py +2 -2
- django_cfg/modules/django_llm/llm/models_cache.py +91 -92
- django_cfg/modules/django_llm/llm/providers/config_builder.py +1 -1
- django_cfg/modules/django_llm/llm/providers/provider_manager.py +2 -1
- django_cfg/modules/django_llm/llm/requests/cache_manager.py +1 -1
- django_cfg/modules/django_llm/llm/requests/chat_handler.py +2 -2
- django_cfg/modules/django_llm/llm/requests/embedding_handler.py +1 -1
- django_cfg/modules/django_llm/llm/responses/response_builder.py +2 -2
- django_cfg/modules/django_llm/llm/stats/stats_manager.py +1 -1
- django_cfg/modules/django_llm/llm/tokenizer.py +10 -9
- django_cfg/modules/django_llm/translator/__init__.py +1 -1
- django_cfg/modules/django_llm/translator/cache.py +36 -35
- django_cfg/modules/django_llm/translator/detectors/__init__.py +1 -1
- django_cfg/modules/django_llm/translator/detectors/script_detector.py +0 -1
- django_cfg/modules/django_llm/translator/stats/stats_tracker.py +1 -1
- django_cfg/modules/django_llm/translator/translator.py +5 -4
- django_cfg/modules/django_llm/translator/translators/__init__.py +1 -1
- django_cfg/modules/django_llm/translator/translators/json_translator.py +1 -1
- django_cfg/modules/django_llm/translator/utils/__init__.py +1 -1
- django_cfg/modules/django_llm/translator/utils/prompt_builder.py +0 -1
- django_cfg/modules/django_logging/__init__.py +1 -1
- django_cfg/modules/django_logging/django_logger.py +33 -34
- django_cfg/modules/django_logging/logger.py +3 -7
- django_cfg/modules/django_ngrok/__init__.py +7 -7
- django_cfg/modules/django_ngrok/management/commands/runserver_ngrok.py +33 -30
- django_cfg/modules/django_ngrok/service.py +33 -32
- django_cfg/modules/django_tailwind/templates/django_tailwind/base.html +4 -36
- django_cfg/modules/django_tailwind/templates/django_tailwind/components/navbar.html +1 -1
- django_cfg/modules/django_tasks/__init__.py +5 -5
- django_cfg/modules/django_tasks/dramatiq_setup.py +1 -1
- django_cfg/modules/django_tasks/factory.py +1 -1
- django_cfg/modules/django_tasks/management/commands/rundramatiq.py +39 -40
- django_cfg/modules/django_tasks/management/commands/rundramatiq_simulator.py +79 -80
- django_cfg/modules/django_tasks/management/commands/task_clear.py +34 -34
- django_cfg/modules/django_tasks/management/commands/task_status.py +34 -34
- django_cfg/modules/django_tasks/service.py +4 -3
- django_cfg/modules/django_tasks/settings.py +1 -1
- django_cfg/modules/django_telegram/__init__.py +4 -4
- django_cfg/modules/django_telegram/management/commands/test_telegram.py +4 -5
- django_cfg/modules/django_telegram/service.py +4 -3
- django_cfg/modules/django_telegram/utils.py +1 -1
- django_cfg/modules/django_twilio/__init__.py +15 -16
- django_cfg/modules/django_twilio/_imports.py +1 -1
- django_cfg/modules/django_twilio/base.py +9 -5
- django_cfg/modules/django_twilio/email_otp.py +4 -3
- django_cfg/modules/django_twilio/exceptions.py +36 -36
- django_cfg/modules/django_twilio/management/commands/test_twilio.py +6 -7
- django_cfg/modules/django_twilio/models.py +54 -53
- django_cfg/modules/django_twilio/sendgrid_service.py +70 -72
- django_cfg/modules/django_twilio/simple_service.py +42 -41
- django_cfg/modules/django_twilio/sms.py +1 -0
- django_cfg/modules/django_twilio/twilio_service.py +79 -83
- django_cfg/modules/django_twilio/unified.py +6 -5
- django_cfg/modules/django_twilio/utils.py +2 -3
- django_cfg/modules/django_twilio/whatsapp.py +3 -2
- django_cfg/modules/django_unfold/__init__.py +7 -6
- django_cfg/modules/django_unfold/callbacks/actions.py +6 -5
- django_cfg/modules/django_unfold/callbacks/apizones.py +122 -0
- django_cfg/modules/django_unfold/callbacks/base.py +9 -8
- django_cfg/modules/django_unfold/callbacks/charts.py +36 -37
- django_cfg/modules/django_unfold/callbacks/commands.py +2 -2
- django_cfg/modules/django_unfold/callbacks/main.py +27 -27
- django_cfg/modules/django_unfold/callbacks/statistics.py +12 -12
- django_cfg/modules/django_unfold/callbacks/system.py +5 -5
- django_cfg/modules/django_unfold/callbacks/users.py +4 -4
- django_cfg/modules/django_unfold/dashboard.py +29 -29
- django_cfg/modules/django_unfold/models/__init__.py +23 -8
- django_cfg/modules/django_unfold/models/config.py +84 -81
- django_cfg/modules/django_unfold/models/dashboard.py +20 -19
- django_cfg/modules/django_unfold/models/dropdown.py +6 -4
- django_cfg/modules/django_unfold/models/navigation.py +6 -4
- django_cfg/modules/django_unfold/models/tabs.py +4 -3
- django_cfg/modules/django_unfold/models.py +2 -3
- django_cfg/modules/django_unfold/system_monitor.py +27 -25
- django_cfg/modules/django_unfold/tailwind.py +12 -14
- django_cfg/modules/django_unfold/utils.py +7 -6
- django_cfg/pyproject.toml +1 -1
- django_cfg/registry/__init__.py +3 -3
- django_cfg/registry/core.py +8 -8
- django_cfg/registry/modules.py +2 -2
- django_cfg/registry/services.py +2 -2
- django_cfg/registry/third_party.py +3 -3
- django_cfg/routing/__init__.py +3 -3
- django_cfg/routing/callbacks.py +27 -26
- django_cfg/routing/routers.py +2 -2
- django_cfg/static/js/api/accounts/client.mjs +69 -0
- django_cfg/static/js/api/accounts/index.mjs +13 -0
- django_cfg/static/js/api/base.mjs +166 -0
- django_cfg/static/js/api/index.mjs +100 -0
- django_cfg/static/js/api/ipc/client.mjs +74 -0
- django_cfg/static/js/api/ipc/index.mjs +13 -0
- django_cfg/static/js/api/leads/client.mjs +71 -0
- django_cfg/static/js/api/leads/index.mjs +13 -0
- django_cfg/static/js/api/newsletter/client.mjs +109 -0
- django_cfg/static/js/api/newsletter/index.mjs +13 -0
- django_cfg/static/js/api/payments/client.mjs +1264 -0
- django_cfg/static/js/api/payments/index.mjs +13 -0
- django_cfg/static/js/api/support/client.mjs +84 -0
- django_cfg/static/js/api/support/index.mjs +13 -0
- django_cfg/static/js/api/tasks/client.mjs +74 -0
- django_cfg/static/js/api/tasks/index.mjs +13 -0
- django_cfg/static/js/api/types.mjs +729 -0
- django_cfg/static/js/api-loader.mjs +169 -0
- django_cfg/templates/admin/snippets/zones/zones_table.html +4 -3
- django_cfg/templatetags/django_cfg.py +4 -4
- django_cfg/utils/path_resolution.py +49 -50
- django_cfg/utils/smart_defaults.py +27 -29
- django_cfg/utils/version_check.py +14 -14
- {django_cfg-1.4.21.dist-info → django_cfg-1.4.23.dist-info}/METADATA +1 -1
- django_cfg-1.4.23.dist-info/RECORD +1137 -0
- django_cfg/apps/payments/static/payments/js/api-client.js +0 -408
- django_cfg/modules/django_ipc_client/dashboard/README.md +0 -517
- django_cfg/modules/django_ipc_client/dashboard/UNFOLD_INTEGRATION.md +0 -439
- django_cfg/modules/django_ipc_client/dashboard/__init__.py +0 -11
- django_cfg/modules/django_ipc_client/dashboard/apps.py +0 -22
- django_cfg/modules/django_ipc_client/dashboard/templates/django_ipc_dashboard/dashboard.html +0 -200
- django_cfg/modules/django_ipc_client/dashboard/urls.py +0 -22
- django_cfg/modules/django_ipc_client/dashboard/urls_admin.py +0 -9
- django_cfg/modules/django_ipc_client/dashboard/views.py +0 -251
- django_cfg/modules/django_rpc_old/POETRY.md +0 -344
- django_cfg/modules/django_rpc_old/README.md +0 -397
- django_cfg/modules/django_rpc_old/TESTING.md +0 -358
- django_cfg/modules/django_rpc_old/__init__.py +0 -39
- django_cfg/modules/django_rpc_old/client.py +0 -531
- django_cfg/modules/django_rpc_old/config.py +0 -279
- django_cfg/modules/django_rpc_old/exceptions.py +0 -172
- django_cfg/modules/django_unfold/callbacks/revolution.py +0 -81
- django_cfg-1.4.21.dist-info/RECORD +0 -1111
- /django_cfg/{modules/django_ipc_client → apps/ipc}/README.md +0 -0
- /django_cfg/{modules/django_ipc_client → apps/ipc/services/client}/config.py +0 -0
- {django_cfg-1.4.21.dist-info → django_cfg-1.4.23.dist-info}/WHEEL +0 -0
- {django_cfg-1.4.21.dist-info → django_cfg-1.4.23.dist-info}/entry_points.txt +0 -0
- {django_cfg-1.4.21.dist-info → django_cfg-1.4.23.dist-info}/licenses/LICENSE +0 -0
@@ -5,9 +5,9 @@ Provides automatic URL registration for django_cfg endpoints and integrations.
|
|
5
5
|
"""
|
6
6
|
|
7
7
|
from typing import List
|
8
|
-
|
9
|
-
from django_cfg.core.environment import EnvironmentDetector
|
8
|
+
|
10
9
|
from django.conf import settings
|
10
|
+
from django.urls import URLPattern, include, path
|
11
11
|
|
12
12
|
|
13
13
|
def add_django_cfg_urls(urlpatterns: List[URLPattern]) -> List[URLPattern]:
|
@@ -72,20 +72,20 @@ def get_django_cfg_urls_info() -> dict:
|
|
72
72
|
Dictionary with complete URL integration info
|
73
73
|
"""
|
74
74
|
from django_cfg.config import (
|
75
|
-
LIB_NAME,
|
76
|
-
LIB_SITE_URL,
|
77
75
|
LIB_DOCS_URL,
|
78
76
|
LIB_GITHUB_URL,
|
79
|
-
LIB_SUPPORT_URL,
|
80
77
|
LIB_HEALTH_URL,
|
78
|
+
LIB_NAME,
|
79
|
+
LIB_SITE_URL,
|
80
|
+
LIB_SUPPORT_URL,
|
81
81
|
)
|
82
|
-
|
82
|
+
|
83
83
|
try:
|
84
84
|
from django_cfg import __version__
|
85
85
|
version = __version__
|
86
86
|
except ImportError:
|
87
87
|
version = "unknown"
|
88
|
-
|
88
|
+
|
89
89
|
# Get current config directly from Pydantic
|
90
90
|
config = None
|
91
91
|
try:
|
@@ -93,8 +93,8 @@ def get_django_cfg_urls_info() -> dict:
|
|
93
93
|
config = get_current_config()
|
94
94
|
except Exception:
|
95
95
|
pass
|
96
|
-
|
97
|
-
|
96
|
+
|
97
|
+
|
98
98
|
info = {
|
99
99
|
"django_cfg": {
|
100
100
|
"version": version,
|
@@ -110,7 +110,7 @@ def get_django_cfg_urls_info() -> dict:
|
|
110
110
|
"startup_info_mode": config.startup_info_mode if config else "full",
|
111
111
|
}
|
112
112
|
}
|
113
|
-
|
113
|
+
|
114
114
|
# Add Django Client info if available
|
115
115
|
try:
|
116
116
|
from django_cfg.modules.django_client.core.config.service import DjangoOpenAPI
|
@@ -5,8 +5,9 @@ Checks PyPI for the latest version and caches results for 24 hours using cacheto
|
|
5
5
|
"""
|
6
6
|
|
7
7
|
import importlib.metadata
|
8
|
+
from typing import Any, Dict, Optional
|
9
|
+
|
8
10
|
import requests
|
9
|
-
from typing import Optional, Dict, Any
|
10
11
|
from cachetools import TTLCache
|
11
12
|
|
12
13
|
|
@@ -14,14 +15,14 @@ class VersionChecker:
|
|
14
15
|
"""
|
15
16
|
Checks for library updates on PyPI with 24-hour caching using cachetools.
|
16
17
|
"""
|
17
|
-
|
18
|
+
|
18
19
|
# Cache for 24 hours (86400 seconds)
|
19
20
|
CACHE_TTL = 86400
|
20
|
-
|
21
|
+
|
21
22
|
def __init__(self):
|
22
23
|
"""Initialize version checker with TTL cache."""
|
23
24
|
self._cache = TTLCache(maxsize=10, ttl=self.CACHE_TTL)
|
24
|
-
|
25
|
+
|
25
26
|
def get_package_name(self) -> str:
|
26
27
|
"""
|
27
28
|
Get package name automatically using importlib.metadata.
|
@@ -36,7 +37,7 @@ class VersionChecker:
|
|
36
37
|
except importlib.metadata.PackageNotFoundError:
|
37
38
|
# Fallback to hardcoded name
|
38
39
|
return 'django-cfg'
|
39
|
-
|
40
|
+
|
40
41
|
def get_latest_version(self) -> Optional[str]:
|
41
42
|
"""
|
42
43
|
Get latest version from PyPI with caching.
|
@@ -48,26 +49,26 @@ class VersionChecker:
|
|
48
49
|
cached_version = self._cache.get('latest_version')
|
49
50
|
if cached_version:
|
50
51
|
return cached_version
|
51
|
-
|
52
|
+
|
52
53
|
try:
|
53
54
|
package_name = self.get_package_name()
|
54
55
|
url = f"https://pypi.org/pypi/{package_name}/json"
|
55
|
-
|
56
|
+
|
56
57
|
response = requests.get(url, timeout=5)
|
57
58
|
response.raise_for_status()
|
58
|
-
|
59
|
+
|
59
60
|
data = response.json()
|
60
61
|
version = data["info"]["version"]
|
61
|
-
|
62
|
+
|
62
63
|
# Cache the result
|
63
64
|
self._cache['latest_version'] = version
|
64
|
-
|
65
|
+
|
65
66
|
return version
|
66
|
-
|
67
|
+
|
67
68
|
except Exception:
|
68
69
|
# Silently fail - version checking is not critical
|
69
70
|
return None
|
70
|
-
|
71
|
+
|
71
72
|
def get_current_version(self) -> Optional[str]:
|
72
73
|
"""
|
73
74
|
Get current installed version using importlib.metadata.
|
@@ -85,7 +86,7 @@ class VersionChecker:
|
|
85
86
|
return importlib.metadata.version('django-cfg')
|
86
87
|
except importlib.metadata.PackageNotFoundError:
|
87
88
|
return None
|
88
|
-
|
89
|
+
|
89
90
|
def check_for_updates(self) -> Dict[str, Any]:
|
90
91
|
"""
|
91
92
|
Check if an update is available.
|
@@ -95,34 +96,34 @@ class VersionChecker:
|
|
95
96
|
"""
|
96
97
|
current = self.get_current_version()
|
97
98
|
latest = self.get_latest_version()
|
98
|
-
|
99
|
+
|
99
100
|
result = {
|
100
101
|
'current_version': current,
|
101
102
|
'latest_version': latest,
|
102
103
|
'update_available': False,
|
103
104
|
'update_url': None,
|
104
105
|
}
|
105
|
-
|
106
|
+
|
106
107
|
if current and latest and current != latest:
|
107
108
|
# Simple version comparison (assumes semantic versioning)
|
108
109
|
try:
|
109
110
|
current_parts = [int(x) for x in current.split('.')]
|
110
111
|
latest_parts = [int(x) for x in latest.split('.')]
|
111
|
-
|
112
|
+
|
112
113
|
# Pad shorter version with zeros
|
113
114
|
max_len = max(len(current_parts), len(latest_parts))
|
114
115
|
current_parts.extend([0] * (max_len - len(current_parts)))
|
115
116
|
latest_parts.extend([0] * (max_len - len(latest_parts)))
|
116
|
-
|
117
|
+
|
117
118
|
if latest_parts > current_parts:
|
118
119
|
result['update_available'] = True
|
119
120
|
package_name = self.get_package_name()
|
120
121
|
result['update_url'] = f"https://pypi.org/project/{package_name}/"
|
121
|
-
|
122
|
+
|
122
123
|
except (ValueError, AttributeError):
|
123
124
|
# Version comparison failed - skip update check
|
124
125
|
pass
|
125
|
-
|
126
|
+
|
126
127
|
return result
|
127
128
|
|
128
129
|
|
@@ -7,7 +7,7 @@ to specialized builders for actual work.
|
|
7
7
|
Size: ~100 lines (pure coordination, no business logic)
|
8
8
|
"""
|
9
9
|
|
10
|
-
from typing import List, Optional
|
10
|
+
from typing import TYPE_CHECKING, List, Optional
|
11
11
|
|
12
12
|
if TYPE_CHECKING:
|
13
13
|
from ..base.config_model import DjangoConfig
|
@@ -43,9 +43,9 @@ class ConfigService:
|
|
43
43
|
self.config = config
|
44
44
|
|
45
45
|
# Lazy initialization of builders
|
46
|
-
self._apps_builder: Optional[
|
47
|
-
self._middleware_builder: Optional[
|
48
|
-
self._security_builder: Optional[
|
46
|
+
self._apps_builder: Optional[InstalledAppsBuilder] = None
|
47
|
+
self._middleware_builder: Optional[MiddlewareBuilder] = None
|
48
|
+
self._security_builder: Optional[SecurityBuilder] = None
|
49
49
|
|
50
50
|
@property
|
51
51
|
def apps_builder(self) -> "InstalledAppsBuilder":
|
@@ -7,8 +7,8 @@ Extracted from original config.py for better organization.
|
|
7
7
|
Size: ~60 lines (simple state management)
|
8
8
|
"""
|
9
9
|
|
10
|
-
from typing import Optional, TYPE_CHECKING
|
11
10
|
import threading
|
11
|
+
from typing import TYPE_CHECKING, Optional
|
12
12
|
|
13
13
|
if TYPE_CHECKING:
|
14
14
|
from ..base.config_model import DjangoConfig
|
@@ -1,7 +1,14 @@
|
|
1
1
|
"""Core type definitions for django-cfg."""
|
2
2
|
|
3
|
+
from .aliases import (
|
4
|
+
AppLabel,
|
5
|
+
DatabaseAlias,
|
6
|
+
EnvironmentString,
|
7
|
+
MiddlewareLabel,
|
8
|
+
UrlPath,
|
9
|
+
UrlPattern,
|
10
|
+
)
|
3
11
|
from .enums import EnvironmentMode, StartupInfoMode
|
4
|
-
from .aliases import EnvironmentString, DatabaseAlias, AppLabel, MiddlewareLabel, UrlPath, UrlPattern
|
5
12
|
|
6
13
|
__all__ = [
|
7
14
|
"EnvironmentMode",
|
django_cfg/core/validation.py
CHANGED
@@ -8,11 +8,8 @@ Following CRITICAL_REQUIREMENTS.md:
|
|
8
8
|
- No exception suppression
|
9
9
|
"""
|
10
10
|
|
11
|
-
from typing import List, Dict, Any, Optional, Set, Tuple, TYPE_CHECKING
|
12
11
|
import re
|
13
|
-
from
|
14
|
-
|
15
|
-
from django_cfg.core.exceptions import ValidationError, ConfigurationError
|
12
|
+
from typing import TYPE_CHECKING, List
|
16
13
|
|
17
14
|
if TYPE_CHECKING:
|
18
15
|
from django_cfg.core.config import DjangoConfig
|
@@ -25,7 +22,7 @@ class ConfigurationValidator:
|
|
25
22
|
Validates configuration consistency, security requirements,
|
26
23
|
and Django compatibility with helpful error messages and suggestions.
|
27
24
|
"""
|
28
|
-
|
25
|
+
|
29
26
|
@classmethod
|
30
27
|
def validate(cls, config: 'DjangoConfig') -> List[str]:
|
31
28
|
"""
|
@@ -38,42 +35,42 @@ class ConfigurationValidator:
|
|
38
35
|
List of validation error messages (empty if valid)
|
39
36
|
"""
|
40
37
|
errors = []
|
41
|
-
|
38
|
+
|
42
39
|
try:
|
43
40
|
# Core validation
|
44
41
|
errors.extend(cls._validate_core_settings(config))
|
45
|
-
|
42
|
+
|
46
43
|
# Database validation
|
47
44
|
errors.extend(cls._validate_databases(config))
|
48
|
-
|
45
|
+
|
49
46
|
# Cache validation
|
50
47
|
errors.extend(cls._validate_caches(config))
|
51
|
-
|
48
|
+
|
52
49
|
# Security validation
|
53
50
|
errors.extend(cls._validate_security(config))
|
54
|
-
|
51
|
+
|
55
52
|
# Service validation
|
56
53
|
errors.extend(cls._validate_services(config))
|
57
|
-
|
54
|
+
|
58
55
|
# Environment-specific validation
|
59
56
|
errors.extend(cls._validate_environment_consistency(config))
|
60
|
-
|
57
|
+
|
61
58
|
except Exception as e:
|
62
59
|
errors.append(f"Validation failed with error: {e}")
|
63
|
-
|
60
|
+
|
64
61
|
return errors
|
65
|
-
|
62
|
+
|
66
63
|
@classmethod
|
67
64
|
def _validate_core_settings(cls, config: 'DjangoConfig') -> List[str]:
|
68
65
|
"""Validate core Django settings."""
|
69
66
|
errors = []
|
70
|
-
|
67
|
+
|
71
68
|
# Project name validation
|
72
69
|
if not config.project_name or not config.project_name.strip():
|
73
70
|
errors.append("Project name is required and cannot be empty")
|
74
71
|
elif len(config.project_name) > 100:
|
75
72
|
errors.append("Project name cannot exceed 100 characters")
|
76
|
-
|
73
|
+
|
77
74
|
# Secret key validation
|
78
75
|
if not config.secret_key:
|
79
76
|
errors.append("SECRET_KEY is required")
|
@@ -90,7 +87,7 @@ class ConfigurationValidator:
|
|
90
87
|
'test-key',
|
91
88
|
'1234567890',
|
92
89
|
]
|
93
|
-
|
90
|
+
|
94
91
|
secret_lower = config.secret_key.lower()
|
95
92
|
for pattern in insecure_patterns:
|
96
93
|
if pattern in secret_lower:
|
@@ -98,7 +95,7 @@ class ConfigurationValidator:
|
|
98
95
|
f"Insecure SECRET_KEY pattern '{pattern}' detected in production environment"
|
99
96
|
)
|
100
97
|
break
|
101
|
-
|
98
|
+
|
102
99
|
# Allowed hosts validation (now generated from security_domains)
|
103
100
|
allowed_hosts = config.get_allowed_hosts()
|
104
101
|
if not allowed_hosts:
|
@@ -108,85 +105,85 @@ class ConfigurationValidator:
|
|
108
105
|
for i, host in enumerate(allowed_hosts):
|
109
106
|
if not cls._is_valid_hostname(host):
|
110
107
|
errors.append(f"Invalid hostname in ALLOWED_HOSTS[{i}]: '{host}'")
|
111
|
-
|
108
|
+
|
112
109
|
# Production-specific validation
|
113
110
|
if config.env_mode == 'production' and '*' in allowed_hosts:
|
114
111
|
errors.append("Wildcard '*' in ALLOWED_HOSTS is not recommended for production")
|
115
|
-
|
112
|
+
|
116
113
|
return errors
|
117
|
-
|
114
|
+
|
118
115
|
@classmethod
|
119
116
|
def _validate_databases(cls, config: 'DjangoConfig') -> List[str]:
|
120
117
|
"""Validate database configuration."""
|
121
118
|
errors = []
|
122
|
-
|
119
|
+
|
123
120
|
if not config.databases:
|
124
121
|
errors.append("At least one database must be configured")
|
125
122
|
return errors
|
126
|
-
|
123
|
+
|
127
124
|
# Check for default database
|
128
125
|
if 'default' not in config.databases:
|
129
126
|
errors.append("'default' database is required")
|
130
|
-
|
127
|
+
|
131
128
|
return errors
|
132
|
-
|
129
|
+
|
133
130
|
@classmethod
|
134
131
|
def _validate_caches(cls, config: 'DjangoConfig') -> List[str]:
|
135
132
|
"""Validate cache configuration."""
|
136
133
|
errors = []
|
137
134
|
# Basic cache validation - more detailed validation in cache models
|
138
135
|
return errors
|
139
|
-
|
136
|
+
|
140
137
|
@classmethod
|
141
138
|
def _validate_security(cls, config: 'DjangoConfig') -> List[str]:
|
142
139
|
"""Validate security configuration."""
|
143
140
|
errors = []
|
144
|
-
|
141
|
+
|
145
142
|
# Environment-specific security validation
|
146
143
|
if config.env_mode == 'production':
|
147
144
|
# Allow DEBUG=True in production for development purposes
|
148
145
|
pass
|
149
|
-
|
146
|
+
|
150
147
|
return errors
|
151
|
-
|
148
|
+
|
152
149
|
@classmethod
|
153
150
|
def _validate_services(cls, config: 'DjangoConfig') -> List[str]:
|
154
151
|
"""Validate service configurations."""
|
155
152
|
errors = []
|
156
153
|
# Service validation handled by service models
|
157
154
|
return errors
|
158
|
-
|
155
|
+
|
159
156
|
@classmethod
|
160
157
|
def _validate_environment_consistency(cls, config: 'DjangoConfig') -> List[str]:
|
161
158
|
"""Validate environment-specific consistency."""
|
162
159
|
errors = []
|
163
|
-
|
160
|
+
|
164
161
|
environment = config.env_mode
|
165
|
-
|
162
|
+
|
166
163
|
if environment == 'production':
|
167
164
|
# Production requirements - allow DEBUG=True for development
|
168
165
|
pass
|
169
|
-
|
166
|
+
|
170
167
|
return errors
|
171
|
-
|
168
|
+
|
172
169
|
@classmethod
|
173
170
|
def _is_valid_hostname(cls, hostname: str) -> bool:
|
174
171
|
"""Validate hostname format."""
|
175
172
|
if not hostname:
|
176
173
|
return False
|
177
|
-
|
174
|
+
|
178
175
|
if hostname == "*":
|
179
176
|
return True # Wildcard is valid
|
180
|
-
|
177
|
+
|
181
178
|
# Basic hostname validation
|
182
179
|
if len(hostname) > 253:
|
183
180
|
return False
|
184
|
-
|
181
|
+
|
185
182
|
# Allow IPv4 addresses
|
186
183
|
ipv4_pattern = r'^(\d{1,3}\.){3}\d{1,3}$'
|
187
184
|
if re.match(ipv4_pattern, hostname):
|
188
185
|
return True
|
189
|
-
|
186
|
+
|
190
187
|
# Hostname pattern
|
191
188
|
hostname_pattern = r'^[a-zA-Z0-9]([a-zA-Z0-9\-\.]*[a-zA-Z0-9])?$'
|
192
189
|
return bool(re.match(hostname_pattern, hostname))
|
@@ -195,4 +192,4 @@ class ConfigurationValidator:
|
|
195
192
|
# Export the main class
|
196
193
|
__all__ = [
|
197
194
|
"ConfigurationValidator",
|
198
|
-
]
|
195
|
+
]
|
@@ -8,7 +8,9 @@ Usage:
|
|
8
8
|
python manage.py check_endpoints
|
9
9
|
"""
|
10
10
|
|
11
|
-
from django_cfg.modules.django_admin.management.commands.check_endpoints import
|
11
|
+
from django_cfg.modules.django_admin.management.commands.check_endpoints import (
|
12
|
+
Command as CheckEndpointsCommand,
|
13
|
+
)
|
12
14
|
|
13
15
|
|
14
16
|
class Command(CheckEndpointsCommand):
|
@@ -8,7 +8,9 @@ Usage:
|
|
8
8
|
python manage.py check_settings
|
9
9
|
"""
|
10
10
|
|
11
|
-
from django_cfg.modules.django_admin.management.commands.check_settings import
|
11
|
+
from django_cfg.modules.django_admin.management.commands.check_settings import (
|
12
|
+
Command as CheckSettingsCommand,
|
13
|
+
)
|
12
14
|
|
13
15
|
|
14
16
|
class Command(CheckSettingsCommand):
|
@@ -8,7 +8,9 @@ Usage:
|
|
8
8
|
python manage.py clear_constance
|
9
9
|
"""
|
10
10
|
|
11
|
-
from django_cfg.modules.django_admin.management.commands.clear_constance import
|
11
|
+
from django_cfg.modules.django_admin.management.commands.clear_constance import (
|
12
|
+
Command as ClearConstanceCommand,
|
13
|
+
)
|
12
14
|
|
13
15
|
|
14
16
|
class Command(ClearConstanceCommand):
|
@@ -8,7 +8,9 @@ Usage:
|
|
8
8
|
python manage.py create_token
|
9
9
|
"""
|
10
10
|
|
11
|
-
from django_cfg.modules.django_admin.management.commands.create_token import
|
11
|
+
from django_cfg.modules.django_admin.management.commands.create_token import (
|
12
|
+
Command as CreateTokenCommand,
|
13
|
+
)
|
12
14
|
|
13
15
|
|
14
16
|
class Command(CreateTokenCommand):
|
@@ -10,7 +10,9 @@ Usage:
|
|
10
10
|
python manage.py generate_clients --list-groups
|
11
11
|
"""
|
12
12
|
|
13
|
-
from django_cfg.modules.django_client.management.commands.generate_client import
|
13
|
+
from django_cfg.modules.django_client.management.commands.generate_client import (
|
14
|
+
Command as DjangoClientCommand,
|
15
|
+
)
|
14
16
|
|
15
17
|
|
16
18
|
class Command(DjangoClientCommand):
|
@@ -8,7 +8,9 @@ Usage:
|
|
8
8
|
python manage.py migrate_all
|
9
9
|
"""
|
10
10
|
|
11
|
-
from django_cfg.modules.django_admin.management.commands.migrate_all import
|
11
|
+
from django_cfg.modules.django_admin.management.commands.migrate_all import (
|
12
|
+
Command as MigrateAllCommand,
|
13
|
+
)
|
12
14
|
|
13
15
|
|
14
16
|
class Command(MigrateAllCommand):
|
@@ -10,7 +10,9 @@ Usage:
|
|
10
10
|
python manage.py rundramatiq --queues default high_priority
|
11
11
|
"""
|
12
12
|
|
13
|
-
from django_cfg.modules.django_tasks.management.commands.rundramatiq import
|
13
|
+
from django_cfg.modules.django_tasks.management.commands.rundramatiq import (
|
14
|
+
Command as DramatiqCommand,
|
15
|
+
)
|
14
16
|
|
15
17
|
|
16
18
|
class Command(DramatiqCommand):
|
@@ -8,7 +8,9 @@ Usage:
|
|
8
8
|
python manage.py rundramatiq_simulator
|
9
9
|
"""
|
10
10
|
|
11
|
-
from django_cfg.modules.django_tasks.management.commands.rundramatiq_simulator import
|
11
|
+
from django_cfg.modules.django_tasks.management.commands.rundramatiq_simulator import (
|
12
|
+
Command as SimulatorCommand,
|
13
|
+
)
|
12
14
|
|
13
15
|
|
14
16
|
class Command(SimulatorCommand):
|
@@ -10,7 +10,9 @@ Usage:
|
|
10
10
|
python manage.py runserver_ngrok --no-ngrok
|
11
11
|
"""
|
12
12
|
|
13
|
-
from django_cfg.modules.django_ngrok.management.commands.runserver_ngrok import
|
13
|
+
from django_cfg.modules.django_ngrok.management.commands.runserver_ngrok import (
|
14
|
+
Command as NgrokCommand,
|
15
|
+
)
|
14
16
|
|
15
17
|
|
16
18
|
class Command(NgrokCommand):
|
@@ -10,7 +10,9 @@ Usage:
|
|
10
10
|
python manage.py show_config --include-secrets
|
11
11
|
"""
|
12
12
|
|
13
|
-
from django_cfg.modules.django_admin.management.commands.show_config import
|
13
|
+
from django_cfg.modules.django_admin.management.commands.show_config import (
|
14
|
+
Command as ShowConfigCommand,
|
15
|
+
)
|
14
16
|
|
15
17
|
|
16
18
|
class Command(ShowConfigCommand):
|
@@ -10,7 +10,9 @@ Usage:
|
|
10
10
|
python manage.py superuser --username admin --email admin@example.com --password secret
|
11
11
|
"""
|
12
12
|
|
13
|
-
from django_cfg.modules.django_admin.management.commands.superuser import
|
13
|
+
from django_cfg.modules.django_admin.management.commands.superuser import (
|
14
|
+
Command as SuperuserCommand,
|
15
|
+
)
|
14
16
|
|
15
17
|
|
16
18
|
class Command(SuperuserCommand):
|
@@ -11,7 +11,9 @@ Usage:
|
|
11
11
|
python manage.py task_clear --confirm
|
12
12
|
"""
|
13
13
|
|
14
|
-
from django_cfg.modules.django_tasks.management.commands.task_clear import
|
14
|
+
from django_cfg.modules.django_tasks.management.commands.task_clear import (
|
15
|
+
Command as TaskClearCommand,
|
16
|
+
)
|
15
17
|
|
16
18
|
|
17
19
|
class Command(TaskClearCommand):
|
@@ -10,7 +10,9 @@ Usage:
|
|
10
10
|
python manage.py task_status --verbose
|
11
11
|
"""
|
12
12
|
|
13
|
-
from django_cfg.modules.django_tasks.management.commands.task_status import
|
13
|
+
from django_cfg.modules.django_tasks.management.commands.task_status import (
|
14
|
+
Command as TaskStatusCommand,
|
15
|
+
)
|
14
16
|
|
15
17
|
|
16
18
|
class Command(TaskStatusCommand):
|
@@ -10,7 +10,9 @@ Usage:
|
|
10
10
|
python manage.py test_email --subject "Test Subject" --message "Test Message"
|
11
11
|
"""
|
12
12
|
|
13
|
-
from django_cfg.modules.django_email.management.commands.test_email import
|
13
|
+
from django_cfg.modules.django_email.management.commands.test_email import (
|
14
|
+
Command as TestEmailCommand,
|
15
|
+
)
|
14
16
|
|
15
17
|
|
16
18
|
class Command(TestEmailCommand):
|
@@ -9,7 +9,9 @@ Usage:
|
|
9
9
|
python manage.py test_telegram --message "Test notification"
|
10
10
|
"""
|
11
11
|
|
12
|
-
from django_cfg.modules.django_telegram.management.commands.test_telegram import
|
12
|
+
from django_cfg.modules.django_telegram.management.commands.test_telegram import (
|
13
|
+
Command as TestTelegramCommand,
|
14
|
+
)
|
13
15
|
|
14
16
|
|
15
17
|
class Command(TestTelegramCommand):
|
@@ -10,7 +10,9 @@ Usage:
|
|
10
10
|
python manage.py test_twilio --to +1234567890 --message "Test SMS"
|
11
11
|
"""
|
12
12
|
|
13
|
-
from django_cfg.modules.django_twilio.management.commands.test_twilio import
|
13
|
+
from django_cfg.modules.django_twilio.management.commands.test_twilio import (
|
14
|
+
Command as TestTwilioCommand,
|
15
|
+
)
|
14
16
|
|
15
17
|
|
16
18
|
class Command(TestTwilioCommand):
|
@@ -7,4 +7,6 @@ django_cfg.modules.django_client.management.commands.validate_openapi
|
|
7
7
|
For backward compatibility and discoverability.
|
8
8
|
"""
|
9
9
|
|
10
|
-
from django_cfg.modules.django_client.management.commands.validate_openapi import
|
10
|
+
from django_cfg.modules.django_client.management.commands.validate_openapi import (
|
11
|
+
Command, # noqa: F401
|
12
|
+
)
|