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.
- django_cfg/__init__.py +1 -1
- django_cfg/apps/accounts/admin/user_admin.py +39 -16
- django_cfg/apps/accounts/serializers/profile.py +1 -1
- django_cfg/apps/accounts/services/otp_service.py +18 -11
- django_cfg/apps/accounts/signals.py +15 -24
- django_cfg/apps/accounts/utils/notifications.py +217 -358
- django_cfg/apps/accounts/views/otp.py +2 -2
- django_cfg/apps/accounts/views/webhook.py +1 -1
- django_cfg/apps/agents/core/django_agent.py +1 -1
- django_cfg/apps/agents/examples/__init__.py +3 -0
- django_cfg/apps/agents/examples/simple_example.py +161 -0
- django_cfg/apps/api/commands/views.py +66 -83
- django_cfg/apps/api/health/drf_views.py +269 -0
- django_cfg/apps/api/health/serializers.py +45 -0
- django_cfg/apps/api/health/urls.py +6 -1
- django_cfg/apps/knowbase/admin/actions/__init__.py +13 -0
- django_cfg/apps/knowbase/admin/actions/visibility_actions.py +56 -0
- django_cfg/apps/knowbase/admin/document_admin.py +136 -270
- django_cfg/apps/knowbase/admin/helpers/__init__.py +17 -0
- django_cfg/apps/knowbase/admin/helpers/configs.py +72 -0
- django_cfg/apps/knowbase/admin/helpers/display_helpers.py +156 -0
- django_cfg/apps/knowbase/admin/helpers/statistics.py +108 -0
- django_cfg/apps/knowbase/config/constance_fields.py +1 -1
- django_cfg/apps/knowbase/config/settings.py +2 -2
- django_cfg/apps/knowbase/examples/__init__.py +3 -0
- django_cfg/apps/knowbase/examples/external_data_usage.py +191 -0
- django_cfg/apps/knowbase/mixins/__init__.py +19 -2
- django_cfg/apps/knowbase/mixins/config/__init__.py +14 -0
- django_cfg/apps/knowbase/mixins/config/defaults.py +75 -0
- django_cfg/apps/knowbase/mixins/config/meta_config.py +120 -0
- django_cfg/apps/knowbase/mixins/creator.py +10 -10
- django_cfg/apps/knowbase/mixins/examples/vehicle_model_example.py +199 -0
- django_cfg/apps/knowbase/mixins/external_data_mixin.py +105 -403
- django_cfg/apps/knowbase/mixins/generators/__init__.py +16 -0
- django_cfg/apps/knowbase/mixins/generators/content_generator.py +218 -0
- django_cfg/apps/knowbase/mixins/generators/field_analyzer.py +76 -0
- django_cfg/apps/knowbase/mixins/generators/metadata_generator.py +124 -0
- django_cfg/apps/knowbase/mixins/service.py +2 -2
- django_cfg/apps/knowbase/services/archive/__init__.py +1 -0
- django_cfg/apps/knowbase/services/archive/analyzers/__init__.py +17 -0
- django_cfg/apps/knowbase/services/archive/analyzers/complexity_analyzer.py +33 -0
- django_cfg/apps/knowbase/services/archive/analyzers/purpose_detector.py +36 -0
- django_cfg/apps/knowbase/services/archive/analyzers/quality_analyzer.py +39 -0
- django_cfg/apps/knowbase/services/archive/analyzers/tag_generator.py +103 -0
- django_cfg/apps/knowbase/services/archive/chunking/__init__.py +19 -0
- django_cfg/apps/knowbase/services/archive/chunking/base.py +81 -0
- django_cfg/apps/knowbase/services/archive/chunking/json_chunker.py +62 -0
- django_cfg/apps/knowbase/services/archive/chunking/markdown_chunker.py +107 -0
- django_cfg/apps/knowbase/services/archive/chunking/python_chunker.py +248 -0
- django_cfg/apps/knowbase/services/archive/chunking/text_chunker.py +70 -0
- django_cfg/apps/knowbase/services/archive/chunking_service.py +110 -729
- django_cfg/apps/knowbase/services/archive/context/__init__.py +14 -0
- django_cfg/apps/knowbase/services/archive/context/builders.py +220 -0
- django_cfg/apps/knowbase/services/archive/context/models.py +38 -0
- django_cfg/apps/knowbase/services/embedding/models.py +18 -14
- django_cfg/apps/knowbase/services/embedding/processors.py +6 -3
- django_cfg/apps/knowbase/tasks/document_processing.py +11 -3
- django_cfg/apps/leads/tests.py +1 -1
- django_cfg/apps/payments/admin/api_keys_admin.py +1 -1
- django_cfg/apps/payments/admin/balance_admin.py +1 -1
- django_cfg/apps/payments/admin/currencies_admin.py +1 -1
- django_cfg/apps/payments/admin/payments_admin.py +1 -1
- django_cfg/apps/payments/admin/subscriptions_admin.py +1 -1
- django_cfg/apps/payments/admin_interface/templates/payments/base.html +59 -126
- django_cfg/apps/payments/admin_interface/views/api/payments.py +1 -1
- django_cfg/apps/payments/admin_interface/views/api/stats.py +1 -1
- django_cfg/apps/payments/admin_interface/views/api/users.py +1 -1
- django_cfg/apps/payments/admin_interface/views/api/webhook_admin.py +1 -1
- django_cfg/apps/payments/admin_interface/views/api/webhook_public.py +1 -1
- django_cfg/apps/payments/admin_interface/views/base.py +29 -2
- django_cfg/apps/payments/apps.py +1 -1
- django_cfg/apps/payments/config/django_cfg_integration.py +2 -2
- django_cfg/apps/payments/config/helpers.py +3 -2
- django_cfg/apps/payments/management/commands/cleanup_expired_data.py +1 -1
- django_cfg/apps/payments/management/commands/currency_stats.py +1 -1
- django_cfg/apps/payments/management/commands/manage_currencies.py +1 -1
- django_cfg/apps/payments/management/commands/manage_providers.py +1 -1
- django_cfg/apps/payments/management/commands/process_pending_payments.py +1 -1
- django_cfg/apps/payments/management/commands/test_providers.py +1 -1
- django_cfg/apps/payments/middleware/api_access.py +1 -1
- django_cfg/apps/payments/middleware/rate_limiting.py +1 -1
- django_cfg/apps/payments/middleware/usage_tracking.py +1 -1
- django_cfg/apps/payments/models/balance.py +2 -2
- django_cfg/apps/payments/models/managers/api_key_managers.py +1 -1
- django_cfg/apps/payments/models/managers/balance_managers.py +1 -1
- django_cfg/apps/payments/models/managers/currency_managers.py +1 -1
- django_cfg/apps/payments/models/managers/payment_managers.py +1 -1
- django_cfg/apps/payments/models/managers/subscription_managers.py +1 -1
- django_cfg/apps/payments/models/payments.py +2 -2
- django_cfg/apps/payments/services/cache_service/__init__.py +1 -1
- django_cfg/apps/payments/services/cache_service/simple_cache.py +10 -5
- django_cfg/apps/payments/services/core/base.py +1 -1
- django_cfg/apps/payments/services/core/currency/__init__.py +13 -0
- django_cfg/apps/payments/services/core/currency/currency_converter.py +57 -0
- django_cfg/apps/payments/services/core/currency/currency_validator.py +61 -0
- django_cfg/apps/payments/services/core/operations/__init__.py +15 -0
- django_cfg/apps/payments/services/core/operations/payment_canceller.py +100 -0
- django_cfg/apps/payments/services/core/operations/payment_creator.py +196 -0
- django_cfg/apps/payments/services/core/operations/status_checker.py +100 -0
- django_cfg/apps/payments/services/core/payment_service.py +124 -612
- django_cfg/apps/payments/services/core/providers/__init__.py +13 -0
- django_cfg/apps/payments/services/core/providers/provider_client.py +132 -0
- django_cfg/apps/payments/services/core/providers/status_mapper.py +89 -0
- django_cfg/apps/payments/services/core/utils/__init__.py +13 -0
- django_cfg/apps/payments/services/core/utils/data_converter.py +48 -0
- django_cfg/apps/payments/services/core/utils/statistics_calculator.py +69 -0
- django_cfg/apps/payments/services/providers/base.py +1 -1
- django_cfg/apps/payments/services/providers/nowpayments/__init__.py +3 -3
- django_cfg/apps/payments/services/providers/nowpayments/parsers/__init__.py +9 -0
- django_cfg/apps/payments/services/providers/nowpayments/parsers/data/__init__.py +23 -0
- django_cfg/apps/payments/services/providers/nowpayments/parsers/data/constants.py +23 -0
- django_cfg/apps/payments/services/providers/nowpayments/parsers/data/currency_names.py +244 -0
- django_cfg/apps/payments/services/providers/nowpayments/parsers/data/patterns.py +511 -0
- django_cfg/apps/payments/services/providers/nowpayments/parsers/parser.py +168 -0
- django_cfg/apps/payments/services/providers/nowpayments/provider.py +1 -1
- django_cfg/apps/payments/services/providers/nowpayments/sync.py +1 -1
- django_cfg/apps/payments/services/providers/registry.py +1 -1
- django_cfg/apps/payments/services/providers/sync_service.py +1 -1
- django_cfg/apps/payments/signals/__init__.py +1 -1
- django_cfg/apps/payments/signals/api_key_signals.py +1 -1
- django_cfg/apps/payments/signals/balance_signals.py +1 -1
- django_cfg/apps/payments/signals/payment_signals.py +1 -1
- django_cfg/apps/payments/signals/subscription_signals.py +1 -1
- django_cfg/apps/payments/views/api/api_keys.py +1 -1
- django_cfg/apps/payments/views/api/balances.py +1 -1
- django_cfg/apps/payments/views/api/base.py +1 -1
- django_cfg/apps/payments/views/api/currencies.py +1 -1
- django_cfg/apps/payments/views/api/payments.py +1 -1
- django_cfg/apps/payments/views/api/subscriptions.py +1 -1
- django_cfg/apps/payments/views/api/webhooks.py +1 -1
- django_cfg/apps/payments/views/serializers/api_keys.py +1 -1
- django_cfg/apps/payments/views/serializers/balances.py +1 -1
- django_cfg/apps/payments/views/serializers/currencies.py +1 -1
- django_cfg/apps/payments/views/serializers/payments.py +1 -1
- django_cfg/apps/payments/views/serializers/subscriptions.py +1 -1
- django_cfg/apps/payments/views/serializers/webhooks.py +1 -1
- django_cfg/apps/support/admin/support_admin.py +21 -13
- django_cfg/apps/support/templates/support/chat/access_denied.html +21 -27
- django_cfg/apps/support/templates/support/chat/ticket_chat.html +183 -254
- django_cfg/apps/support/utils/support_email_service.py +1 -1
- django_cfg/apps/tasks/templates/tasks/layout/base.html +20 -115
- django_cfg/apps/tasks/utils/simulator.py +1 -1
- django_cfg/apps/tasks/views/dashboard.py +33 -3
- django_cfg/apps/urls.py +5 -1
- django_cfg/cli/README.md +57 -471
- django_cfg/cli/commands/create_project.py +140 -529
- django_cfg/cli/main.py +13 -10
- django_cfg/core/__init__.py +63 -6
- django_cfg/core/base/__init__.py +5 -0
- django_cfg/core/base/config_model.py +652 -0
- django_cfg/core/builders/__init__.py +11 -0
- django_cfg/core/builders/apps_builder.py +258 -0
- django_cfg/core/builders/middleware_builder.py +115 -0
- django_cfg/core/builders/security_builder.py +96 -0
- django_cfg/core/config.py +20 -892
- django_cfg/core/constants.py +69 -0
- django_cfg/core/environment/__init__.py +9 -0
- django_cfg/core/exceptions.py +45 -298
- django_cfg/core/generation/__init__.py +51 -0
- django_cfg/core/generation/core_generators/__init__.py +0 -0
- django_cfg/core/generation/core_generators/settings.py +90 -0
- django_cfg/core/generation/core_generators/static.py +82 -0
- django_cfg/core/generation/core_generators/templates.py +141 -0
- django_cfg/core/generation/data_generators/__init__.py +15 -0
- django_cfg/core/generation/data_generators/cache.py +132 -0
- django_cfg/core/generation/data_generators/database.py +117 -0
- django_cfg/core/generation/generation.py +92 -0
- django_cfg/core/generation/integration_generators/__init__.py +21 -0
- django_cfg/core/generation/integration_generators/api.py +237 -0
- django_cfg/core/generation/integration_generators/sessions.py +65 -0
- django_cfg/core/generation/integration_generators/tailwind.py +54 -0
- django_cfg/core/generation/integration_generators/tasks.py +92 -0
- django_cfg/core/generation/integration_generators/third_party.py +144 -0
- django_cfg/core/generation/orchestrator.py +285 -0
- django_cfg/core/generation/protocols.py +30 -0
- django_cfg/core/generation/security_generators/__init__.py +0 -0
- django_cfg/core/generation/utility_generators/__init__.py +24 -0
- django_cfg/core/generation/utility_generators/email.py +58 -0
- django_cfg/core/generation/utility_generators/i18n.py +66 -0
- django_cfg/core/generation/utility_generators/limits.py +58 -0
- django_cfg/core/generation/utility_generators/logging.py +66 -0
- django_cfg/core/generation/utility_generators/security.py +101 -0
- django_cfg/core/generation/utils/__init__.py +0 -0
- django_cfg/core/generation/utils/helpers.py +32 -0
- django_cfg/core/integration/__init__.py +18 -25
- django_cfg/core/integration/display/startup.py +146 -133
- django_cfg/core/integration/url_integration.py +13 -2
- django_cfg/core/services/__init__.py +5 -0
- django_cfg/core/services/config_service.py +121 -0
- django_cfg/core/state/__init__.py +9 -0
- django_cfg/core/state/registry.py +84 -0
- django_cfg/core/types/__init__.py +15 -0
- django_cfg/core/types/aliases.py +15 -0
- django_cfg/core/types/enums.py +49 -0
- django_cfg/dashboard/DEBUG_README.md +105 -0
- django_cfg/dashboard/REFACTORING_SUMMARY.md +237 -0
- django_cfg/dashboard/__init__.py +24 -0
- django_cfg/dashboard/components.py +308 -0
- django_cfg/dashboard/debug.py +176 -0
- django_cfg/dashboard/management/__init__.py +0 -0
- django_cfg/dashboard/management/commands/__init__.py +0 -0
- django_cfg/dashboard/management/commands/debug_dashboard.py +109 -0
- django_cfg/dashboard/sections/__init__.py +1 -0
- django_cfg/dashboard/sections/base.py +128 -0
- django_cfg/dashboard/sections/commands.py +32 -0
- django_cfg/dashboard/sections/overview.py +394 -0
- django_cfg/dashboard/sections/stats.py +48 -0
- django_cfg/dashboard/sections/system.py +73 -0
- django_cfg/management/commands/check_settings.py +6 -2
- django_cfg/management/commands/clear_constance.py +6 -1
- django_cfg/management/commands/create_token.py +5 -4
- django_cfg/management/commands/generate.py +5 -0
- django_cfg/management/commands/list_urls.py +7 -2
- django_cfg/management/commands/migrate_all.py +6 -2
- django_cfg/management/commands/migrator.py +6 -1
- django_cfg/management/commands/rundramatiq.py +6 -1
- django_cfg/management/commands/rundramatiq_simulator.py +11 -4
- django_cfg/management/commands/runserver_ngrok.py +9 -7
- django_cfg/management/commands/script.py +25 -21
- django_cfg/management/commands/show_config.py +6 -1
- django_cfg/management/commands/show_urls.py +8 -3
- django_cfg/management/commands/superuser.py +5 -4
- django_cfg/management/commands/task_clear.py +8 -3
- django_cfg/management/commands/task_status.py +8 -3
- django_cfg/management/commands/test_email.py +6 -1
- django_cfg/management/commands/test_telegram.py +6 -1
- django_cfg/management/commands/test_twilio.py +6 -1
- django_cfg/management/commands/tree.py +7 -4
- django_cfg/models/__init__.py +88 -3
- django_cfg/models/api/__init__.py +27 -0
- django_cfg/models/{api.py → api/config.py} +1 -1
- django_cfg/models/api/drf/__init__.py +21 -0
- django_cfg/models/api/drf/config.py +101 -0
- django_cfg/models/api/drf/redoc.py +31 -0
- django_cfg/models/api/drf/spectacular.py +129 -0
- django_cfg/models/api/drf/swagger.py +59 -0
- django_cfg/models/{api_keys.py → api/keys.py} +16 -6
- django_cfg/models/{limits.py → api/limits.py} +0 -1
- django_cfg/models/base/__init__.py +14 -0
- django_cfg/models/django/__init__.py +16 -0
- django_cfg/models/{constance.py → django/constance.py} +1 -1
- django_cfg/models/{environment.py → django/environment.py} +1 -1
- django_cfg/models/infrastructure/__init__.py +17 -0
- django_cfg/models/{cache.py → infrastructure/cache.py} +3 -2
- django_cfg/models/infrastructure/database/__init__.py +22 -0
- django_cfg/models/infrastructure/database/config.py +265 -0
- django_cfg/models/infrastructure/database/converters.py +91 -0
- django_cfg/models/infrastructure/database/parsers.py +96 -0
- django_cfg/models/infrastructure/database/routing.py +85 -0
- django_cfg/models/infrastructure/database/validators.py +170 -0
- django_cfg/models/{logging.py → infrastructure/logging.py} +1 -1
- django_cfg/models/{security.py → infrastructure/security.py} +2 -2
- django_cfg/models/ngrok/__init__.py +11 -0
- django_cfg/models/ngrok/auth.py +37 -0
- django_cfg/models/ngrok/config.py +77 -0
- django_cfg/models/ngrok/tunnel.py +35 -0
- django_cfg/models/payments/__init__.py +20 -0
- django_cfg/models/payments/api_keys.py +57 -0
- django_cfg/models/{payments.py → payments/config.py} +56 -154
- django_cfg/models/payments/providers/__init__.py +15 -0
- django_cfg/models/payments/providers/base.py +25 -0
- django_cfg/models/payments/providers/nowpayments.py +48 -0
- django_cfg/models/services/__init__.py +18 -0
- django_cfg/models/services/base.py +65 -0
- django_cfg/models/{email.py → services/email.py} +1 -1
- django_cfg/models/services/telegram.py +172 -0
- django_cfg/models/tasks/__init__.py +51 -0
- django_cfg/models/tasks/backends.py +250 -0
- django_cfg/models/tasks/config.py +314 -0
- django_cfg/models/tasks/utils.py +174 -0
- django_cfg/modules/base.py +18 -3
- django_cfg/modules/django_admin/decorators/actions.py +1 -1
- django_cfg/modules/django_admin/decorators/display.py +1 -1
- django_cfg/modules/django_admin/mixins/standalone_actions_mixin.py +1 -1
- django_cfg/modules/django_currency/examples/__init__.py +3 -0
- django_cfg/modules/django_currency/examples/example_database_usage.py +144 -0
- django_cfg/modules/django_drf_theme/CHANGELOG.md +210 -0
- django_cfg/modules/django_drf_theme/EXAMPLE.md +465 -0
- django_cfg/modules/django_drf_theme/IMPLEMENTATION.md +232 -0
- django_cfg/modules/django_drf_theme/README.md +207 -0
- django_cfg/modules/django_drf_theme/TAILWIND_CDN_GUIDE.md +274 -0
- django_cfg/modules/django_drf_theme/__init__.py +23 -0
- django_cfg/modules/django_drf_theme/apps.py +15 -0
- django_cfg/modules/django_drf_theme/renderers.py +58 -0
- django_cfg/modules/django_drf_theme/templates/rest_framework/tailwind/api.html +375 -0
- django_cfg/modules/django_drf_theme/templates/rest_framework/tailwind/base.html +938 -0
- django_cfg/modules/django_drf_theme/templates/rest_framework/tailwind/forms/filter_form.html +132 -0
- django_cfg/modules/django_drf_theme/templates/rest_framework/tailwind/forms/raw_data_form.html +123 -0
- django_cfg/modules/django_drf_theme/templatetags/__init__.py +1 -0
- django_cfg/modules/django_drf_theme/templatetags/tailwind_tags.py +57 -0
- django_cfg/modules/django_email/__init__.py +14 -0
- django_cfg/modules/{django_email.py → django_email/service.py} +78 -113
- django_cfg/modules/django_email/utils.py +40 -0
- django_cfg/modules/django_health/__init__.py +9 -0
- django_cfg/modules/{django_health.py → django_health/service.py} +23 -21
- django_cfg/modules/django_ipc_client/README.md +346 -0
- django_cfg/modules/django_ipc_client/__init__.py +51 -0
- django_cfg/modules/django_ipc_client/client.py +540 -0
- django_cfg/modules/django_ipc_client/config.py +207 -0
- django_cfg/modules/django_ipc_client/dashboard/README.md +517 -0
- django_cfg/modules/django_ipc_client/dashboard/UNFOLD_INTEGRATION.md +439 -0
- django_cfg/modules/django_ipc_client/dashboard/__init__.py +11 -0
- django_cfg/modules/django_ipc_client/dashboard/apps.py +22 -0
- django_cfg/modules/django_ipc_client/dashboard/monitor.py +435 -0
- django_cfg/modules/django_ipc_client/dashboard/static/django_ipc_dashboard/js/dashboard.js +373 -0
- django_cfg/modules/django_ipc_client/dashboard/templates/django_ipc_dashboard/base.html +76 -0
- django_cfg/modules/django_ipc_client/dashboard/templates/django_ipc_dashboard/dashboard.html +200 -0
- django_cfg/modules/django_ipc_client/dashboard/urls.py +22 -0
- django_cfg/modules/django_ipc_client/dashboard/urls_admin.py +9 -0
- django_cfg/modules/django_ipc_client/dashboard/views.py +251 -0
- django_cfg/modules/django_ipc_client/exceptions.py +201 -0
- django_cfg/modules/django_llm/llm/client.py +155 -550
- django_cfg/modules/django_llm/llm/embeddings/__init__.py +13 -0
- django_cfg/modules/django_llm/llm/embeddings/mock_embedder.py +106 -0
- django_cfg/modules/django_llm/llm/embeddings/openai_embedder.py +79 -0
- django_cfg/modules/django_llm/llm/models_api/__init__.py +9 -0
- django_cfg/modules/django_llm/llm/models_api/models_query.py +163 -0
- django_cfg/modules/django_llm/llm/providers/__init__.py +15 -0
- django_cfg/modules/django_llm/llm/providers/config_builder.py +103 -0
- django_cfg/modules/django_llm/llm/providers/provider_manager.py +148 -0
- django_cfg/modules/django_llm/llm/providers/provider_selector.py +60 -0
- django_cfg/modules/django_llm/llm/requests/__init__.py +15 -0
- django_cfg/modules/django_llm/llm/requests/cache_manager.py +170 -0
- django_cfg/modules/django_llm/llm/requests/chat_handler.py +199 -0
- django_cfg/modules/django_llm/llm/requests/embedding_handler.py +113 -0
- django_cfg/modules/django_llm/llm/responses/__init__.py +9 -0
- django_cfg/modules/django_llm/llm/responses/response_builder.py +131 -0
- django_cfg/modules/django_llm/llm/stats/__init__.py +9 -0
- django_cfg/modules/django_llm/llm/stats/stats_manager.py +107 -0
- django_cfg/modules/django_llm/translator/detectors/__init__.py +13 -0
- django_cfg/modules/django_llm/translator/detectors/language_detector.py +90 -0
- django_cfg/modules/django_llm/translator/detectors/script_detector.py +153 -0
- django_cfg/modules/django_llm/translator/stats/__init__.py +11 -0
- django_cfg/modules/django_llm/translator/stats/stats_tracker.py +85 -0
- django_cfg/modules/django_llm/translator/translator.py +150 -603
- django_cfg/modules/django_llm/translator/translators/__init__.py +15 -0
- django_cfg/modules/django_llm/translator/translators/json_translator.py +316 -0
- django_cfg/modules/django_llm/translator/translators/text_translator.py +139 -0
- django_cfg/modules/django_llm/translator/utils/__init__.py +13 -0
- django_cfg/modules/django_llm/translator/utils/prompt_builder.py +110 -0
- django_cfg/modules/django_llm/translator/utils/text_utils.py +114 -0
- django_cfg/modules/django_logging/FIXES_SUMMARY.md +276 -0
- django_cfg/modules/django_logging/LOGGING_GUIDE.md +504 -0
- django_cfg/modules/django_logging/__init__.py +14 -0
- django_cfg/modules/{django_logger.py → django_logging/django_logger.py} +13 -13
- django_cfg/modules/{logger.py → django_logging/logger.py} +14 -4
- django_cfg/modules/django_ngrok/__init__.py +39 -0
- django_cfg/modules/{django_ngrok.py → django_ngrok/service.py} +14 -42
- django_cfg/modules/django_rpc_old/POETRY.md +344 -0
- django_cfg/modules/django_rpc_old/README.md +397 -0
- django_cfg/modules/django_rpc_old/TESTING.md +358 -0
- django_cfg/modules/django_rpc_old/__init__.py +39 -0
- django_cfg/modules/django_rpc_old/client.py +531 -0
- django_cfg/modules/django_rpc_old/config.py +279 -0
- django_cfg/modules/django_rpc_old/exceptions.py +172 -0
- django_cfg/modules/django_tailwind/README.md +478 -0
- django_cfg/modules/django_tailwind/__init__.py +7 -0
- django_cfg/modules/django_tailwind/apps.py +10 -0
- django_cfg/modules/django_tailwind/templates/django_tailwind/app.html +5 -0
- django_cfg/modules/django_tailwind/templates/django_tailwind/base.html +117 -0
- django_cfg/modules/django_tailwind/templates/django_tailwind/components/navbar.html +124 -0
- django_cfg/modules/django_tailwind/templates/django_tailwind/components/theme_toggle.html +54 -0
- django_cfg/modules/django_tailwind/templates/django_tailwind/components/user_menu.html +116 -0
- django_cfg/modules/django_tailwind/templates/django_tailwind/simple.html +46 -0
- django_cfg/modules/django_tailwind/templatetags/__init__.py +1 -0
- django_cfg/modules/django_tailwind/templatetags/tailwind_info.py +185 -0
- django_cfg/modules/django_tasks/__init__.py +29 -0
- django_cfg/modules/django_tasks/factory.py +127 -0
- django_cfg/modules/{django_tasks.py → django_tasks/service.py} +45 -274
- django_cfg/modules/django_tasks/settings.py +107 -0
- django_cfg/modules/django_telegram/__init__.py +29 -0
- django_cfg/modules/{django_telegram.py → django_telegram/service.py} +45 -113
- django_cfg/modules/django_telegram/utils.py +62 -0
- django_cfg/modules/django_twilio/__init__.py +54 -107
- django_cfg/modules/django_twilio/_imports.py +30 -0
- django_cfg/modules/django_twilio/base.py +192 -0
- django_cfg/modules/django_twilio/email_otp.py +227 -0
- django_cfg/modules/django_twilio/sendgrid_service.py +1 -1
- django_cfg/modules/django_twilio/simple_service.py +1 -2
- django_cfg/modules/django_twilio/sms.py +94 -0
- django_cfg/modules/django_twilio/twilio_service.py +2 -3
- django_cfg/modules/django_twilio/unified.py +310 -0
- django_cfg/modules/django_twilio/utils.py +190 -0
- django_cfg/modules/django_twilio/whatsapp.py +137 -0
- django_cfg/modules/django_unfold/callbacks/base.py +198 -7
- django_cfg/modules/django_unfold/callbacks/main.py +102 -10
- django_cfg/modules/django_unfold/dashboard.py +65 -43
- django_cfg/modules/django_unfold/models/config.py +13 -12
- django_cfg/modules/django_unfold/models/navigation.py +8 -3
- django_cfg/modules/django_unfold/models/tabs.py +2 -2
- django_cfg/modules/django_unfold/templates/unfold/helpers/app_list.html +102 -0
- django_cfg/registry/core.py +24 -26
- django_cfg/registry/modules.py +5 -2
- django_cfg/registry/services.py +20 -3
- django_cfg/registry/third_party.py +8 -8
- django_cfg/static/admin/css/dashboard.css +260 -0
- django_cfg/static/admin/js/commands.js +171 -0
- django_cfg/static/admin/js/dashboard.js +126 -0
- django_cfg/templates/admin/components/management_commands.js +375 -0
- django_cfg/templates/admin/components/progress_bar.html +18 -23
- django_cfg/templates/admin/examples/component_class_example.html +156 -0
- django_cfg/templates/admin/index.html +48 -20
- django_cfg/templates/admin/index_new.html +106 -0
- django_cfg/templates/admin/layouts/base_dashboard.html +60 -0
- django_cfg/templates/admin/layouts/dashboard_with_tabs.html +1 -20
- django_cfg/templates/admin/sections/commands_section.html +626 -0
- django_cfg/templates/admin/sections/overview_section.html +112 -0
- django_cfg/templates/admin/sections/stats_section.html +35 -0
- django_cfg/templates/admin/sections/system_section.html +99 -0
- django_cfg/templates/admin/snippets/components/CHARTS_GUIDE.md +322 -0
- django_cfg/templates/admin/snippets/components/activity_tracker.html +85 -47
- django_cfg/templates/admin/snippets/components/charts_section.html +154 -64
- django_cfg/templates/admin/snippets/components/django_commands.html +3 -3
- django_cfg/templates/admin/snippets/components/recent_activity_improved.html +25 -0
- django_cfg/templates/admin/snippets/components/recent_users_table.html +1 -1
- django_cfg/templates/admin/snippets/components/system_metrics.html +179 -93
- django_cfg/templates/admin/snippets/zones/zones_table.html +2 -2
- django_cfg/templatetags/django_cfg.py +7 -1
- django_cfg/utils/smart_defaults.py +4 -4
- django_cfg-1.4.3.dist-info/METADATA +533 -0
- {django_cfg-1.3.13.dist-info → django_cfg-1.4.3.dist-info}/RECORD +432 -195
- django_cfg/apps/accounts/utils/auth_email_service.py +0 -84
- django_cfg/apps/payments/services/providers/nowpayments/parsers.py +0 -879
- django_cfg/core/generation.py +0 -621
- django_cfg/management/commands/validate_config.py +0 -189
- django_cfg/models/database.py +0 -480
- django_cfg/models/drf.py +0 -272
- django_cfg/models/ngrok.py +0 -122
- django_cfg/models/services.py +0 -440
- django_cfg/models/tasks.py +0 -550
- django_cfg/modules/django_twilio/service.py +0 -942
- django_cfg/template_archive/django_sample.zip +0 -0
- django_cfg/templates/rest_framework/api.html +0 -12
- django_cfg/utils/toolkit.py +0 -703
- django_cfg-1.3.13.dist-info/METADATA +0 -1029
- /django_cfg/apps/accounts/management/commands/{test_otp.py → otp_test.py} +0 -0
- /django_cfg/core/{environment.py → environment/detector.py} +0 -0
- /django_cfg/models/{cors.py → api/cors.py} +0 -0
- /django_cfg/models/{jwt.py → api/jwt.py} +0 -0
- /django_cfg/models/{base.py → base/config.py} +0 -0
- /django_cfg/models/{cfg.py → base/module.py} +0 -0
- /django_cfg/models/{revolution.py → django/revolution.py} +0 -0
- /django_cfg/modules/{dramatiq_setup.py → django_tasks/dramatiq_setup.py} +0 -0
- {django_cfg-1.3.13.dist-info → django_cfg-1.4.3.dist-info}/WHEEL +0 -0
- {django_cfg-1.3.13.dist-info → django_cfg-1.4.3.dist-info}/entry_points.txt +0 -0
- {django_cfg-1.3.13.dist-info → django_cfg-1.4.3.dist-info}/licenses/LICENSE +0 -0
@@ -13,7 +13,7 @@ from django.conf import settings
|
|
13
13
|
from django.core.exceptions import ImproperlyConfigured
|
14
14
|
from django.core.mail import get_connection
|
15
15
|
from datetime import datetime
|
16
|
-
from django_cfg.modules.
|
16
|
+
from django_cfg.modules.django_logging import get_logger
|
17
17
|
|
18
18
|
|
19
19
|
|
@@ -22,6 +22,10 @@ logger = get_logger('check_settings')
|
|
22
22
|
class Command(BaseCommand):
|
23
23
|
"""Command to check and debug django-cfg settings."""
|
24
24
|
|
25
|
+
# Web execution metadata
|
26
|
+
web_executable = True
|
27
|
+
requires_input = False
|
28
|
+
is_destructive = False
|
25
29
|
|
26
30
|
help = "Check and debug django-cfg configuration settings"
|
27
31
|
|
@@ -154,7 +158,7 @@ class Command(BaseCommand):
|
|
154
158
|
|
155
159
|
# Get current config
|
156
160
|
try:
|
157
|
-
from django_cfg.core.
|
161
|
+
from django_cfg.core.state import get_current_config
|
158
162
|
config = get_current_config()
|
159
163
|
|
160
164
|
if config:
|
@@ -6,7 +6,7 @@ Clear Constance configuration cache and database records.
|
|
6
6
|
from django.core.management.base import BaseCommand
|
7
7
|
from django.core.cache import cache
|
8
8
|
from django.conf import settings
|
9
|
-
from django_cfg.modules.
|
9
|
+
from django_cfg.modules.django_logging import get_logger
|
10
10
|
|
11
11
|
|
12
12
|
|
@@ -14,6 +14,11 @@ from django_cfg.modules.django_logger import get_logger
|
|
14
14
|
class Command(BaseCommand):
|
15
15
|
logger = get_logger('clear_constance')
|
16
16
|
|
17
|
+
# Web execution metadata
|
18
|
+
web_executable = False
|
19
|
+
requires_input = True
|
20
|
+
is_destructive = True
|
21
|
+
|
17
22
|
help = 'Clear Constance configuration cache and database records'
|
18
23
|
|
19
24
|
def add_arguments(self, parser):
|
@@ -12,10 +12,7 @@ from django.contrib.auth import get_user_model
|
|
12
12
|
from django.conf import settings
|
13
13
|
import questionary
|
14
14
|
from datetime import datetime, timedelta
|
15
|
-
from django_cfg.modules.
|
16
|
-
|
17
|
-
|
18
|
-
from django_cfg import ConfigToolkit
|
15
|
+
from django_cfg.modules.django_logging import get_logger
|
19
16
|
|
20
17
|
User = get_user_model()
|
21
18
|
|
@@ -23,6 +20,10 @@ User = get_user_model()
|
|
23
20
|
logger = get_logger('create_token')
|
24
21
|
|
25
22
|
class Command(BaseCommand):
|
23
|
+
# Web execution metadata
|
24
|
+
web_executable = False
|
25
|
+
requires_input = True
|
26
|
+
is_destructive = False
|
26
27
|
|
27
28
|
help = 'Create API tokens and authentication tokens'
|
28
29
|
|
@@ -14,6 +14,11 @@ from django_revolution.openapi.generator import OpenAPIGenerator
|
|
14
14
|
|
15
15
|
|
16
16
|
class Command(BaseCommand):
|
17
|
+
# Web execution metadata
|
18
|
+
web_executable = True
|
19
|
+
requires_input = False
|
20
|
+
is_destructive = False
|
21
|
+
|
17
22
|
help = "Generate Django Revolution clients (TypeScript and Python)"
|
18
23
|
|
19
24
|
def add_arguments(self, parser):
|
@@ -9,7 +9,7 @@ import re
|
|
9
9
|
from django.core.management.base import BaseCommand
|
10
10
|
from django.urls import get_resolver
|
11
11
|
from django.conf import settings
|
12
|
-
from django_cfg.modules.
|
12
|
+
from django_cfg.modules.django_logging import get_logger
|
13
13
|
|
14
14
|
|
15
15
|
# Rich imports for beautiful output
|
@@ -19,7 +19,7 @@ from rich.text import Text
|
|
19
19
|
from rich.table import Table
|
20
20
|
from rich.align import Align
|
21
21
|
|
22
|
-
from django_cfg.core.
|
22
|
+
from django_cfg.core.state import get_current_config
|
23
23
|
|
24
24
|
|
25
25
|
logger = get_logger('list_urls')
|
@@ -27,6 +27,11 @@ logger = get_logger('list_urls')
|
|
27
27
|
class Command(BaseCommand):
|
28
28
|
"""Command to display all available URLs in the project."""
|
29
29
|
|
30
|
+
# Web execution metadata
|
31
|
+
web_executable = True
|
32
|
+
requires_input = False
|
33
|
+
is_destructive = False
|
34
|
+
|
30
35
|
help = "Display all available URLs with Rich formatting"
|
31
36
|
|
32
37
|
def __init__(self, *args, **kwargs):
|
@@ -6,15 +6,19 @@ Migrate all databases based on django-cfg configuration.
|
|
6
6
|
from django.core.management.base import BaseCommand
|
7
7
|
from django.core.management import call_command
|
8
8
|
from django.apps import apps
|
9
|
-
from django_cfg.modules.
|
9
|
+
from django_cfg.modules.django_logging import get_logger
|
10
10
|
|
11
11
|
|
12
|
-
from django_cfg.core.
|
12
|
+
from django_cfg.core.state import get_current_config
|
13
13
|
|
14
14
|
|
15
15
|
logger = get_logger('migrate_all')
|
16
16
|
|
17
17
|
class Command(BaseCommand):
|
18
|
+
# Web execution metadata
|
19
|
+
web_executable = False
|
20
|
+
requires_input = False
|
21
|
+
is_destructive = True
|
18
22
|
|
19
23
|
help = "Migrate all databases based on django-cfg configuration"
|
20
24
|
|
@@ -14,12 +14,17 @@ from django.conf import settings
|
|
14
14
|
import questionary
|
15
15
|
from datetime import datetime
|
16
16
|
from django_cfg.core.config import DEFAULT_APPS
|
17
|
-
from django_cfg.modules.
|
17
|
+
from django_cfg.modules.django_logging import get_logger
|
18
18
|
|
19
19
|
logger = get_logger('migrator')
|
20
20
|
|
21
21
|
|
22
22
|
class Command(BaseCommand):
|
23
|
+
# Web execution metadata
|
24
|
+
web_executable = False
|
25
|
+
requires_input = True
|
26
|
+
is_destructive = True
|
27
|
+
|
23
28
|
help = "Smart migration command with interactive menu for multiple databases"
|
24
29
|
|
25
30
|
def add_arguments(self, parser):
|
@@ -15,7 +15,7 @@ from django.apps import apps
|
|
15
15
|
from django.conf import settings
|
16
16
|
from django.core.management.base import BaseCommand
|
17
17
|
from django.utils.module_loading import module_has_submodule
|
18
|
-
from django_cfg.modules.
|
18
|
+
from django_cfg.modules.django_logging import get_logger
|
19
19
|
from django_cfg.modules.django_tasks import get_task_service
|
20
20
|
|
21
21
|
|
@@ -28,6 +28,11 @@ logger = get_logger('rundramatiq')
|
|
28
28
|
|
29
29
|
|
30
30
|
class Command(BaseCommand):
|
31
|
+
# Web execution metadata
|
32
|
+
web_executable = False
|
33
|
+
requires_input = False
|
34
|
+
is_destructive = False
|
35
|
+
|
31
36
|
help = "Run Dramatiq workers with Django-CFG configuration."
|
32
37
|
|
33
38
|
def add_arguments(self, parser):
|
@@ -54,7 +54,7 @@ class TaskSimulator:
|
|
54
54
|
self.queues = config.tasks.dramatiq.queues
|
55
55
|
except Exception as e:
|
56
56
|
# Use default queues if we can't get configuration
|
57
|
-
self.queues = ['critical', 'high', 'default', 'low', 'background', 'payments', 'agents']
|
57
|
+
self.queues = ['critical', 'high', 'default', 'low', 'background', 'payments', 'agents', 'knowbase']
|
58
58
|
|
59
59
|
def clear_all_data(self) -> int:
|
60
60
|
"""
|
@@ -88,7 +88,8 @@ class TaskSimulator:
|
|
88
88
|
'low': 8,
|
89
89
|
'background': 15,
|
90
90
|
'payments': 3,
|
91
|
-
'agents': 7
|
91
|
+
'agents': 7,
|
92
|
+
'knowbase': 4
|
92
93
|
}
|
93
94
|
|
94
95
|
if failed_tasks_per_queue is None:
|
@@ -99,7 +100,8 @@ class TaskSimulator:
|
|
99
100
|
'low': 2,
|
100
101
|
'background': 1,
|
101
102
|
'payments': 0,
|
102
|
-
'agents': 1
|
103
|
+
'agents': 1,
|
104
|
+
'knowbase': 0
|
103
105
|
}
|
104
106
|
|
105
107
|
results = {}
|
@@ -282,7 +284,12 @@ class TaskSimulator:
|
|
282
284
|
|
283
285
|
class Command(BaseCommand):
|
284
286
|
"""Django management command для симуляции Dramatiq данных."""
|
285
|
-
|
287
|
+
|
288
|
+
# Web execution metadata
|
289
|
+
web_executable = False
|
290
|
+
requires_input = False
|
291
|
+
is_destructive = False
|
292
|
+
|
286
293
|
help = 'Simulate Dramatiq tasks and workers for dashboard testing'
|
287
294
|
|
288
295
|
def add_arguments(self, parser):
|
@@ -8,14 +8,19 @@ import os
|
|
8
8
|
import time
|
9
9
|
from django.core.management.commands.runserver import Command as RunServerCommand
|
10
10
|
from django_cfg.modules.django_ngrok import get_ngrok_service
|
11
|
-
from django_cfg.modules.
|
11
|
+
from django_cfg.modules.django_logging import get_logger
|
12
12
|
|
13
13
|
logger = get_logger('runserver_ngrok')
|
14
14
|
|
15
15
|
|
16
16
|
class Command(RunServerCommand):
|
17
17
|
"""Enhanced runserver command with ngrok tunnel support."""
|
18
|
-
|
18
|
+
|
19
|
+
# Web execution metadata
|
20
|
+
web_executable = False
|
21
|
+
requires_input = False
|
22
|
+
is_destructive = False
|
23
|
+
|
19
24
|
help = f'{RunServerCommand.help.rstrip(".")} with ngrok tunnel.'
|
20
25
|
|
21
26
|
def add_arguments(self, parser):
|
@@ -101,13 +106,10 @@ class Command(RunServerCommand):
|
|
101
106
|
if tunnel_ready:
|
102
107
|
# Set environment variables for ngrok URL
|
103
108
|
self._set_ngrok_env_vars(tunnel_url)
|
104
|
-
|
109
|
+
|
105
110
|
# Update ALLOWED_HOSTS if needed
|
106
111
|
self._update_allowed_hosts(tunnel_url)
|
107
|
-
|
108
|
-
# Update config URLs if enabled
|
109
|
-
ngrok_service.update_config_urls()
|
110
|
-
|
112
|
+
|
111
113
|
# Brief success message - detailed info will be shown by startup_display
|
112
114
|
self.stdout.write(
|
113
115
|
self.style.SUCCESS(f"✅ Ngrok tunnel ready: {tunnel_url}")
|
@@ -13,15 +13,16 @@ from django.core.management import call_command
|
|
13
13
|
from django.conf import settings
|
14
14
|
import questionary
|
15
15
|
from datetime import datetime
|
16
|
-
from django_cfg.modules.
|
17
|
-
|
18
|
-
|
19
|
-
from django_cfg import ConfigToolkit
|
16
|
+
from django_cfg.modules.django_logging import get_logger
|
20
17
|
|
21
18
|
|
22
19
|
logger = get_logger('script')
|
23
20
|
|
24
21
|
class Command(BaseCommand):
|
22
|
+
# Web execution metadata
|
23
|
+
web_executable = False
|
24
|
+
requires_input = True
|
25
|
+
is_destructive = False
|
25
26
|
|
26
27
|
help = 'Run custom scripts and manage Django applications'
|
27
28
|
|
@@ -204,18 +205,15 @@ os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'project.settings')
|
|
204
205
|
import django
|
205
206
|
django.setup()
|
206
207
|
|
207
|
-
# Import ConfigToolkit
|
208
|
-
from django_cfg import ConfigToolkit
|
209
|
-
|
210
208
|
|
211
209
|
def main():
|
212
210
|
"""Main function for {script_name} script."""
|
213
211
|
print(f"🚀 Running {script_name} script...")
|
214
|
-
|
215
|
-
# Initialize configuration
|
216
|
-
config = ConfigToolkit()
|
217
|
-
|
212
|
+
|
218
213
|
# Your script logic here
|
214
|
+
# You can use Django settings: from django.conf import settings
|
215
|
+
# Or DjangoConfig: from django_cfg.core.state import get_current_config
|
216
|
+
|
219
217
|
print("✅ Script completed successfully!")
|
220
218
|
|
221
219
|
|
@@ -279,7 +277,7 @@ Auto-generated Django management command.
|
|
279
277
|
"""
|
280
278
|
|
281
279
|
from django.core.management.base import BaseCommand
|
282
|
-
from
|
280
|
+
from django.conf import settings
|
283
281
|
|
284
282
|
|
285
283
|
class Command(BaseCommand):
|
@@ -292,11 +290,11 @@ class Command(BaseCommand):
|
|
292
290
|
def handle(self, *args, **options):
|
293
291
|
"""Handle the command."""
|
294
292
|
self.stdout.write(self.style.SUCCESS(f'🚀 Running {command_name} command...'))
|
295
|
-
|
296
|
-
# Initialize configuration
|
297
|
-
config = ConfigToolkit()
|
298
|
-
|
293
|
+
|
299
294
|
# Your command logic here
|
295
|
+
# You can use Django settings: settings.DEBUG, etc.
|
296
|
+
# Or DjangoConfig: from django_cfg.core.state import get_current_config
|
297
|
+
|
300
298
|
self.stdout.write(self.style.SUCCESS('✅ Command completed successfully!'))
|
301
299
|
'''
|
302
300
|
|
@@ -483,10 +481,16 @@ class Command(BaseCommand):
|
|
483
481
|
for db_name in settings.DATABASES:
|
484
482
|
engine = settings.DATABASES[db_name].get('ENGINE', 'Unknown')
|
485
483
|
self.stdout.write(f' - {db_name}: {engine}')
|
486
|
-
|
487
|
-
#
|
484
|
+
|
485
|
+
# Django-CFG info
|
488
486
|
try:
|
489
|
-
|
490
|
-
|
487
|
+
from django_cfg.core.state import get_current_config
|
488
|
+
config = get_current_config()
|
489
|
+
if config:
|
490
|
+
self.stdout.write(f'⚙️ Django-CFG: Loaded')
|
491
|
+
if hasattr(config, 'project_name'):
|
492
|
+
self.stdout.write(f' - Project: {config.project_name}')
|
493
|
+
else:
|
494
|
+
self.stdout.write(f'⚠️ Django-CFG: No config loaded')
|
491
495
|
except Exception as e:
|
492
|
-
self.stdout.write(f'❌
|
496
|
+
self.stdout.write(f'❌ Django-CFG: Error - {e}')
|
@@ -10,12 +10,17 @@ import json
|
|
10
10
|
import os
|
11
11
|
from django.core.management.base import BaseCommand
|
12
12
|
from django.conf import settings
|
13
|
-
from django_cfg.modules.
|
13
|
+
from django_cfg.modules.django_logging import get_logger
|
14
14
|
|
15
15
|
logger = get_logger('show_config')
|
16
16
|
|
17
17
|
|
18
18
|
class Command(BaseCommand):
|
19
|
+
# Web execution metadata
|
20
|
+
web_executable = True
|
21
|
+
requires_input = False
|
22
|
+
is_destructive = False
|
23
|
+
|
19
24
|
help = 'Show Django Config configuration'
|
20
25
|
|
21
26
|
def add_arguments(self, parser):
|
@@ -8,7 +8,7 @@ from django.core.management.base import BaseCommand, CommandParser
|
|
8
8
|
from django.urls import get_resolver
|
9
9
|
from django.conf import settings
|
10
10
|
from django.utils.termcolors import make_style
|
11
|
-
from django_cfg.modules.
|
11
|
+
from django_cfg.modules.django_logging import get_logger
|
12
12
|
|
13
13
|
logger = get_logger('show_urls')
|
14
14
|
|
@@ -16,11 +16,16 @@ logger = get_logger('show_urls')
|
|
16
16
|
class Command(BaseCommand):
|
17
17
|
"""
|
18
18
|
Display all URL patterns in the Django project.
|
19
|
-
|
19
|
+
|
20
20
|
This command recursively walks through all URL patterns and displays them
|
21
21
|
in a hierarchical format with colors and filtering options.
|
22
22
|
"""
|
23
|
-
|
23
|
+
|
24
|
+
# Web execution metadata
|
25
|
+
web_executable = True
|
26
|
+
requires_input = False
|
27
|
+
is_destructive = False
|
28
|
+
|
24
29
|
help = 'Display all URL patterns in the project'
|
25
30
|
|
26
31
|
def __init__(self, *args, **kwargs):
|
@@ -14,10 +14,7 @@ from django.core.exceptions import ValidationError
|
|
14
14
|
from django.conf import settings
|
15
15
|
import questionary
|
16
16
|
from datetime import datetime
|
17
|
-
from django_cfg.modules.
|
18
|
-
|
19
|
-
|
20
|
-
from django_cfg import ConfigToolkit
|
17
|
+
from django_cfg.modules.django_logging import get_logger
|
21
18
|
|
22
19
|
User = get_user_model()
|
23
20
|
|
@@ -25,6 +22,10 @@ User = get_user_model()
|
|
25
22
|
logger = get_logger('superuser')
|
26
23
|
|
27
24
|
class Command(BaseCommand):
|
25
|
+
# Web execution metadata
|
26
|
+
web_executable = False
|
27
|
+
requires_input = True
|
28
|
+
is_destructive = False
|
28
29
|
|
29
30
|
help = 'Create a superuser with enhanced validation and configuration'
|
30
31
|
|
@@ -9,7 +9,7 @@ from django.core.management.base import BaseCommand, CommandError
|
|
9
9
|
from django.conf import settings
|
10
10
|
from typing import Any, Optional, List
|
11
11
|
import logging
|
12
|
-
from django_cfg.modules.
|
12
|
+
from django_cfg.modules.django_logging import get_logger
|
13
13
|
|
14
14
|
logger = get_logger('task_clear')
|
15
15
|
|
@@ -17,13 +17,18 @@ logger = get_logger('task_clear')
|
|
17
17
|
class Command(BaseCommand):
|
18
18
|
"""
|
19
19
|
Clear tasks from Dramatiq queues.
|
20
|
-
|
20
|
+
|
21
21
|
Provides options to:
|
22
22
|
- Clear all tasks from specific queues
|
23
23
|
- Clear only failed tasks
|
24
24
|
- Clear all tasks from all queues
|
25
25
|
"""
|
26
|
-
|
26
|
+
|
27
|
+
# Web execution metadata
|
28
|
+
web_executable = False
|
29
|
+
requires_input = True
|
30
|
+
is_destructive = True
|
31
|
+
|
27
32
|
help = "Clear tasks from Dramatiq queues"
|
28
33
|
|
29
34
|
def add_arguments(self, parser):
|
@@ -11,7 +11,7 @@ from django.conf import settings
|
|
11
11
|
from typing import Any, Dict, List
|
12
12
|
import json
|
13
13
|
import logging
|
14
|
-
from django_cfg.modules.
|
14
|
+
from django_cfg.modules.django_logging import get_logger
|
15
15
|
|
16
16
|
logger = get_logger('task_status')
|
17
17
|
|
@@ -19,7 +19,7 @@ logger = get_logger('task_status')
|
|
19
19
|
class Command(BaseCommand):
|
20
20
|
"""
|
21
21
|
Display comprehensive task system status.
|
22
|
-
|
22
|
+
|
23
23
|
Shows information about:
|
24
24
|
- Task system configuration
|
25
25
|
- Redis connection status
|
@@ -27,7 +27,12 @@ class Command(BaseCommand):
|
|
27
27
|
- Worker status
|
28
28
|
- Discovered task modules
|
29
29
|
"""
|
30
|
-
|
30
|
+
|
31
|
+
# Web execution metadata
|
32
|
+
web_executable = True
|
33
|
+
requires_input = False
|
34
|
+
is_destructive = False
|
35
|
+
|
31
36
|
help = "Display task system status and statistics"
|
32
37
|
|
33
38
|
def add_arguments(self, parser):
|
@@ -6,7 +6,7 @@ Tests email sending functionality using django_cfg configuration.
|
|
6
6
|
|
7
7
|
from django.core.management.base import BaseCommand
|
8
8
|
from django.contrib.auth import get_user_model
|
9
|
-
from django_cfg.modules.
|
9
|
+
from django_cfg.modules.django_logging import get_logger
|
10
10
|
|
11
11
|
User = get_user_model()
|
12
12
|
logger = get_logger('test_email')
|
@@ -15,6 +15,11 @@ logger = get_logger('test_email')
|
|
15
15
|
class Command(BaseCommand):
|
16
16
|
"""Command to test email functionality."""
|
17
17
|
|
18
|
+
# Web execution metadata
|
19
|
+
web_executable = True
|
20
|
+
requires_input = False
|
21
|
+
is_destructive = False
|
22
|
+
|
18
23
|
help = "Test email sending functionality"
|
19
24
|
|
20
25
|
def add_arguments(self, parser):
|
@@ -5,7 +5,7 @@ Tests Telegram notification functionality using django_cfg configuration.
|
|
5
5
|
"""
|
6
6
|
|
7
7
|
from django.core.management.base import BaseCommand
|
8
|
-
from django_cfg.modules.
|
8
|
+
from django_cfg.modules.django_logging import get_logger
|
9
9
|
|
10
10
|
|
11
11
|
|
@@ -14,6 +14,11 @@ logger = get_logger('test_telegram')
|
|
14
14
|
class Command(BaseCommand):
|
15
15
|
"""Command to test Telegram functionality."""
|
16
16
|
|
17
|
+
# Web execution metadata
|
18
|
+
web_executable = True
|
19
|
+
requires_input = False
|
20
|
+
is_destructive = False
|
21
|
+
|
17
22
|
help = "Test Telegram notification functionality"
|
18
23
|
|
19
24
|
def add_arguments(self, parser):
|
@@ -5,7 +5,7 @@ Tests Twilio messaging functionality using django_cfg configuration.
|
|
5
5
|
"""
|
6
6
|
|
7
7
|
from django.core.management.base import BaseCommand
|
8
|
-
from django_cfg.modules.
|
8
|
+
from django_cfg.modules.django_logging import get_logger
|
9
9
|
|
10
10
|
|
11
11
|
|
@@ -14,6 +14,11 @@ logger = get_logger('test_twilio')
|
|
14
14
|
class Command(BaseCommand):
|
15
15
|
"""Command to test Twilio functionality."""
|
16
16
|
|
17
|
+
# Web execution metadata
|
18
|
+
web_executable = True
|
19
|
+
requires_input = False
|
20
|
+
is_destructive = False
|
21
|
+
|
17
22
|
help = "Test Twilio messaging functionality"
|
18
23
|
|
19
24
|
def add_arguments(self, parser):
|
@@ -11,10 +11,10 @@ from typing import List, Optional
|
|
11
11
|
|
12
12
|
from django.core.management.base import BaseCommand, CommandError
|
13
13
|
from django.conf import settings
|
14
|
-
from django_cfg.modules.
|
14
|
+
from django_cfg.modules.django_logging import get_logger
|
15
15
|
|
16
16
|
|
17
|
-
from django_cfg.core.
|
17
|
+
from django_cfg.core.state import get_current_config
|
18
18
|
from django_cfg.utils.path_resolution import PathResolver
|
19
19
|
|
20
20
|
|
@@ -22,7 +22,11 @@ logger = get_logger('tree')
|
|
22
22
|
|
23
23
|
class Command(BaseCommand):
|
24
24
|
"""Display Django project structure in tree format."""
|
25
|
-
|
25
|
+
|
26
|
+
# Web execution metadata
|
27
|
+
web_executable = True
|
28
|
+
requires_input = False
|
29
|
+
is_destructive = False
|
26
30
|
|
27
31
|
help = "Display Django project structure based on django-cfg configuration"
|
28
32
|
|
@@ -196,7 +200,6 @@ class Command(BaseCommand):
|
|
196
200
|
|
197
201
|
# Conditionally add patterns based on options
|
198
202
|
# Note: @docs folders are now included by default to show documentation
|
199
|
-
# Use --include-docs flag is kept for backward compatibility but doesn't exclude @docs anymore
|
200
203
|
|
201
204
|
if not options.get('include_docker'):
|
202
205
|
default_ignores.extend([
|
django_cfg/models/__init__.py
CHANGED
@@ -3,9 +3,94 @@ Configuration models for django_cfg.
|
|
3
3
|
|
4
4
|
All models are built using Pydantic v2 for complete type safety and validation.
|
5
5
|
Following CRITICAL_REQUIREMENTS.md - no raw Dict/Any usage, everything is properly typed.
|
6
|
+
|
7
|
+
Organized by category:
|
8
|
+
- base/ - Base classes and foundations
|
9
|
+
- infrastructure/ - Core infrastructure (database, cache, logging, security)
|
10
|
+
- api/ - API, authentication, and documentation
|
11
|
+
- django/ - Django-specific configurations
|
12
|
+
- services/ - External services (email, telegram, ngrok)
|
13
|
+
- payments/ - Payment provider configurations
|
14
|
+
- tasks/ - Task/worker configurations
|
6
15
|
"""
|
7
16
|
|
8
|
-
#
|
9
|
-
|
17
|
+
# Base classes
|
18
|
+
from .base.config import BaseConfig, BaseSettings
|
19
|
+
from .base.module import BaseCfgAutoModule
|
20
|
+
|
21
|
+
# Infrastructure
|
22
|
+
from .infrastructure.database import DatabaseConfig
|
23
|
+
from .infrastructure.cache import CacheConfig
|
24
|
+
from .infrastructure.logging import LoggingConfig
|
25
|
+
from .infrastructure.security import SecurityConfig
|
26
|
+
|
27
|
+
# API & Authentication
|
28
|
+
from .api.config import APIConfig
|
29
|
+
from .api.keys import ApiKeys
|
30
|
+
from .api.jwt import JWTConfig
|
31
|
+
from .api.cors import CORSConfig
|
32
|
+
from .api.limits import LimitsConfig
|
33
|
+
from .api.drf.config import DRFConfig
|
34
|
+
from .api.drf.spectacular import SpectacularConfig
|
35
|
+
from .api.drf.swagger import SwaggerUISettings
|
36
|
+
from .api.drf.redoc import RedocUISettings
|
37
|
+
|
38
|
+
# Django-specific
|
39
|
+
from .django.environment import EnvironmentConfig
|
40
|
+
from .django.constance import ConstanceConfig, ConstanceField
|
41
|
+
from .django.revolution import RevolutionConfig
|
42
|
+
|
43
|
+
# Services
|
44
|
+
from .services.email import EmailConfig
|
45
|
+
from .services.telegram import TelegramConfig
|
46
|
+
from .services.base import ServiceConfig
|
47
|
+
from .ngrok.config import NgrokConfig
|
48
|
+
from .ngrok.auth import NgrokAuthConfig
|
49
|
+
from .ngrok.tunnel import NgrokTunnelConfig
|
50
|
+
|
51
|
+
# Payments
|
52
|
+
from .payments.config import PaymentsConfig
|
53
|
+
from .payments.providers.base import BaseProviderConfig
|
54
|
+
from .payments.providers.nowpayments import NowPaymentsProviderConfig
|
55
|
+
|
56
|
+
# External modules (imported from other locations)
|
57
|
+
from ..modules.django_unfold.models.config import UnfoldConfig
|
10
58
|
|
11
|
-
__all__ = [
|
59
|
+
__all__ = [
|
60
|
+
# Base
|
61
|
+
"BaseConfig",
|
62
|
+
"BaseSettings",
|
63
|
+
"BaseCfgAutoModule",
|
64
|
+
# Infrastructure
|
65
|
+
"DatabaseConfig",
|
66
|
+
"CacheConfig",
|
67
|
+
"LoggingConfig",
|
68
|
+
"SecurityConfig",
|
69
|
+
# API
|
70
|
+
"APIConfig",
|
71
|
+
"ApiKeys",
|
72
|
+
"JWTConfig",
|
73
|
+
"CORSConfig",
|
74
|
+
"LimitsConfig",
|
75
|
+
"DRFConfig",
|
76
|
+
"SpectacularConfig",
|
77
|
+
"SwaggerUISettings",
|
78
|
+
"RedocUISettings",
|
79
|
+
# Django
|
80
|
+
"EnvironmentConfig",
|
81
|
+
"ConstanceConfig",
|
82
|
+
"ConstanceField",
|
83
|
+
"RevolutionConfig",
|
84
|
+
"UnfoldConfig",
|
85
|
+
# Services
|
86
|
+
"EmailConfig",
|
87
|
+
"TelegramConfig",
|
88
|
+
"ServiceConfig",
|
89
|
+
"NgrokConfig",
|
90
|
+
"NgrokAuthConfig",
|
91
|
+
"NgrokTunnelConfig",
|
92
|
+
# Payments
|
93
|
+
"PaymentsConfig",
|
94
|
+
"BaseProviderConfig",
|
95
|
+
"NowPaymentsProviderConfig",
|
96
|
+
]
|