django-cfg 1.4.116__py3-none-any.whl → 1.5.14__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.
Potentially problematic release.
This version of django-cfg might be problematic. Click here for more details.
- django_cfg/__init__.py +6 -1
- django_cfg/apps/api/commands/serializers.py +152 -0
- django_cfg/apps/api/commands/views.py +32 -0
- django_cfg/apps/{accounts → business/accounts}/admin/inlines.py +2 -2
- django_cfg/apps/{accounts → business/accounts}/admin/user_admin.py +2 -2
- django_cfg/apps/{accounts → business/accounts}/apps.py +2 -2
- django_cfg/apps/{accounts → business/accounts}/management/commands/otp_test.py +5 -2
- django_cfg/apps/{accounts → business/accounts}/managers/user_manager.py +2 -2
- django_cfg/apps/{accounts → business/accounts}/migrations/0001_initial.py +4 -4
- django_cfg/apps/{agents → business/agents}/__init__.py +1 -1
- django_cfg/apps/{agents → business/agents}/apps.py +1 -1
- django_cfg/apps/business/agents/management/commands/create_agent.py +177 -0
- django_cfg/apps/{agents/management/commands/create_agent.py → business/agents/management/commands/load_agent_templates.py} +6 -167
- django_cfg/apps/{agents → business/agents}/management/commands/orchestrator_status.py +7 -5
- django_cfg/apps/{knowbase → business/knowbase}/__init__.py +1 -1
- django_cfg/apps/{knowbase → business/knowbase}/apps.py +3 -3
- django_cfg/apps/business/knowbase/examples/__init__.py +3 -0
- django_cfg/apps/{knowbase → business/knowbase}/examples/external_data_usage.py +1 -1
- django_cfg/apps/{knowbase → business/knowbase}/management/commands/knowbase_stats.py +4 -2
- django_cfg/apps/{knowbase → business/knowbase}/management/commands/setup_knowbase.py +4 -2
- django_cfg/apps/{knowbase → business/knowbase}/mixins/examples/vehicle_model_example.py +2 -2
- django_cfg/apps/{knowbase → business/knowbase}/mixins/service.py +1 -1
- django_cfg/apps/{knowbase → business/knowbase}/models/external_data.py +1 -1
- django_cfg/apps/{knowbase → business/knowbase}/services/archive/vectorization_service.py +1 -1
- django_cfg/apps/{knowbase → business/knowbase}/services/embedding/async_processor.py +1 -1
- django_cfg/apps/{knowbase → business/knowbase}/services/embedding/batch_processor.py +2 -2
- django_cfg/apps/{knowbase → business/knowbase}/services/embedding/processors.py +1 -1
- django_cfg/apps/{knowbase → business/knowbase}/services/embedding/utils.py +1 -1
- django_cfg/apps/{knowbase → business/knowbase}/tasks/document_processing.py +1 -1
- django_cfg/apps/{knowbase → business/knowbase}/utils/chunk_settings.py +6 -5
- django_cfg/apps/{knowbase → business/knowbase}/views/archive_views.py +2 -2
- django_cfg/apps/{leads → business/leads}/apps.py +2 -2
- django_cfg/apps/{newsletter → business/newsletter}/admin/newsletter_admin.py +12 -11
- django_cfg/apps/{newsletter → business/newsletter}/apps.py +2 -2
- django_cfg/apps/{newsletter → business/newsletter}/management/commands/test_newsletter.py +7 -4
- django_cfg/apps/{payments → business/payments}/__init__.py +2 -2
- django_cfg/apps/{payments → business/payments}/admin/balance_admin.py +26 -36
- django_cfg/apps/{payments → business/payments}/admin/payment_admin.py +65 -85
- django_cfg/apps/{payments → business/payments}/admin/withdrawal_admin.py +65 -100
- django_cfg/apps/{payments → business/payments}/apps.py +1 -1
- django_cfg/apps/{payments → business/payments}/management/commands/check_payment_status.py +8 -6
- django_cfg/apps/{payments → business/payments}/management/commands/create_payment.py +7 -5
- django_cfg/apps/{payments → business/payments}/management/commands/sync_currencies.py +6 -4
- django_cfg/apps/{payments → business/payments}/urls.py +1 -1
- django_cfg/apps/{support → business/support}/apps.py +1 -1
- django_cfg/apps/{support → business/support}/managers/message_manager.py +1 -1
- django_cfg/apps/{support → business/support}/managers/ticket_manager.py +1 -1
- django_cfg/apps/{centrifugo → integrations/centrifugo}/__init__.py +2 -2
- django_cfg/apps/integrations/centrifugo/_cfg/README_DEPENDENCIES.md +260 -0
- django_cfg/apps/integrations/centrifugo/_cfg/__init__.py +25 -0
- django_cfg/apps/integrations/centrifugo/_cfg/check_deps.py +34 -0
- django_cfg/apps/integrations/centrifugo/_cfg/dependencies.py +309 -0
- django_cfg/apps/{centrifugo → integrations/centrifugo}/admin/centrifugo_log.py +33 -71
- django_cfg/apps/integrations/centrifugo/apps.py +100 -0
- django_cfg/apps/{centrifugo → integrations/centrifugo}/management/commands/generate_centrifugo_clients.py +9 -9
- django_cfg/apps/{centrifugo → integrations/centrifugo}/serializers/__init__.py +4 -3
- django_cfg/apps/integrations/centrifugo/serializers/publishes.py +38 -0
- django_cfg/apps/{centrifugo → integrations/centrifugo}/serializers/stats.py +2 -2
- django_cfg/apps/{centrifugo → integrations/centrifugo}/services/client/client.py +2 -2
- django_cfg/apps/{centrifugo → integrations/centrifugo}/services/client/config.py +1 -1
- django_cfg/apps/{centrifugo → integrations/centrifugo}/views/monitoring.py +28 -43
- django_cfg/apps/integrations/grpc/__init__.py +9 -0
- django_cfg/apps/integrations/grpc/_cfg/README_DEPENDENCIES.md +307 -0
- django_cfg/apps/integrations/grpc/_cfg/__init__.py +25 -0
- django_cfg/apps/integrations/grpc/_cfg/check_deps.py +34 -0
- django_cfg/apps/integrations/grpc/_cfg/dependencies.py +484 -0
- django_cfg/apps/integrations/grpc/admin/__init__.py +17 -0
- django_cfg/apps/integrations/grpc/admin/config.py +261 -0
- django_cfg/apps/integrations/grpc/admin/grpc_api_key.py +129 -0
- django_cfg/apps/integrations/grpc/admin/grpc_request_log.py +261 -0
- django_cfg/apps/integrations/grpc/admin/grpc_server_status.py +236 -0
- django_cfg/apps/integrations/grpc/apps.py +108 -0
- django_cfg/apps/integrations/grpc/auth/__init__.py +17 -0
- django_cfg/apps/integrations/grpc/auth/api_key_auth.py +320 -0
- django_cfg/apps/integrations/grpc/interceptors/__init__.py +19 -0
- django_cfg/apps/integrations/grpc/interceptors/errors.py +241 -0
- django_cfg/apps/integrations/grpc/interceptors/logging.py +267 -0
- django_cfg/apps/integrations/grpc/interceptors/metrics.py +307 -0
- django_cfg/apps/integrations/grpc/interceptors/request_logger.py +535 -0
- django_cfg/apps/integrations/grpc/management/__init__.py +1 -0
- django_cfg/apps/integrations/grpc/management/commands/generate_protos.py +130 -0
- django_cfg/apps/integrations/grpc/management/commands/rungrpc.py +518 -0
- django_cfg/apps/integrations/grpc/management/commands/test_grpc_integration.py +75 -0
- django_cfg/apps/integrations/grpc/managers/__init__.py +14 -0
- django_cfg/apps/integrations/grpc/managers/grpc_api_key.py +192 -0
- django_cfg/apps/integrations/grpc/managers/grpc_request_log.py +310 -0
- django_cfg/apps/integrations/grpc/managers/grpc_server_status.py +296 -0
- django_cfg/apps/integrations/grpc/migrations/0001_initial.py +69 -0
- django_cfg/apps/integrations/grpc/migrations/0002_rename_django_cfg__service_4c4a8e_idx_django_cfg__service_584308_idx_and_more.py +38 -0
- django_cfg/apps/integrations/grpc/migrations/0003_grpcserverstatus.py +119 -0
- django_cfg/apps/integrations/grpc/migrations/0004_grpcserverstatus_registered_services.py +22 -0
- django_cfg/apps/integrations/grpc/migrations/0005_grpcapikey.py +143 -0
- django_cfg/apps/integrations/grpc/migrations/0006_grpcrequestlog_api_key_and_more.py +34 -0
- django_cfg/apps/integrations/grpc/models/__init__.py +13 -0
- django_cfg/apps/integrations/grpc/models/grpc_api_key.py +198 -0
- django_cfg/apps/integrations/grpc/models/grpc_request_log.py +230 -0
- django_cfg/apps/integrations/grpc/models/grpc_server_status.py +305 -0
- django_cfg/apps/integrations/grpc/serializers/__init__.py +83 -0
- django_cfg/apps/integrations/grpc/serializers/api_keys.py +63 -0
- django_cfg/apps/integrations/grpc/serializers/charts.py +216 -0
- django_cfg/apps/integrations/grpc/serializers/config.py +120 -0
- django_cfg/apps/integrations/grpc/serializers/health.py +18 -0
- django_cfg/apps/integrations/grpc/serializers/proto_files.py +74 -0
- django_cfg/apps/integrations/grpc/serializers/requests.py +24 -0
- django_cfg/apps/integrations/grpc/serializers/service_registry.py +260 -0
- django_cfg/apps/integrations/grpc/serializers/services.py +32 -0
- django_cfg/apps/integrations/grpc/serializers/stats.py +60 -0
- django_cfg/apps/integrations/grpc/serializers/testing.py +113 -0
- django_cfg/apps/integrations/grpc/services/__init__.py +41 -0
- django_cfg/apps/integrations/grpc/services/base.py +375 -0
- django_cfg/apps/integrations/grpc/services/chart_generator.py +475 -0
- django_cfg/apps/integrations/grpc/services/config_helper.py +146 -0
- django_cfg/apps/integrations/grpc/services/discovery.py +571 -0
- django_cfg/apps/integrations/grpc/services/grpc_client.py +590 -0
- django_cfg/apps/integrations/grpc/services/monitoring_service.py +397 -0
- django_cfg/apps/integrations/grpc/services/proto_files_manager.py +268 -0
- django_cfg/apps/integrations/grpc/services/service_registry.py +330 -0
- django_cfg/apps/integrations/grpc/services/testing_service.py +321 -0
- django_cfg/apps/integrations/grpc/testing/__init__.py +12 -0
- django_cfg/apps/integrations/grpc/testing/examples.py +263 -0
- django_cfg/apps/integrations/grpc/urls.py +47 -0
- django_cfg/apps/integrations/grpc/utils/__init__.py +9 -0
- django_cfg/apps/integrations/grpc/utils/integration_test.py +334 -0
- django_cfg/apps/integrations/grpc/utils/proto_gen.py +463 -0
- django_cfg/apps/integrations/grpc/utils/streaming_logger.py +177 -0
- django_cfg/apps/integrations/grpc/views/__init__.py +19 -0
- django_cfg/apps/integrations/grpc/views/api_keys.py +255 -0
- django_cfg/apps/integrations/grpc/views/charts.py +224 -0
- django_cfg/apps/integrations/grpc/views/config.py +193 -0
- django_cfg/apps/integrations/grpc/views/monitoring.py +360 -0
- django_cfg/apps/integrations/grpc/views/proto_files.py +214 -0
- django_cfg/apps/integrations/grpc/views/services.py +298 -0
- django_cfg/apps/integrations/grpc/views/testing.py +308 -0
- django_cfg/apps/integrations/rq/__init__.py +9 -0
- django_cfg/apps/integrations/rq/_cfg/__init__.py +28 -0
- django_cfg/apps/integrations/rq/_cfg/dependencies.py +313 -0
- django_cfg/apps/integrations/rq/apps.py +157 -0
- django_cfg/apps/integrations/rq/management/__init__.py +1 -0
- django_cfg/apps/integrations/rq/management/commands/__init__.py +1 -0
- django_cfg/apps/integrations/rq/management/commands/rqscheduler.py +31 -0
- django_cfg/apps/integrations/rq/management/commands/rqstats.py +33 -0
- django_cfg/apps/integrations/rq/management/commands/rqworker.py +31 -0
- django_cfg/apps/integrations/rq/management/commands/rqworker_pool.py +27 -0
- django_cfg/apps/integrations/rq/serializers/__init__.py +40 -0
- django_cfg/apps/integrations/rq/serializers/health.py +60 -0
- django_cfg/apps/integrations/rq/serializers/job.py +100 -0
- django_cfg/apps/integrations/rq/serializers/queue.py +80 -0
- django_cfg/apps/integrations/rq/serializers/schedule.py +178 -0
- django_cfg/apps/integrations/rq/serializers/testing.py +139 -0
- django_cfg/apps/integrations/rq/serializers/worker.py +58 -0
- django_cfg/apps/integrations/rq/services/__init__.py +25 -0
- django_cfg/apps/integrations/rq/services/config_helper.py +233 -0
- django_cfg/apps/integrations/rq/services/models/README.md +417 -0
- django_cfg/apps/integrations/rq/services/models/__init__.py +30 -0
- django_cfg/apps/integrations/rq/services/models/event.py +123 -0
- django_cfg/apps/integrations/rq/services/models/job.py +99 -0
- django_cfg/apps/integrations/rq/services/models/queue.py +92 -0
- django_cfg/apps/integrations/rq/services/models/worker.py +104 -0
- django_cfg/apps/integrations/rq/services/rq_converters.py +183 -0
- django_cfg/apps/integrations/rq/tasks/__init__.py +23 -0
- django_cfg/apps/integrations/rq/tasks/demo_tasks.py +284 -0
- django_cfg/apps/integrations/rq/urls.py +54 -0
- django_cfg/apps/integrations/rq/views/__init__.py +19 -0
- django_cfg/apps/integrations/rq/views/jobs.py +892 -0
- django_cfg/apps/integrations/rq/views/monitoring.py +248 -0
- django_cfg/apps/integrations/rq/views/queues.py +261 -0
- django_cfg/apps/integrations/rq/views/schedule.py +404 -0
- django_cfg/apps/integrations/rq/views/testing.py +761 -0
- django_cfg/apps/integrations/rq/views/workers.py +195 -0
- django_cfg/apps/system/__init__.py +0 -0
- django_cfg/apps/system/dashboard/TRANSACTION_FIX.md +73 -0
- django_cfg/apps/{dashboard → system/dashboard}/__init__.py +1 -1
- django_cfg/apps/{dashboard → system/dashboard}/apps.py +1 -1
- django_cfg/apps/{dashboard → system/dashboard}/serializers/__init__.py +4 -11
- django_cfg/apps/{dashboard → system/dashboard}/serializers/activity.py +1 -1
- django_cfg/apps/{dashboard → system/dashboard}/serializers/commands.py +25 -1
- django_cfg/apps/system/dashboard/serializers/config.py +245 -0
- django_cfg/apps/{dashboard → system/dashboard}/services/__init__.py +2 -2
- django_cfg/apps/{dashboard → system/dashboard}/services/charts_service.py +4 -3
- django_cfg/apps/{dashboard → system/dashboard}/services/commands_service.py +12 -1
- django_cfg/apps/system/dashboard/services/config_service.py +393 -0
- django_cfg/apps/{dashboard → system/dashboard}/services/statistics_service.py +11 -2
- django_cfg/apps/{dashboard → system/dashboard}/services/system_health_service.py +64 -106
- django_cfg/apps/{dashboard → system/dashboard}/urls.py +3 -2
- django_cfg/apps/{dashboard → system/dashboard}/views/__init__.py +2 -2
- django_cfg/apps/{dashboard → system/dashboard}/views/commands_views.py +3 -6
- django_cfg/apps/system/dashboard/views/config_views.py +69 -0
- django_cfg/apps/{dashboard → system/dashboard}/views/overview_views.py +14 -13
- django_cfg/apps/{frontend → system/frontend}/__init__.py +1 -1
- django_cfg/apps/{frontend → system/frontend}/apps.py +1 -1
- django_cfg/apps/{frontend → system/frontend}/setup.py +5 -5
- django_cfg/apps/{frontend → system/frontend}/views.py +18 -3
- django_cfg/apps/system/maintenance/__init__.py +56 -0
- django_cfg/apps/{maintenance → system/maintenance}/admin/api_key_admin.py +10 -12
- django_cfg/apps/{maintenance → system/maintenance}/admin/scheduled_admin.py +3 -3
- django_cfg/apps/{maintenance → system/maintenance}/admin/site_admin.py +10 -9
- django_cfg/apps/{maintenance → system/maintenance}/apps.py +1 -1
- django_cfg/apps/system/maintenance/management/__init__.py +0 -0
- django_cfg/apps/system/maintenance/management/commands/__init__.py +0 -0
- django_cfg/apps/{maintenance → system/maintenance}/management/commands/maintenance.py +5 -2
- django_cfg/apps/{maintenance → system/maintenance}/management/commands/process_scheduled_maintenance.py +4 -2
- django_cfg/apps/{maintenance → system/maintenance}/management/commands/sync_cloudflare.py +5 -2
- django_cfg/apps/system/maintenance/migrations/__init__.py +0 -0
- django_cfg/apps/{maintenance → system/maintenance}/models/__init__.py +4 -4
- django_cfg/apps/system/maintenance/services/__init__.py +42 -0
- django_cfg/apps/urls.py +54 -115
- django_cfg/config.py +36 -0
- django_cfg/core/base/config_model.py +27 -28
- django_cfg/core/builders/apps_builder.py +19 -21
- django_cfg/core/constants.py +1 -0
- django_cfg/core/debug/README.md +116 -0
- django_cfg/core/debug/__init__.py +7 -0
- django_cfg/core/debug/example_config.py +63 -0
- django_cfg/core/debug/warnings_helper.py +121 -0
- django_cfg/core/generation/integration_generators/__init__.py +3 -6
- django_cfg/core/generation/integration_generators/django_rq.py +80 -0
- django_cfg/core/generation/integration_generators/grpc_generator.py +316 -0
- django_cfg/core/generation/orchestrator.py +15 -15
- django_cfg/core/integration/display/__init__.py +2 -0
- django_cfg/core/integration/display/base.py +51 -0
- django_cfg/core/integration/display/grpc_display.py +144 -0
- django_cfg/core/integration/display/startup.py +24 -58
- django_cfg/management/commands/check_endpoints.py +2 -2
- django_cfg/management/commands/check_settings.py +3 -10
- django_cfg/management/commands/clear_constance.py +3 -10
- django_cfg/management/commands/create_token.py +4 -11
- django_cfg/management/commands/list_urls.py +4 -10
- django_cfg/management/commands/migrate_all.py +18 -12
- django_cfg/management/commands/migrator.py +4 -11
- django_cfg/management/commands/script.py +4 -10
- django_cfg/management/commands/show_config.py +8 -16
- django_cfg/management/commands/show_urls.py +5 -11
- django_cfg/management/commands/superuser.py +4 -11
- django_cfg/management/commands/tree.py +5 -10
- django_cfg/management/utils/README.md +402 -0
- django_cfg/management/utils/__init__.py +29 -0
- django_cfg/management/utils/mixins.py +176 -0
- django_cfg/middleware/authentication.py +1 -1
- django_cfg/middleware/pagination.py +53 -54
- django_cfg/mixins/__init__.py +2 -0
- django_cfg/mixins/superadmin_api.py +59 -0
- django_cfg/models/__init__.py +3 -3
- django_cfg/models/api/grpc/__init__.py +53 -0
- django_cfg/models/api/grpc/config.py +446 -0
- django_cfg/models/django/__init__.py +3 -3
- django_cfg/models/django/constance.py +1 -1
- django_cfg/models/django/django_rq.py +632 -0
- django_cfg/models/django/revolution_legacy.py +8 -8
- django_cfg/models/ngrok/config.py +7 -6
- django_cfg/modules/base.py +19 -6
- django_cfg/modules/django_admin/__init__.py +2 -0
- django_cfg/modules/django_admin/apps.py +19 -0
- django_cfg/modules/django_admin/base/pydantic_admin.py +23 -12
- django_cfg/modules/django_admin/config/__init__.py +2 -0
- django_cfg/modules/django_admin/config/admin_config.py +7 -0
- django_cfg/modules/django_admin/config/background_task_config.py +4 -4
- django_cfg/modules/django_admin/config/field_config.py +24 -0
- django_cfg/modules/django_admin/templates/django_admin/widgets/encrypted_field.html +80 -0
- django_cfg/modules/django_admin/templates/django_admin/widgets/encrypted_password.html +62 -0
- django_cfg/modules/django_admin/utils/__init__.py +41 -3
- django_cfg/modules/django_admin/utils/badges/__init__.py +13 -0
- django_cfg/modules/django_admin/utils/{badges.py → badges/status_badges.py} +3 -3
- django_cfg/modules/django_admin/utils/displays/__init__.py +13 -0
- django_cfg/modules/django_admin/utils/{displays.py → displays/data_displays.py} +2 -2
- django_cfg/modules/django_admin/utils/html/__init__.py +26 -0
- django_cfg/modules/django_admin/utils/html/badges.py +55 -0
- django_cfg/modules/django_admin/utils/html/base.py +167 -0
- django_cfg/modules/django_admin/utils/html/code.py +87 -0
- django_cfg/modules/django_admin/utils/html/composition.py +205 -0
- django_cfg/modules/django_admin/utils/html/formatting.py +231 -0
- django_cfg/modules/django_admin/utils/html/keyvalue.py +219 -0
- django_cfg/modules/django_admin/utils/html/markdown_integration.py +108 -0
- django_cfg/modules/django_admin/utils/html/progress.py +127 -0
- django_cfg/modules/django_admin/utils/html_builder.py +55 -408
- django_cfg/modules/django_admin/utils/markdown/__init__.py +21 -0
- django_cfg/modules/django_admin/widgets/__init__.py +3 -0
- django_cfg/modules/django_admin/widgets/encrypted_field_widget.py +66 -0
- django_cfg/modules/django_admin/widgets/registry.py +42 -0
- django_cfg/modules/django_client/core/generator/python/files_generator.py +5 -13
- django_cfg/modules/django_client/core/generator/python/templates/api_wrapper.py.jinja +16 -4
- django_cfg/modules/django_client/core/generator/python/templates/main_init.py.jinja +2 -3
- django_cfg/modules/django_client/core/generator/typescript/files_generator.py +6 -5
- django_cfg/modules/django_client/core/generator/typescript/operations_generator.py +13 -4
- django_cfg/modules/django_client/core/generator/typescript/templates/main_index.ts.jinja +12 -8
- django_cfg/modules/django_client/core/parser/base.py +135 -2
- django_cfg/modules/django_client/management/commands/generate_client.py +5 -2
- django_cfg/modules/django_client/management/commands/validate_openapi.py +5 -2
- django_cfg/modules/django_currency/examples/example_database_usage.py +1 -1
- django_cfg/modules/django_email/management/commands/test_email.py +4 -10
- django_cfg/modules/django_logging/__init__.py +2 -0
- django_cfg/modules/django_logging/django_logger.py +78 -8
- django_cfg/modules/django_ngrok/management/commands/runserver_ngrok.py +16 -13
- django_cfg/modules/django_telegram/management/commands/test_telegram.py +4 -11
- django_cfg/modules/django_twilio/management/commands/test_twilio.py +4 -11
- django_cfg/modules/django_twilio/sendgrid_service.py +1 -1
- django_cfg/modules/django_unfold/navigation.py +15 -24
- django_cfg/modules/nextjs_admin/views.py +1 -1
- django_cfg/pyproject.toml +10 -10
- django_cfg/registry/core.py +4 -7
- django_cfg/registry/modules.py +4 -1
- django_cfg/requirements.txt +52 -0
- django_cfg/static/frontend/admin.zip +0 -0
- django_cfg/templates/admin/constance/includes/results_list.html +73 -0
- django_cfg/templates/admin/index.html +187 -62
- django_cfg/templatetags/django_cfg.py +61 -1
- {django_cfg-1.4.116.dist-info → django_cfg-1.5.14.dist-info}/METADATA +106 -60
- django_cfg-1.5.14.dist-info/RECORD +1182 -0
- django_cfg/apps/centrifugo/apps.py +0 -31
- django_cfg/apps/centrifugo/serializers/publishes.py +0 -18
- django_cfg/apps/dashboard/permissions.py +0 -48
- django_cfg/apps/dashboard/serializers/django_q2.py +0 -50
- django_cfg/apps/dashboard/services/django_q2_service.py +0 -159
- django_cfg/apps/dashboard/views/django_q2_views.py +0 -79
- django_cfg/apps/knowbase/examples/__init__.py +0 -3
- django_cfg/apps/maintenance/__init__.py +0 -56
- django_cfg/apps/maintenance/services/__init__.py +0 -42
- django_cfg/apps/tasks/__init__.py +0 -64
- django_cfg/apps/tasks/admin/__init__.py +0 -4
- django_cfg/apps/tasks/admin/config.py +0 -98
- django_cfg/apps/tasks/admin/task_log.py +0 -265
- django_cfg/apps/tasks/apps.py +0 -15
- django_cfg/apps/tasks/filters/__init__.py +0 -10
- django_cfg/apps/tasks/filters/task_log.py +0 -121
- django_cfg/apps/tasks/migrations/0001_initial.py +0 -196
- django_cfg/apps/tasks/migrations/0002_delete_tasklog.py +0 -16
- django_cfg/apps/tasks/models/__init__.py +0 -4
- django_cfg/apps/tasks/models/task_log.py +0 -246
- django_cfg/apps/tasks/serializers/__init__.py +0 -28
- django_cfg/apps/tasks/serializers/task_log.py +0 -249
- django_cfg/apps/tasks/services/__init__.py +0 -10
- django_cfg/apps/tasks/services/client/__init__.py +0 -7
- django_cfg/apps/tasks/services/client/client.py +0 -234
- django_cfg/apps/tasks/services/config_helper.py +0 -63
- django_cfg/apps/tasks/services/sync.py +0 -204
- django_cfg/apps/tasks/urls.py +0 -16
- django_cfg/apps/tasks/views/__init__.py +0 -10
- django_cfg/apps/tasks/views/task_log.py +0 -41
- django_cfg/apps/tasks/views/task_log_base.py +0 -41
- django_cfg/apps/tasks/views/task_log_overview.py +0 -100
- django_cfg/apps/tasks/views/task_log_related.py +0 -41
- django_cfg/apps/tasks/views/task_log_stats.py +0 -91
- django_cfg/apps/tasks/views/task_log_timeline.py +0 -81
- django_cfg/core/generation/integration_generators/django_q2.py +0 -133
- django_cfg/core/generation/integration_generators/tasks.py +0 -88
- django_cfg/models/django/django_q2.py +0 -496
- django_cfg/models/tasks/__init__.py +0 -49
- django_cfg/models/tasks/backends.py +0 -122
- django_cfg/models/tasks/config.py +0 -209
- django_cfg/models/tasks/utils.py +0 -162
- django_cfg/modules/django_admin/utils/CODE_BLOCK_DOCS.md +0 -396
- django_cfg/modules/django_logging/FIXES_SUMMARY.md +0 -276
- django_cfg/modules/django_logging/LOGGING_GUIDE.md +0 -504
- django_cfg-1.4.116.dist-info/RECORD +0 -1068
- /django_cfg/apps/{accounts/migrations → business}/__init__.py +0 -0
- /django_cfg/apps/{accounts → business/accounts}/README.md +0 -0
- /django_cfg/apps/{accounts → business/accounts}/__init__.py +0 -0
- /django_cfg/apps/{accounts → business/accounts}/__models.py +0 -0
- /django_cfg/apps/{accounts → business/accounts}/admin/__init__.py +0 -0
- /django_cfg/apps/{accounts → business/accounts}/admin/activity_admin.py +0 -0
- /django_cfg/apps/{accounts → business/accounts}/admin/filters.py +0 -0
- /django_cfg/apps/{accounts → business/accounts}/admin/group_admin.py +0 -0
- /django_cfg/apps/{accounts → business/accounts}/admin/otp_admin.py +0 -0
- /django_cfg/apps/{accounts → business/accounts}/admin/registration_admin.py +0 -0
- /django_cfg/apps/{accounts → business/accounts}/admin/resources.py +0 -0
- /django_cfg/apps/{accounts → business/accounts}/admin/twilio_admin.py +0 -0
- /django_cfg/apps/{accounts → business/accounts}/managers/__init__.py +0 -0
- /django_cfg/apps/{accounts → business/accounts}/migrations/0002_add_phone_otp_clean.py +0 -0
- /django_cfg/apps/{accounts → business/accounts}/migrations/0003_twilioresponse.py +0 -0
- /django_cfg/apps/{accounts → business/accounts}/migrations/0004_delete_twilioresponse.py +0 -0
- /django_cfg/apps/{accounts → business/accounts}/migrations/0005_twilioresponse.py +0 -0
- /django_cfg/apps/{accounts → business/accounts}/migrations/0006_remove_twilioresponse_otp_secret_and_more.py +0 -0
- /django_cfg/apps/{accounts → business/accounts}/migrations/0007_twilioresponse.py +0 -0
- /django_cfg/apps/{knowbase/management → business/accounts/migrations}/__init__.py +0 -0
- /django_cfg/apps/{accounts → business/accounts}/models/__init__.py +0 -0
- /django_cfg/apps/{accounts → business/accounts}/models/activity.py +0 -0
- /django_cfg/apps/{accounts → business/accounts}/models/auth.py +0 -0
- /django_cfg/apps/{accounts → business/accounts}/models/base.py +0 -0
- /django_cfg/apps/{accounts → business/accounts}/models/choices.py +0 -0
- /django_cfg/apps/{accounts → business/accounts}/models/integrations.py +0 -0
- /django_cfg/apps/{accounts → business/accounts}/models/registration.py +0 -0
- /django_cfg/apps/{accounts → business/accounts}/models/user.py +0 -0
- /django_cfg/apps/{accounts → business/accounts}/serializers/__init__.py +0 -0
- /django_cfg/apps/{accounts → business/accounts}/serializers/otp.py +0 -0
- /django_cfg/apps/{accounts → business/accounts}/serializers/profile.py +0 -0
- /django_cfg/apps/{accounts → business/accounts}/serializers/webhook.py +0 -0
- /django_cfg/apps/{accounts → business/accounts}/services/__init__.py +0 -0
- /django_cfg/apps/{accounts → business/accounts}/services/activity_service.py +0 -0
- /django_cfg/apps/{accounts → business/accounts}/services/otp_service.py +0 -0
- /django_cfg/apps/{accounts → business/accounts}/signals.py +0 -0
- /django_cfg/apps/{accounts → business/accounts}/templates/emails/base_email.html +0 -0
- /django_cfg/apps/{accounts → business/accounts}/templates/emails/base_email.txt +0 -0
- /django_cfg/apps/{accounts → business/accounts}/templates/emails/otp_email.html +0 -0
- /django_cfg/apps/{accounts → business/accounts}/templates/emails/otp_email.txt +0 -0
- /django_cfg/apps/{accounts → business/accounts}/templates/emails/welcome_email.html +0 -0
- /django_cfg/apps/{accounts → business/accounts}/templates/emails/welcome_email.txt +0 -0
- /django_cfg/apps/{accounts → business/accounts}/urls.py +0 -0
- /django_cfg/apps/{accounts → business/accounts}/urls_admin.py +0 -0
- /django_cfg/apps/{accounts → business/accounts}/utils/notifications.py +0 -0
- /django_cfg/apps/{accounts → business/accounts}/views/__init__.py +0 -0
- /django_cfg/apps/{accounts → business/accounts}/views/otp.py +0 -0
- /django_cfg/apps/{accounts → business/accounts}/views/profile.py +0 -0
- /django_cfg/apps/{accounts → business/accounts}/views/webhook.py +0 -0
- /django_cfg/apps/{agents → business/agents}/README.md +0 -0
- /django_cfg/apps/{agents → business/agents}/admin/__init__.py +0 -0
- /django_cfg/apps/{agents → business/agents}/admin/execution_actions.py +0 -0
- /django_cfg/apps/{agents → business/agents}/admin/execution_admin.py +0 -0
- /django_cfg/apps/{agents → business/agents}/admin/registry_actions.py +0 -0
- /django_cfg/apps/{agents → business/agents}/admin/registry_admin.py +0 -0
- /django_cfg/apps/{agents → business/agents}/admin/toolsets_actions.py +0 -0
- /django_cfg/apps/{agents → business/agents}/admin/toolsets_admin.py +0 -0
- /django_cfg/apps/{agents → business/agents}/core/__init__.py +0 -0
- /django_cfg/apps/{agents → business/agents}/core/dependencies.py +0 -0
- /django_cfg/apps/{agents → business/agents}/core/django_agent.py +0 -0
- /django_cfg/apps/{agents → business/agents}/core/exceptions.py +0 -0
- /django_cfg/apps/{agents → business/agents}/core/models.py +0 -0
- /django_cfg/apps/{agents → business/agents}/core/orchestrator.py +0 -0
- /django_cfg/apps/{agents → business/agents}/examples/__init__.py +0 -0
- /django_cfg/apps/{agents → business/agents}/examples/simple_example.py +0 -0
- /django_cfg/apps/{agents → business/agents}/integration/__init__.py +0 -0
- /django_cfg/apps/{agents → business/agents}/integration/middleware.py +0 -0
- /django_cfg/apps/{agents → business/agents}/integration/registry.py +0 -0
- /django_cfg/apps/{agents → business/agents}/integration/signals.py +0 -0
- /django_cfg/apps/{agents → business/agents}/management/__init__.py +0 -0
- /django_cfg/apps/{agents → business/agents}/management/commands/__init__.py +0 -0
- /django_cfg/apps/{agents → business/agents}/managers/__init__.py +0 -0
- /django_cfg/apps/{agents → business/agents}/managers/execution.py +0 -0
- /django_cfg/apps/{agents → business/agents}/managers/registry.py +0 -0
- /django_cfg/apps/{agents → business/agents}/managers/toolsets.py +0 -0
- /django_cfg/apps/{agents → business/agents}/migrations/0001_initial.py +0 -0
- /django_cfg/apps/{agents → business/agents}/migrations/__init__.py +0 -0
- /django_cfg/apps/{agents → business/agents}/models/__init__.py +0 -0
- /django_cfg/apps/{agents → business/agents}/models/execution.py +0 -0
- /django_cfg/apps/{agents → business/agents}/models/registry.py +0 -0
- /django_cfg/apps/{agents → business/agents}/models/toolsets.py +0 -0
- /django_cfg/apps/{agents → business/agents}/patterns/__init__.py +0 -0
- /django_cfg/apps/{agents → business/agents}/patterns/content_agents.py +0 -0
- /django_cfg/apps/{agents → business/agents}/toolsets/__init__.py +0 -0
- /django_cfg/apps/{agents → business/agents}/toolsets/cache_toolset.py +0 -0
- /django_cfg/apps/{agents → business/agents}/toolsets/django_toolset.py +0 -0
- /django_cfg/apps/{agents → business/agents}/toolsets/file_toolset.py +0 -0
- /django_cfg/apps/{agents → business/agents}/toolsets/orm_toolset.py +0 -0
- /django_cfg/apps/{agents → business/agents}/urls.py +0 -0
- /django_cfg/apps/{agents → business/agents}/urls_admin.py +0 -0
- /django_cfg/apps/{knowbase → business/knowbase}/README.md +0 -0
- /django_cfg/apps/{knowbase → business/knowbase}/admin/__init__.py +0 -0
- /django_cfg/apps/{knowbase → business/knowbase}/admin/archive_actions.py +0 -0
- /django_cfg/apps/{knowbase → business/knowbase}/admin/archive_admin.py +0 -0
- /django_cfg/apps/{knowbase → business/knowbase}/admin/chat_actions.py +0 -0
- /django_cfg/apps/{knowbase → business/knowbase}/admin/chat_admin.py +0 -0
- /django_cfg/apps/{knowbase → business/knowbase}/admin/document_actions.py +0 -0
- /django_cfg/apps/{knowbase → business/knowbase}/admin/document_admin.py +0 -0
- /django_cfg/apps/{knowbase → business/knowbase}/admin/external_data_actions.py +0 -0
- /django_cfg/apps/{knowbase → business/knowbase}/admin/external_data_admin.py +0 -0
- /django_cfg/apps/{knowbase → business/knowbase}/config/README.md +0 -0
- /django_cfg/apps/{knowbase → business/knowbase}/config/__init__.py +0 -0
- /django_cfg/apps/{knowbase → business/knowbase}/config/constance_fields.py +0 -0
- /django_cfg/apps/{knowbase → business/knowbase}/config/constance_settings.py +0 -0
- /django_cfg/apps/{knowbase → business/knowbase}/config/settings.py +0 -0
- /django_cfg/apps/{knowbase/management/commands → business/knowbase/management}/__init__.py +0 -0
- /django_cfg/apps/{leads → business/knowbase/management/commands}/__init__.py +0 -0
- /django_cfg/apps/{knowbase → business/knowbase}/managers/__init__.py +0 -0
- /django_cfg/apps/{knowbase → business/knowbase}/managers/archive.py +0 -0
- /django_cfg/apps/{knowbase → business/knowbase}/managers/base.py +0 -0
- /django_cfg/apps/{knowbase → business/knowbase}/managers/chat.py +0 -0
- /django_cfg/apps/{knowbase → business/knowbase}/managers/document.py +0 -0
- /django_cfg/apps/{knowbase → business/knowbase}/managers/external_data.py +0 -0
- /django_cfg/apps/{knowbase → business/knowbase}/migrations/0001_initial.py +0 -0
- /django_cfg/apps/{knowbase → business/knowbase}/migrations/0002_archiveitem_archiveitemchunk_documentarchive_and_more.py +0 -0
- /django_cfg/apps/{knowbase → business/knowbase}/migrations/0003_alter_documentarchive_archive_type.py +0 -0
- /django_cfg/apps/{knowbase → business/knowbase}/migrations/__init__.py +0 -0
- /django_cfg/apps/{knowbase → business/knowbase}/mixins/__init__.py +0 -0
- /django_cfg/apps/{knowbase → business/knowbase}/mixins/config/__init__.py +0 -0
- /django_cfg/apps/{knowbase → business/knowbase}/mixins/config/defaults.py +0 -0
- /django_cfg/apps/{knowbase → business/knowbase}/mixins/config/meta_config.py +0 -0
- /django_cfg/apps/{knowbase → business/knowbase}/mixins/config.py +0 -0
- /django_cfg/apps/{knowbase → business/knowbase}/mixins/creator.py +0 -0
- /django_cfg/apps/{knowbase → business/knowbase}/mixins/external_data_mixin.py +0 -0
- /django_cfg/apps/{knowbase → business/knowbase}/mixins/generators/__init__.py +0 -0
- /django_cfg/apps/{knowbase → business/knowbase}/mixins/generators/content_generator.py +0 -0
- /django_cfg/apps/{knowbase → business/knowbase}/mixins/generators/field_analyzer.py +0 -0
- /django_cfg/apps/{knowbase → business/knowbase}/mixins/generators/metadata_generator.py +0 -0
- /django_cfg/apps/{knowbase → business/knowbase}/models/__init__.py +0 -0
- /django_cfg/apps/{knowbase → business/knowbase}/models/archive.py +0 -0
- /django_cfg/apps/{knowbase → business/knowbase}/models/base.py +0 -0
- /django_cfg/apps/{knowbase → business/knowbase}/models/chat.py +0 -0
- /django_cfg/apps/{knowbase → business/knowbase}/models/document.py +0 -0
- /django_cfg/apps/{knowbase → business/knowbase}/serializers/__init__.py +0 -0
- /django_cfg/apps/{knowbase → business/knowbase}/serializers/archive_serializers.py +0 -0
- /django_cfg/apps/{knowbase → business/knowbase}/serializers/chat_serializers.py +0 -0
- /django_cfg/apps/{knowbase → business/knowbase}/serializers/document_serializers.py +0 -0
- /django_cfg/apps/{knowbase → business/knowbase}/serializers/external_data_serializers.py +0 -0
- /django_cfg/apps/{knowbase → business/knowbase}/serializers/public_serializers.py +0 -0
- /django_cfg/apps/{knowbase → business/knowbase}/services/__init__.py +0 -0
- /django_cfg/apps/{knowbase → business/knowbase}/services/archive/__init__.py +0 -0
- /django_cfg/apps/{knowbase → business/knowbase}/services/archive/analyzers/__init__.py +0 -0
- /django_cfg/apps/{knowbase → business/knowbase}/services/archive/analyzers/complexity_analyzer.py +0 -0
- /django_cfg/apps/{knowbase → business/knowbase}/services/archive/analyzers/purpose_detector.py +0 -0
- /django_cfg/apps/{knowbase → business/knowbase}/services/archive/analyzers/quality_analyzer.py +0 -0
- /django_cfg/apps/{knowbase → business/knowbase}/services/archive/analyzers/tag_generator.py +0 -0
- /django_cfg/apps/{knowbase → business/knowbase}/services/archive/archive_service.py +0 -0
- /django_cfg/apps/{knowbase → business/knowbase}/services/archive/chunking/__init__.py +0 -0
- /django_cfg/apps/{knowbase → business/knowbase}/services/archive/chunking/base.py +0 -0
- /django_cfg/apps/{knowbase → business/knowbase}/services/archive/chunking/json_chunker.py +0 -0
- /django_cfg/apps/{knowbase → business/knowbase}/services/archive/chunking/markdown_chunker.py +0 -0
- /django_cfg/apps/{knowbase → business/knowbase}/services/archive/chunking/python_chunker.py +0 -0
- /django_cfg/apps/{knowbase → business/knowbase}/services/archive/chunking/text_chunker.py +0 -0
- /django_cfg/apps/{knowbase → business/knowbase}/services/archive/chunking_service.py +0 -0
- /django_cfg/apps/{knowbase → business/knowbase}/services/archive/context/__init__.py +0 -0
- /django_cfg/apps/{knowbase → business/knowbase}/services/archive/context/builders.py +0 -0
- /django_cfg/apps/{knowbase → business/knowbase}/services/archive/context/models.py +0 -0
- /django_cfg/apps/{knowbase → business/knowbase}/services/archive/exceptions.py +0 -0
- /django_cfg/apps/{knowbase → business/knowbase}/services/archive/extraction_service.py +0 -0
- /django_cfg/apps/{knowbase → business/knowbase}/services/base.py +0 -0
- /django_cfg/apps/{knowbase → business/knowbase}/services/chat_service.py +0 -0
- /django_cfg/apps/{knowbase → business/knowbase}/services/document_service.py +0 -0
- /django_cfg/apps/{knowbase → business/knowbase}/services/embedding/__init__.py +0 -0
- /django_cfg/apps/{knowbase → business/knowbase}/services/embedding/batch_result.py +0 -0
- /django_cfg/apps/{knowbase → business/knowbase}/services/embedding/models.py +0 -0
- /django_cfg/apps/{knowbase → business/knowbase}/services/prompt_builder.py +0 -0
- /django_cfg/apps/{knowbase → business/knowbase}/services/search_service.py +0 -0
- /django_cfg/apps/{knowbase → business/knowbase}/signals/__init__.py +0 -0
- /django_cfg/apps/{knowbase → business/knowbase}/signals/archive_signals.py +0 -0
- /django_cfg/apps/{knowbase → business/knowbase}/signals/chat_signals.py +0 -0
- /django_cfg/apps/{knowbase → business/knowbase}/signals/document_signals.py +0 -0
- /django_cfg/apps/{knowbase → business/knowbase}/signals/external_data_signals.py +0 -0
- /django_cfg/apps/{knowbase → business/knowbase}/tasks/__init__.py +0 -0
- /django_cfg/apps/{knowbase → business/knowbase}/tasks/archive_tasks.py +0 -0
- /django_cfg/apps/{knowbase → business/knowbase}/tasks/external_data_tasks.py +0 -0
- /django_cfg/apps/{knowbase → business/knowbase}/tasks/maintenance.py +0 -0
- /django_cfg/apps/{knowbase → business/knowbase}/urls.py +0 -0
- /django_cfg/apps/{knowbase → business/knowbase}/urls_admin.py +0 -0
- /django_cfg/apps/{knowbase → business/knowbase}/urls_system.py +0 -0
- /django_cfg/apps/{knowbase → business/knowbase}/utils/__init__.py +0 -0
- /django_cfg/apps/{knowbase → business/knowbase}/utils/text_processing.py +0 -0
- /django_cfg/apps/{knowbase → business/knowbase}/utils/validation.py +0 -0
- /django_cfg/apps/{knowbase → business/knowbase}/views/__init__.py +0 -0
- /django_cfg/apps/{knowbase → business/knowbase}/views/base.py +0 -0
- /django_cfg/apps/{knowbase → business/knowbase}/views/chat_views.py +0 -0
- /django_cfg/apps/{knowbase → business/knowbase}/views/document_views.py +0 -0
- /django_cfg/apps/{knowbase → business/knowbase}/views/public_views.py +0 -0
- /django_cfg/apps/{leads → business/leads}/README.md +0 -0
- /django_cfg/apps/{leads/migrations → business/leads}/__init__.py +0 -0
- /django_cfg/apps/{leads → business/leads}/admin/__init__.py +0 -0
- /django_cfg/apps/{leads → business/leads}/admin/actions.py +0 -0
- /django_cfg/apps/{leads → business/leads}/admin/leads_admin.py +0 -0
- /django_cfg/apps/{leads → business/leads}/admin/resources.py +0 -0
- /django_cfg/apps/{leads → business/leads}/admin.py +0 -0
- /django_cfg/apps/{leads → business/leads}/migrations/0001_initial.py +0 -0
- /django_cfg/apps/{maintenance/management → business/leads/migrations}/__init__.py +0 -0
- /django_cfg/apps/{leads → business/leads}/models.py +0 -0
- /django_cfg/apps/{leads → business/leads}/serializers.py +0 -0
- /django_cfg/apps/{leads → business/leads}/signals.py +0 -0
- /django_cfg/apps/{leads → business/leads}/tests.py +0 -0
- /django_cfg/apps/{leads → business/leads}/urls.py +0 -0
- /django_cfg/apps/{leads → business/leads}/urls_admin.py +0 -0
- /django_cfg/apps/{leads → business/leads}/views.py +0 -0
- /django_cfg/apps/{newsletter → business/newsletter}/README.md +0 -0
- /django_cfg/apps/{maintenance/management/commands → business/newsletter}/__init__.py +0 -0
- /django_cfg/apps/{newsletter → business/newsletter}/admin/__init__.py +0 -0
- /django_cfg/apps/{newsletter → business/newsletter}/admin/actions.py +0 -0
- /django_cfg/apps/{newsletter → business/newsletter}/admin/filters.py +0 -0
- /django_cfg/apps/{newsletter → business/newsletter}/admin/resources.py +0 -0
- /django_cfg/apps/{newsletter → business/newsletter}/admin.py +0 -0
- /django_cfg/apps/{newsletter → business/newsletter}/admin_filters.py +0 -0
- /django_cfg/apps/{maintenance/migrations → business/newsletter/management}/__init__.py +0 -0
- /django_cfg/apps/{newsletter → business/newsletter/management/commands}/__init__.py +0 -0
- /django_cfg/apps/{newsletter → business/newsletter}/managers/README.md +0 -0
- /django_cfg/apps/{newsletter → business/newsletter}/managers/__init__.py +0 -0
- /django_cfg/apps/{newsletter → business/newsletter}/migrations/0001_initial.py +0 -0
- /django_cfg/apps/{newsletter/management → business/newsletter/migrations}/__init__.py +0 -0
- /django_cfg/apps/{newsletter → business/newsletter}/models.py +0 -0
- /django_cfg/apps/{newsletter → business/newsletter}/serializers.py +0 -0
- /django_cfg/apps/{newsletter → business/newsletter}/services/email_service.py +0 -0
- /django_cfg/apps/{newsletter → business/newsletter}/signals.py +0 -0
- /django_cfg/apps/{newsletter → business/newsletter}/urls.py +0 -0
- /django_cfg/apps/{maintenance → business/newsletter}/urls_admin.py +0 -0
- /django_cfg/apps/{newsletter → business/newsletter}/utils/__init__.py +0 -0
- /django_cfg/apps/{newsletter → business/newsletter}/views/__init__.py +0 -0
- /django_cfg/apps/{newsletter → business/newsletter}/views/campaigns.py +0 -0
- /django_cfg/apps/{newsletter → business/newsletter}/views/emails.py +0 -0
- /django_cfg/apps/{newsletter → business/newsletter}/views/newsletters.py +0 -0
- /django_cfg/apps/{newsletter → business/newsletter}/views/subscriptions.py +0 -0
- /django_cfg/apps/{newsletter → business/newsletter}/views/tracking.py +0 -0
- /django_cfg/apps/{payments → business/payments}/CONFIGURATION.md +0 -0
- /django_cfg/apps/{payments → business/payments}/admin/__init__.py +0 -0
- /django_cfg/apps/{payments → business/payments}/admin/actions.py +0 -0
- /django_cfg/apps/{payments → business/payments}/admin/balance_actions.py +0 -0
- /django_cfg/apps/{payments → business/payments}/admin/currency_admin.py +0 -0
- /django_cfg/apps/{payments → business/payments}/admin/filters.py +0 -0
- /django_cfg/apps/{payments → business/payments}/admin/payment_actions.py +0 -0
- /django_cfg/apps/{payments → business/payments}/admin/withdrawal_actions.py +0 -0
- /django_cfg/apps/{payments → business/payments}/api/__init__.py +0 -0
- /django_cfg/apps/{payments → business/payments}/api/serializers.py +0 -0
- /django_cfg/apps/{payments → business/payments}/api/urls.py +0 -0
- /django_cfg/apps/{payments → business/payments}/api/views.py +0 -0
- /django_cfg/apps/{payments → business/payments}/config.py +0 -0
- /django_cfg/apps/{payments → business/payments}/management/README.md +0 -0
- /django_cfg/apps/{newsletter/management/commands → business/payments/management}/__init__.py +0 -0
- /django_cfg/apps/{newsletter/migrations → business/payments/management/commands}/__init__.py +0 -0
- /django_cfg/apps/{payments → business/payments}/migrations/0001_initial.py +0 -0
- /django_cfg/apps/{payments/management → business/payments/migrations}/__init__.py +0 -0
- /django_cfg/apps/{payments → business/payments}/models/__init__.py +0 -0
- /django_cfg/apps/{payments → business/payments}/models/balance.py +0 -0
- /django_cfg/apps/{payments → business/payments}/models/base.py +0 -0
- /django_cfg/apps/{payments → business/payments}/models/currency.py +0 -0
- /django_cfg/apps/{payments → business/payments}/models/managers/__init__.py +0 -0
- /django_cfg/apps/{payments → business/payments}/models/managers/balance_managers.py +0 -0
- /django_cfg/apps/{payments → business/payments}/models/managers/payment_managers.py +0 -0
- /django_cfg/apps/{payments → business/payments}/models/payment.py +0 -0
- /django_cfg/apps/{payments → business/payments}/models/withdrawal.py +0 -0
- /django_cfg/apps/{payments → business/payments}/services/__init__.py +0 -0
- /django_cfg/apps/{payments → business/payments}/services/balance_service.py +0 -0
- /django_cfg/apps/{payments → business/payments}/services/payment_service.py +0 -0
- /django_cfg/apps/{payments → business/payments}/services/providers/__init__.py +0 -0
- /django_cfg/apps/{payments → business/payments}/services/providers/models.py +0 -0
- /django_cfg/apps/{payments → business/payments}/services/providers/nowpayments/__init__.py +0 -0
- /django_cfg/apps/{payments → business/payments}/services/providers/nowpayments/config.py +0 -0
- /django_cfg/apps/{payments → business/payments}/services/providers/nowpayments/parser.py +0 -0
- /django_cfg/apps/{payments → business/payments}/services/providers/nowpayments/provider.py +0 -0
- /django_cfg/apps/{payments/management/commands → business/support}/__init__.py +0 -0
- /django_cfg/apps/{support → business/support}/admin/__init__.py +0 -0
- /django_cfg/apps/{support → business/support}/admin/actions.py +0 -0
- /django_cfg/apps/{support → business/support}/admin/filters.py +0 -0
- /django_cfg/apps/{support → business/support}/admin/resources.py +0 -0
- /django_cfg/apps/{support → business/support}/admin/support_admin.py +0 -0
- /django_cfg/apps/{support → business/support}/admin.py +0 -0
- /django_cfg/apps/{support → business/support}/admin_filters.py +0 -0
- /django_cfg/apps/{support → business/support}/migrations/0001_initial.py +0 -0
- /django_cfg/apps/{support → business/support}/migrations/0002_alter_message_ticket.py +0 -0
- /django_cfg/apps/{payments → business/support}/migrations/__init__.py +0 -0
- /django_cfg/apps/{support → business/support}/models.py +0 -0
- /django_cfg/apps/{support → business/support}/serializers.py +0 -0
- /django_cfg/apps/{support → business/support}/signals.py +0 -0
- /django_cfg/apps/{support → business/support}/templates/support/chat/access_denied.html +0 -0
- /django_cfg/apps/{support → business/support}/templates/support/chat/ticket_chat.html +0 -0
- /django_cfg/apps/{support → business/support}/urls.py +0 -0
- /django_cfg/apps/{newsletter → business/support}/urls_admin.py +0 -0
- /django_cfg/apps/{support → business/support/utils}/__init__.py +0 -0
- /django_cfg/apps/{support → business/support}/utils/support_email_service.py +0 -0
- /django_cfg/apps/{support → business/support}/views/__init__.py +0 -0
- /django_cfg/apps/{support → business/support}/views/admin.py +0 -0
- /django_cfg/apps/{support → business/support}/views/api.py +0 -0
- /django_cfg/apps/{support → business/support}/views/chat.py +0 -0
- /django_cfg/apps/{support/migrations → integrations}/__init__.py +0 -0
- /django_cfg/apps/{centrifugo → integrations/centrifugo}/admin/__init__.py +0 -0
- /django_cfg/apps/{centrifugo → integrations/centrifugo}/admin/config.py +0 -0
- /django_cfg/apps/{centrifugo → integrations/centrifugo}/codegen/IMPLEMENTATION_SUMMARY.md +0 -0
- /django_cfg/apps/{centrifugo → integrations/centrifugo}/codegen/README.md +0 -0
- /django_cfg/apps/{centrifugo → integrations/centrifugo}/codegen/USAGE.md +0 -0
- /django_cfg/apps/{centrifugo → integrations/centrifugo}/codegen/__init__.py +0 -0
- /django_cfg/apps/{centrifugo → integrations/centrifugo}/codegen/discovery.py +0 -0
- /django_cfg/apps/{centrifugo → integrations/centrifugo}/codegen/generators/go_thin/__init__.py +0 -0
- /django_cfg/apps/{centrifugo → integrations/centrifugo}/codegen/generators/go_thin/generator.py +0 -0
- /django_cfg/apps/{centrifugo → integrations/centrifugo}/codegen/generators/go_thin/templates/README.md.j2 +0 -0
- /django_cfg/apps/{centrifugo → integrations/centrifugo}/codegen/generators/go_thin/templates/client.go.j2 +0 -0
- /django_cfg/apps/{centrifugo → integrations/centrifugo}/codegen/generators/go_thin/templates/go.mod.j2 +0 -0
- /django_cfg/apps/{centrifugo → integrations/centrifugo}/codegen/generators/go_thin/templates/rpc_client.go.j2 +0 -0
- /django_cfg/apps/{centrifugo → integrations/centrifugo}/codegen/generators/go_thin/templates/rpc_client.go.j2.old +0 -0
- /django_cfg/apps/{centrifugo → integrations/centrifugo}/codegen/generators/go_thin/templates/types.go.j2 +0 -0
- /django_cfg/apps/{centrifugo → integrations/centrifugo}/codegen/generators/python_thin/__init__.py +0 -0
- /django_cfg/apps/{centrifugo → integrations/centrifugo}/codegen/generators/python_thin/generator.py +0 -0
- /django_cfg/apps/{centrifugo → integrations/centrifugo}/codegen/generators/python_thin/templates/README.md.j2 +0 -0
- /django_cfg/apps/{centrifugo → integrations/centrifugo}/codegen/generators/python_thin/templates/__init__.py.j2 +0 -0
- /django_cfg/apps/{centrifugo → integrations/centrifugo}/codegen/generators/python_thin/templates/client.py.j2 +0 -0
- /django_cfg/apps/{centrifugo → integrations/centrifugo}/codegen/generators/python_thin/templates/models.py.j2 +0 -0
- /django_cfg/apps/{centrifugo → integrations/centrifugo}/codegen/generators/python_thin/templates/requirements.txt.j2 +0 -0
- /django_cfg/apps/{centrifugo → integrations/centrifugo}/codegen/generators/python_thin/templates/rpc_client.py.j2 +0 -0
- /django_cfg/apps/{centrifugo → integrations/centrifugo}/codegen/generators/typescript_thin/__init__.py +0 -0
- /django_cfg/apps/{centrifugo → integrations/centrifugo}/codegen/generators/typescript_thin/generator.py +0 -0
- /django_cfg/apps/{centrifugo → integrations/centrifugo}/codegen/generators/typescript_thin/templates/README.md.j2 +0 -0
- /django_cfg/apps/{centrifugo → integrations/centrifugo}/codegen/generators/typescript_thin/templates/client.ts.j2 +0 -0
- /django_cfg/apps/{centrifugo → integrations/centrifugo}/codegen/generators/typescript_thin/templates/index.ts.j2 +0 -0
- /django_cfg/apps/{centrifugo → integrations/centrifugo}/codegen/generators/typescript_thin/templates/package.json.j2 +0 -0
- /django_cfg/apps/{centrifugo → integrations/centrifugo}/codegen/generators/typescript_thin/templates/rpc-client.ts.j2 +0 -0
- /django_cfg/apps/{centrifugo → integrations/centrifugo}/codegen/generators/typescript_thin/templates/tsconfig.json.j2 +0 -0
- /django_cfg/apps/{centrifugo → integrations/centrifugo}/codegen/generators/typescript_thin/templates/types.ts.j2 +0 -0
- /django_cfg/apps/{centrifugo → integrations/centrifugo}/codegen/utils/__init__.py +0 -0
- /django_cfg/apps/{centrifugo → integrations/centrifugo}/codegen/utils/naming.py +0 -0
- /django_cfg/apps/{centrifugo → integrations/centrifugo}/codegen/utils/type_converter.py +0 -0
- /django_cfg/apps/{centrifugo → integrations/centrifugo}/decorators.py +0 -0
- /django_cfg/apps/{centrifugo → integrations/centrifugo}/management/__init__.py +0 -0
- /django_cfg/apps/{centrifugo → integrations/centrifugo}/management/commands/__init__.py +0 -0
- /django_cfg/apps/{centrifugo → integrations/centrifugo}/managers/__init__.py +0 -0
- /django_cfg/apps/{centrifugo → integrations/centrifugo}/managers/centrifugo_log.py +0 -0
- /django_cfg/apps/{centrifugo → integrations/centrifugo}/migrations/0001_initial.py +0 -0
- /django_cfg/apps/{centrifugo → integrations/centrifugo}/migrations/__init__.py +0 -0
- /django_cfg/apps/{centrifugo → integrations/centrifugo}/models/__init__.py +0 -0
- /django_cfg/apps/{centrifugo → integrations/centrifugo}/models/centrifugo_log.py +0 -0
- /django_cfg/apps/{centrifugo → integrations/centrifugo}/registry.py +0 -0
- /django_cfg/apps/{centrifugo → integrations/centrifugo}/router.py +0 -0
- /django_cfg/apps/{centrifugo → integrations/centrifugo}/serializers/admin_api.py +0 -0
- /django_cfg/apps/{centrifugo → integrations/centrifugo}/serializers/channels.py +0 -0
- /django_cfg/apps/{centrifugo → integrations/centrifugo}/serializers/health.py +0 -0
- /django_cfg/apps/{centrifugo → integrations/centrifugo}/services/__init__.py +0 -0
- /django_cfg/apps/{centrifugo → integrations/centrifugo}/services/client/__init__.py +0 -0
- /django_cfg/apps/{centrifugo → integrations/centrifugo}/services/client/exceptions.py +0 -0
- /django_cfg/apps/{centrifugo → integrations/centrifugo}/services/config_helper.py +0 -0
- /django_cfg/apps/{centrifugo → integrations/centrifugo}/services/dashboard_notifier.py +0 -0
- /django_cfg/apps/{centrifugo → integrations/centrifugo}/services/logging.py +0 -0
- /django_cfg/apps/{centrifugo → integrations/centrifugo}/urls.py +0 -0
- /django_cfg/apps/{centrifugo → integrations/centrifugo}/views/__init__.py +0 -0
- /django_cfg/apps/{centrifugo → integrations/centrifugo}/views/admin_api.py +0 -0
- /django_cfg/apps/{centrifugo → integrations/centrifugo}/views/testing_api.py +0 -0
- /django_cfg/apps/{support/utils → integrations/grpc/management/commands}/__init__.py +0 -0
- /django_cfg/apps/{tasks → integrations/grpc}/migrations/__init__.py +0 -0
- /django_cfg/apps/{dashboard → system/dashboard}/serializers/apizones.py +0 -0
- /django_cfg/apps/{dashboard → system/dashboard}/serializers/base.py +0 -0
- /django_cfg/apps/{dashboard → system/dashboard}/serializers/charts.py +0 -0
- /django_cfg/apps/{dashboard → system/dashboard}/serializers/overview.py +0 -0
- /django_cfg/apps/{dashboard → system/dashboard}/serializers/statistics.py +0 -0
- /django_cfg/apps/{dashboard → system/dashboard}/serializers/system.py +0 -0
- /django_cfg/apps/{dashboard → system/dashboard}/services/apizones_service.py +0 -0
- /django_cfg/apps/{dashboard → system/dashboard}/services/commands_security.py +0 -0
- /django_cfg/apps/{dashboard → system/dashboard}/services/overview_service.py +0 -0
- /django_cfg/apps/{dashboard → system/dashboard}/views/activity_views.py +0 -0
- /django_cfg/apps/{dashboard → system/dashboard}/views/apizones_views.py +0 -0
- /django_cfg/apps/{dashboard → system/dashboard}/views/charts_views.py +0 -0
- /django_cfg/apps/{dashboard → system/dashboard}/views/statistics_views.py +0 -0
- /django_cfg/apps/{dashboard → system/dashboard}/views/system_views.py +0 -0
- /django_cfg/apps/{frontend → system/frontend}/JWT_AUTO_INJECTION.md +0 -0
- /django_cfg/apps/{frontend → system/frontend}/templates/frontend/404.html +0 -0
- /django_cfg/apps/{frontend → system/frontend}/test_routing.py +0 -0
- /django_cfg/apps/{frontend → system/frontend}/urls.py +0 -0
- /django_cfg/apps/{maintenance → system/maintenance}/admin/__init__.py +0 -0
- /django_cfg/apps/{maintenance → system/maintenance}/admin/actions.py +0 -0
- /django_cfg/apps/{maintenance → system/maintenance}/admin/log_admin.py +0 -0
- /django_cfg/apps/{maintenance → system/maintenance}/managers/__init__.py +0 -0
- /django_cfg/apps/{maintenance → system/maintenance}/managers/cloudflare_site_manager.py +0 -0
- /django_cfg/apps/{maintenance → system/maintenance}/managers/maintenance_log_manager.py +0 -0
- /django_cfg/apps/{maintenance → system/maintenance}/migrations/0001_initial.py +0 -0
- /django_cfg/apps/{maintenance → system/maintenance}/migrations/0002_cloudflaresite_maintenance_url.py +0 -0
- /django_cfg/apps/{maintenance → system/maintenance}/migrations/0003_cloudflaresite_include_subdomains_and_more.py +0 -0
- /django_cfg/apps/{maintenance → system/maintenance}/models/cloudflare_api_key.py +0 -0
- /django_cfg/apps/{maintenance → system/maintenance}/models/cloudflare_site.py +0 -0
- /django_cfg/apps/{maintenance → system/maintenance}/models/maintenance_log.py +0 -0
- /django_cfg/apps/{maintenance → system/maintenance}/models/scheduled_maintenance.py +0 -0
- /django_cfg/apps/{maintenance → system/maintenance}/services/bulk_operations_service.py +0 -0
- /django_cfg/apps/{maintenance → system/maintenance}/services/maintenance_service.py +0 -0
- /django_cfg/apps/{maintenance → system/maintenance}/services/scheduled_maintenance_service.py +0 -0
- /django_cfg/apps/{maintenance → system/maintenance}/services/site_sync_service.py +0 -0
- /django_cfg/apps/{maintenance → system/maintenance}/urls.py +0 -0
- /django_cfg/apps/{support → system/maintenance}/urls_admin.py +0 -0
- /django_cfg/apps/{maintenance → system/maintenance}/utils/__init__.py +0 -0
- /django_cfg/apps/{maintenance → system/maintenance}/utils/retry_utils.py +0 -0
- /django_cfg/modules/django_admin/utils/{mermaid_plugin.py → markdown/mermaid_plugin.py} +0 -0
- /django_cfg/modules/django_admin/utils/{markdown_renderer.py → markdown/renderer.py} +0 -0
- {django_cfg-1.4.116.dist-info → django_cfg-1.5.14.dist-info}/WHEEL +0 -0
- {django_cfg-1.4.116.dist-info → django_cfg-1.5.14.dist-info}/entry_points.txt +0 -0
- {django_cfg-1.4.116.dist-info → django_cfg-1.5.14.dist-info}/licenses/LICENSE +0 -0
|
@@ -0,0 +1,313 @@
|
|
|
1
|
+
#!/usr/bin/env python
|
|
2
|
+
"""
|
|
3
|
+
Django-RQ dependency checker.
|
|
4
|
+
|
|
5
|
+
Validates that all required dependencies for django-rq are installed.
|
|
6
|
+
Provides beautiful Rich-formatted error messages with installation instructions.
|
|
7
|
+
"""
|
|
8
|
+
|
|
9
|
+
from __future__ import annotations
|
|
10
|
+
|
|
11
|
+
import importlib.util
|
|
12
|
+
import os
|
|
13
|
+
from typing import Dict
|
|
14
|
+
|
|
15
|
+
from rich.console import Console
|
|
16
|
+
from rich.panel import Panel
|
|
17
|
+
from rich.table import Table
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
class RQDependencyError(ImportError):
|
|
21
|
+
"""Raised when required RQ dependencies are missing."""
|
|
22
|
+
pass
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
class DependencyChecker:
|
|
26
|
+
"""
|
|
27
|
+
Check and validate RQ dependencies.
|
|
28
|
+
|
|
29
|
+
Required dependencies:
|
|
30
|
+
- django-rq: Django integration for RQ
|
|
31
|
+
- redis: Python Redis client
|
|
32
|
+
- rq: Redis Queue library
|
|
33
|
+
|
|
34
|
+
Optional dependencies:
|
|
35
|
+
- rq-scheduler: Cron-style scheduling
|
|
36
|
+
- hiredis: High-performance Redis protocol parser
|
|
37
|
+
"""
|
|
38
|
+
|
|
39
|
+
# Required dependencies
|
|
40
|
+
REQUIRED_DEPS = {
|
|
41
|
+
"django_rq": "django-rq>=3.0.0",
|
|
42
|
+
"redis": "redis>=4.0.0",
|
|
43
|
+
"rq": "rq>=1.10.0",
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
# Optional dependencies
|
|
47
|
+
OPTIONAL_DEPS = {
|
|
48
|
+
"rq_scheduler": "rq-scheduler>=0.13.0",
|
|
49
|
+
"hiredis": "hiredis>=2.0.0",
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
# Package descriptions
|
|
53
|
+
DESCRIPTIONS = {
|
|
54
|
+
"django_rq": "Django integration for RQ",
|
|
55
|
+
"redis": "Python Redis client",
|
|
56
|
+
"rq": "Redis Queue (RQ) library",
|
|
57
|
+
"rq_scheduler": "Cron-style scheduling for RQ",
|
|
58
|
+
"hiredis": "High-performance Redis parser",
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
@classmethod
|
|
62
|
+
def check_package(cls, package_name: str) -> bool:
|
|
63
|
+
"""
|
|
64
|
+
Check if a package is installed.
|
|
65
|
+
|
|
66
|
+
Args:
|
|
67
|
+
package_name: Python package name (import name)
|
|
68
|
+
|
|
69
|
+
Returns:
|
|
70
|
+
True if installed, False otherwise
|
|
71
|
+
"""
|
|
72
|
+
return importlib.util.find_spec(package_name) is not None
|
|
73
|
+
|
|
74
|
+
@classmethod
|
|
75
|
+
def check_all(cls, raise_on_missing: bool = True) -> Dict[str, bool]:
|
|
76
|
+
"""
|
|
77
|
+
Check all RQ dependencies.
|
|
78
|
+
|
|
79
|
+
Args:
|
|
80
|
+
raise_on_missing: If True, raise exception when required deps missing
|
|
81
|
+
|
|
82
|
+
Returns:
|
|
83
|
+
Dictionary mapping package names to availability status
|
|
84
|
+
|
|
85
|
+
Raises:
|
|
86
|
+
RQDependencyError: If required dependencies are missing and raise_on_missing=True
|
|
87
|
+
"""
|
|
88
|
+
status = {}
|
|
89
|
+
|
|
90
|
+
# Check required dependencies
|
|
91
|
+
for package_name in cls.REQUIRED_DEPS:
|
|
92
|
+
status[package_name] = cls.check_package(package_name)
|
|
93
|
+
|
|
94
|
+
# Check optional dependencies
|
|
95
|
+
for package_name in cls.OPTIONAL_DEPS:
|
|
96
|
+
status[package_name] = cls.check_package(package_name)
|
|
97
|
+
|
|
98
|
+
# Check if any required dependencies are missing
|
|
99
|
+
missing_required = [
|
|
100
|
+
pkg for pkg in cls.REQUIRED_DEPS if not status.get(pkg, False)
|
|
101
|
+
]
|
|
102
|
+
|
|
103
|
+
missing_optional = [
|
|
104
|
+
pkg for pkg in cls.OPTIONAL_DEPS if not status.get(pkg, False)
|
|
105
|
+
]
|
|
106
|
+
|
|
107
|
+
if missing_required and raise_on_missing:
|
|
108
|
+
cls._raise_missing_error(missing_required, missing_optional)
|
|
109
|
+
|
|
110
|
+
return status
|
|
111
|
+
|
|
112
|
+
@classmethod
|
|
113
|
+
def _raise_missing_error(
|
|
114
|
+
cls,
|
|
115
|
+
missing_required: list[str],
|
|
116
|
+
missing_optional: list[str],
|
|
117
|
+
) -> None:
|
|
118
|
+
"""
|
|
119
|
+
Raise a formatted error for missing dependencies.
|
|
120
|
+
|
|
121
|
+
Args:
|
|
122
|
+
missing_required: List of missing required packages
|
|
123
|
+
missing_optional: List of missing optional packages
|
|
124
|
+
"""
|
|
125
|
+
console = Console()
|
|
126
|
+
|
|
127
|
+
# Header
|
|
128
|
+
console.print()
|
|
129
|
+
console.print(Panel(
|
|
130
|
+
"[bold red]MISSING Django-RQ DEPENDENCIES[/bold red]",
|
|
131
|
+
expand=True,
|
|
132
|
+
))
|
|
133
|
+
console.print()
|
|
134
|
+
console.print("Django-CFG's RQ integration requires additional dependencies")
|
|
135
|
+
console.print()
|
|
136
|
+
|
|
137
|
+
# Required dependencies table
|
|
138
|
+
if missing_required:
|
|
139
|
+
table = Table(title="📦 REQUIRED Dependencies (Missing)", show_header=True)
|
|
140
|
+
table.add_column("Package", style="cyan")
|
|
141
|
+
table.add_column("Description", style="white")
|
|
142
|
+
|
|
143
|
+
for pkg in missing_required:
|
|
144
|
+
pip_name = cls.REQUIRED_DEPS[pkg].split(">=")[0]
|
|
145
|
+
desc = cls.DESCRIPTIONS.get(pkg, "")
|
|
146
|
+
table.add_row(f"❌ {pip_name}", desc)
|
|
147
|
+
|
|
148
|
+
console.print(table)
|
|
149
|
+
console.print()
|
|
150
|
+
|
|
151
|
+
# Optional dependencies table
|
|
152
|
+
if missing_optional:
|
|
153
|
+
table = Table(title="📦 OPTIONAL Dependencies (Missing)", show_header=True)
|
|
154
|
+
table.add_column("Package", style="cyan")
|
|
155
|
+
table.add_column("Description", style="white")
|
|
156
|
+
|
|
157
|
+
for pkg in missing_optional:
|
|
158
|
+
pip_name = cls.OPTIONAL_DEPS[pkg].split(">=")[0]
|
|
159
|
+
desc = cls.DESCRIPTIONS.get(pkg, "")
|
|
160
|
+
table.add_row(f"⚠️ {pip_name}", desc)
|
|
161
|
+
|
|
162
|
+
console.print(table)
|
|
163
|
+
console.print()
|
|
164
|
+
|
|
165
|
+
# Installation instructions
|
|
166
|
+
pkg_manager = _detect_package_manager()
|
|
167
|
+
|
|
168
|
+
if pkg_manager == "poetry":
|
|
169
|
+
console.print(Panel(
|
|
170
|
+
"[bold green]🔧 HOW TO FIX (POETRY)[/bold green]\n\n"
|
|
171
|
+
"Install all dependencies (RECOMMENDED)\n\n"
|
|
172
|
+
"[cyan]poetry add django-cfg[rq][/cyan]",
|
|
173
|
+
expand=False,
|
|
174
|
+
))
|
|
175
|
+
console.print()
|
|
176
|
+
console.print(Panel(
|
|
177
|
+
"Or install manually:\n\n"
|
|
178
|
+
"[cyan]poetry add django-rq redis rq[/cyan]\n\n"
|
|
179
|
+
"Optional:\n"
|
|
180
|
+
"[dim]poetry add rq-scheduler hiredis[/dim]",
|
|
181
|
+
expand=False,
|
|
182
|
+
))
|
|
183
|
+
else: # pip
|
|
184
|
+
console.print(Panel(
|
|
185
|
+
"[bold green]🔧 HOW TO FIX (PIP)[/bold green]\n\n"
|
|
186
|
+
"Install all dependencies (RECOMMENDED)\n\n"
|
|
187
|
+
"[cyan]pip install django-cfg[rq][/cyan]",
|
|
188
|
+
expand=False,
|
|
189
|
+
))
|
|
190
|
+
console.print()
|
|
191
|
+
console.print(Panel(
|
|
192
|
+
"Or install manually:\n\n"
|
|
193
|
+
"[cyan]pip install django-rq redis rq[/cyan]\n\n"
|
|
194
|
+
"Optional:\n"
|
|
195
|
+
"[dim]pip install rq-scheduler hiredis[/dim]",
|
|
196
|
+
expand=False,
|
|
197
|
+
))
|
|
198
|
+
|
|
199
|
+
console.print()
|
|
200
|
+
console.print(Panel(
|
|
201
|
+
"[bold]📚 MORE INFORMATION[/bold]\n\n"
|
|
202
|
+
"Documentation: https://djangocfg.com/rq\n"
|
|
203
|
+
"Report Issues: https://github.com/django-cfg/django-cfg/issues",
|
|
204
|
+
title="📚 MORE INFORMATION",
|
|
205
|
+
expand=False,
|
|
206
|
+
))
|
|
207
|
+
console.print()
|
|
208
|
+
|
|
209
|
+
raise RQDependencyError("Django-RQ dependencies are missing. See details above.")
|
|
210
|
+
|
|
211
|
+
@classmethod
|
|
212
|
+
def print_status(cls) -> None:
|
|
213
|
+
"""Print dependency status in a nice table."""
|
|
214
|
+
console = Console()
|
|
215
|
+
status = cls.check_all(raise_on_missing=False)
|
|
216
|
+
|
|
217
|
+
table = Table(title="Django-RQ Dependency Status", show_header=True)
|
|
218
|
+
table.add_column("Package", style="cyan")
|
|
219
|
+
table.add_column("Status", style="white")
|
|
220
|
+
table.add_column("Type", style="white")
|
|
221
|
+
|
|
222
|
+
# Required dependencies
|
|
223
|
+
for pkg, spec in cls.REQUIRED_DEPS.items():
|
|
224
|
+
pip_name = spec.split(">=")[0]
|
|
225
|
+
status_str = "✅ Installed" if status.get(pkg, False) else "❌ Missing"
|
|
226
|
+
table.add_row(pip_name, status_str, "Required")
|
|
227
|
+
|
|
228
|
+
# Optional dependencies
|
|
229
|
+
for pkg, spec in cls.OPTIONAL_DEPS.items():
|
|
230
|
+
pip_name = spec.split(">=")[0]
|
|
231
|
+
status_str = "✅ Installed" if status.get(pkg, False) else "⚠️ Missing"
|
|
232
|
+
table.add_row(pip_name, status_str, "Optional")
|
|
233
|
+
|
|
234
|
+
console.print(table)
|
|
235
|
+
|
|
236
|
+
|
|
237
|
+
def _detect_package_manager() -> str:
|
|
238
|
+
"""
|
|
239
|
+
Detect which package manager is being used.
|
|
240
|
+
|
|
241
|
+
Returns:
|
|
242
|
+
'poetry' if poetry.lock exists, 'pip' otherwise
|
|
243
|
+
"""
|
|
244
|
+
current = os.getcwd()
|
|
245
|
+
|
|
246
|
+
# Check up to 5 parent directories for poetry.lock
|
|
247
|
+
for _ in range(5):
|
|
248
|
+
if os.path.exists(os.path.join(current, 'poetry.lock')):
|
|
249
|
+
return 'poetry'
|
|
250
|
+
|
|
251
|
+
parent = os.path.dirname(current)
|
|
252
|
+
if parent == current: # Reached root
|
|
253
|
+
break
|
|
254
|
+
current = parent
|
|
255
|
+
|
|
256
|
+
return 'pip'
|
|
257
|
+
|
|
258
|
+
|
|
259
|
+
def check_rq_available() -> bool:
|
|
260
|
+
"""
|
|
261
|
+
Lightweight check if RQ is available.
|
|
262
|
+
|
|
263
|
+
Returns:
|
|
264
|
+
True if all required RQ dependencies are installed
|
|
265
|
+
"""
|
|
266
|
+
try:
|
|
267
|
+
status = DependencyChecker.check_all(raise_on_missing=False)
|
|
268
|
+
required_deps = ['django_rq', 'redis', 'rq']
|
|
269
|
+
return all(status.get(dep, False) for dep in required_deps)
|
|
270
|
+
except Exception:
|
|
271
|
+
# Fallback to simple import check
|
|
272
|
+
try:
|
|
273
|
+
import django_rq # noqa: F401
|
|
274
|
+
import redis # noqa: F401
|
|
275
|
+
import rq # noqa: F401
|
|
276
|
+
return True
|
|
277
|
+
except ImportError:
|
|
278
|
+
return False
|
|
279
|
+
|
|
280
|
+
|
|
281
|
+
def require_rq_feature() -> None:
|
|
282
|
+
"""
|
|
283
|
+
Require RQ dependencies with detailed error message.
|
|
284
|
+
|
|
285
|
+
Raises:
|
|
286
|
+
ImportError: If required dependencies are missing
|
|
287
|
+
"""
|
|
288
|
+
try:
|
|
289
|
+
if not check_rq_available():
|
|
290
|
+
DependencyChecker.check_all(raise_on_missing=True)
|
|
291
|
+
except RQDependencyError as e:
|
|
292
|
+
raise ImportError(str(e)) from e
|
|
293
|
+
|
|
294
|
+
|
|
295
|
+
def check_rq_dependencies(raise_on_missing: bool = True) -> Dict[str, bool]:
|
|
296
|
+
"""
|
|
297
|
+
Check RQ dependencies and optionally raise if missing.
|
|
298
|
+
|
|
299
|
+
Args:
|
|
300
|
+
raise_on_missing: If True, raise exception when required deps missing
|
|
301
|
+
|
|
302
|
+
Returns:
|
|
303
|
+
Dictionary mapping package names to availability status
|
|
304
|
+
|
|
305
|
+
Raises:
|
|
306
|
+
RQDependencyError: If dependencies missing and raise_on_missing=True
|
|
307
|
+
"""
|
|
308
|
+
return DependencyChecker.check_all(raise_on_missing=raise_on_missing)
|
|
309
|
+
|
|
310
|
+
|
|
311
|
+
def print_dependency_status() -> None:
|
|
312
|
+
"""Print RQ dependency status table."""
|
|
313
|
+
DependencyChecker.print_status()
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
"""
|
|
2
|
+
AppConfig for Django-RQ integration with monitoring and API capabilities.
|
|
3
|
+
|
|
4
|
+
This app provides REST API endpoints for Django-RQ task queue monitoring,
|
|
5
|
+
management, and statistics. It wraps django-rq's functionality with modern
|
|
6
|
+
DRF ViewSets and unified django-cfg patterns.
|
|
7
|
+
|
|
8
|
+
Features:
|
|
9
|
+
- REST API for monitoring queues, workers, and jobs
|
|
10
|
+
- Prometheus metrics integration
|
|
11
|
+
- Enhanced monitoring interfaces
|
|
12
|
+
- Job management (view, requeue, delete)
|
|
13
|
+
- Integration with django-cfg ecosystem (Centrifugo, auth)
|
|
14
|
+
"""
|
|
15
|
+
|
|
16
|
+
from __future__ import annotations
|
|
17
|
+
|
|
18
|
+
import os
|
|
19
|
+
import sys
|
|
20
|
+
|
|
21
|
+
from django.apps import AppConfig
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
class RQAppConfig(AppConfig):
|
|
25
|
+
"""
|
|
26
|
+
AppConfig for Django-RQ monitoring and management application.
|
|
27
|
+
|
|
28
|
+
Provides:
|
|
29
|
+
- REST API endpoints for monitoring
|
|
30
|
+
- Prometheus metrics export
|
|
31
|
+
- Job and queue management
|
|
32
|
+
- Worker statistics
|
|
33
|
+
- Integration with django-cfg authentication
|
|
34
|
+
|
|
35
|
+
Usage:
|
|
36
|
+
Add to INSTALLED_APPS:
|
|
37
|
+
INSTALLED_APPS = [
|
|
38
|
+
...
|
|
39
|
+
'django_rq', # Required: django-rq core
|
|
40
|
+
'django_cfg.apps.integrations.rq', # Django-CFG RQ monitoring
|
|
41
|
+
]
|
|
42
|
+
|
|
43
|
+
Configure in django-cfg config:
|
|
44
|
+
class MyConfig(BaseConfig):
|
|
45
|
+
django_rq: DjangoRQConfig = DjangoRQConfig(
|
|
46
|
+
enabled=True,
|
|
47
|
+
queues={
|
|
48
|
+
'default': {
|
|
49
|
+
'host': 'localhost',
|
|
50
|
+
'port': 6379,
|
|
51
|
+
'db': 0,
|
|
52
|
+
}
|
|
53
|
+
},
|
|
54
|
+
prometheus_enabled=True,
|
|
55
|
+
)
|
|
56
|
+
"""
|
|
57
|
+
|
|
58
|
+
default_auto_field = 'django.db.models.BigAutoField'
|
|
59
|
+
name = 'django_cfg.apps.integrations.rq'
|
|
60
|
+
verbose_name = 'Django-CFG RQ Monitoring'
|
|
61
|
+
label = 'django_cfg_rq'
|
|
62
|
+
|
|
63
|
+
def ready(self):
|
|
64
|
+
"""
|
|
65
|
+
Initialize the app when Django starts.
|
|
66
|
+
|
|
67
|
+
Registers:
|
|
68
|
+
- Admin interfaces (if not already registered)
|
|
69
|
+
- Signal handlers for monitoring
|
|
70
|
+
- Scheduled jobs from config
|
|
71
|
+
- Validates RQ dependencies if needed
|
|
72
|
+
"""
|
|
73
|
+
# Check dependencies if running RQ-related commands
|
|
74
|
+
self._check_dependencies_if_needed()
|
|
75
|
+
|
|
76
|
+
# Import admin to register custom admin classes
|
|
77
|
+
try:
|
|
78
|
+
from . import admin # noqa: F401
|
|
79
|
+
except ImportError:
|
|
80
|
+
pass
|
|
81
|
+
|
|
82
|
+
# Register scheduled jobs from config (runs once on startup)
|
|
83
|
+
try:
|
|
84
|
+
from .services import register_schedules_from_config
|
|
85
|
+
register_schedules_from_config()
|
|
86
|
+
except Exception as e:
|
|
87
|
+
from django_cfg.modules.django_logging import get_logger
|
|
88
|
+
logger = get_logger("rq.apps")
|
|
89
|
+
logger.warning(f"Failed to register schedules: {e}")
|
|
90
|
+
|
|
91
|
+
def _check_dependencies_if_needed(self):
|
|
92
|
+
"""
|
|
93
|
+
Check RQ dependencies only when running RQ-related commands.
|
|
94
|
+
|
|
95
|
+
Skips check for:
|
|
96
|
+
- Migrations (makemigrations, migrate)
|
|
97
|
+
- Shell commands (shell, shell_plus)
|
|
98
|
+
- Test discovery (test --help)
|
|
99
|
+
- Django checks (check)
|
|
100
|
+
- Management command listing (help)
|
|
101
|
+
"""
|
|
102
|
+
# Get command name from sys.argv
|
|
103
|
+
if len(sys.argv) < 2:
|
|
104
|
+
return
|
|
105
|
+
|
|
106
|
+
command = sys.argv[1]
|
|
107
|
+
|
|
108
|
+
# Commands that don't need RQ dependencies
|
|
109
|
+
skip_commands = [
|
|
110
|
+
'makemigrations',
|
|
111
|
+
'migrate',
|
|
112
|
+
'shell',
|
|
113
|
+
'shell_plus',
|
|
114
|
+
'check',
|
|
115
|
+
'help',
|
|
116
|
+
'test',
|
|
117
|
+
'collectstatic',
|
|
118
|
+
'createsuperuser',
|
|
119
|
+
'changepassword',
|
|
120
|
+
'showmigrations',
|
|
121
|
+
'sqlmigrate',
|
|
122
|
+
'inspectdb',
|
|
123
|
+
]
|
|
124
|
+
|
|
125
|
+
# Skip check for these commands
|
|
126
|
+
if command in skip_commands:
|
|
127
|
+
return
|
|
128
|
+
|
|
129
|
+
# Also skip if running tests (pytest, nose, etc.)
|
|
130
|
+
if 'test' in sys.argv or 'pytest' in sys.argv[0]:
|
|
131
|
+
return
|
|
132
|
+
|
|
133
|
+
# Skip if DJANGO_SKIP_RQ_CHECK environment variable is set
|
|
134
|
+
if os.environ.get('DJANGO_SKIP_RQ_CHECK', '').lower() in ('1', 'true', 'yes'):
|
|
135
|
+
return
|
|
136
|
+
|
|
137
|
+
# For RQ-related commands, perform strict check
|
|
138
|
+
rq_commands = ['rqworker', 'rqscheduler', 'rqenqueue', 'rqstats']
|
|
139
|
+
if command in rq_commands:
|
|
140
|
+
from ._cfg import check_rq_dependencies
|
|
141
|
+
try:
|
|
142
|
+
check_rq_dependencies(raise_on_missing=True)
|
|
143
|
+
except Exception as e:
|
|
144
|
+
# Print error and exit
|
|
145
|
+
print(str(e))
|
|
146
|
+
sys.exit(1)
|
|
147
|
+
|
|
148
|
+
# For other commands, perform silent check (just import validation)
|
|
149
|
+
# This ensures basic imports work but doesn't block the command
|
|
150
|
+
else:
|
|
151
|
+
from ._cfg import check_rq_dependencies
|
|
152
|
+
try:
|
|
153
|
+
# Silent check - only validates that checker itself works
|
|
154
|
+
check_rq_dependencies(raise_on_missing=False)
|
|
155
|
+
except Exception:
|
|
156
|
+
# Silently ignore - don't break other commands
|
|
157
|
+
pass
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"""Management commands for Django-RQ integration."""
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"""Django-RQ management commands for django-cfg."""
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Django-CFG wrapper for django-rq rqscheduler command.
|
|
3
|
+
|
|
4
|
+
Runs the RQ scheduler daemon for scheduled/periodic jobs.
|
|
5
|
+
|
|
6
|
+
Example:
|
|
7
|
+
python manage.py rqscheduler
|
|
8
|
+
python manage.py rqscheduler --queue default
|
|
9
|
+
"""
|
|
10
|
+
|
|
11
|
+
from django_rq.management.commands.rqscheduler import Command as DjangoRQSchedulerCommand
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
class Command(DjangoRQSchedulerCommand):
|
|
15
|
+
"""
|
|
16
|
+
Runs the RQ scheduler daemon.
|
|
17
|
+
|
|
18
|
+
The scheduler handles:
|
|
19
|
+
- Scheduled jobs (enqueue at specific time)
|
|
20
|
+
- Periodic jobs (cron-like scheduling)
|
|
21
|
+
- Delayed job execution
|
|
22
|
+
|
|
23
|
+
Inherits all functionality from django-rq's rqscheduler command.
|
|
24
|
+
|
|
25
|
+
Common options:
|
|
26
|
+
--queue QUEUE Queue to schedule jobs on (default: 'default')
|
|
27
|
+
--interval SECONDS Polling interval (default: 1)
|
|
28
|
+
--pid FILE Write PID to file
|
|
29
|
+
"""
|
|
30
|
+
|
|
31
|
+
help = 'Runs RQ scheduler daemon for django-cfg (wrapper for django-rq rqscheduler)'
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Django-CFG wrapper for django-rq rqstats command.
|
|
3
|
+
|
|
4
|
+
Displays real-time statistics about RQ queues and workers.
|
|
5
|
+
|
|
6
|
+
Example:
|
|
7
|
+
python manage.py rqstats
|
|
8
|
+
python manage.py rqstats --interval 5
|
|
9
|
+
"""
|
|
10
|
+
|
|
11
|
+
from django_rq.management.commands.rqstats import Command as DjangoRQStatsCommand
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
class Command(DjangoRQStatsCommand):
|
|
15
|
+
"""
|
|
16
|
+
Displays real-time RQ statistics in terminal.
|
|
17
|
+
|
|
18
|
+
Shows:
|
|
19
|
+
- Queue sizes (queued, started, finished, failed)
|
|
20
|
+
- Worker count and status
|
|
21
|
+
- Job processing rates
|
|
22
|
+
- Updates in real-time
|
|
23
|
+
|
|
24
|
+
Inherits all functionality from django-rq's rqstats command.
|
|
25
|
+
|
|
26
|
+
Common options:
|
|
27
|
+
--interval SECONDS Update interval (default: 1)
|
|
28
|
+
--raw Show raw numbers (no colors)
|
|
29
|
+
--only-queues Show only queue statistics
|
|
30
|
+
--only-workers Show only worker statistics
|
|
31
|
+
"""
|
|
32
|
+
|
|
33
|
+
help = 'Shows real-time RQ statistics for django-cfg (wrapper for django-rq rqstats)'
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Django-CFG wrapper for django-rq rqworker command.
|
|
3
|
+
|
|
4
|
+
This is a simple proxy that inherits all functionality from django-rq's rqworker.
|
|
5
|
+
Allows running: python manage.py rqworker [queues]
|
|
6
|
+
|
|
7
|
+
Example:
|
|
8
|
+
python manage.py rqworker default
|
|
9
|
+
python manage.py rqworker high default low
|
|
10
|
+
python manage.py rqworker default --with-scheduler
|
|
11
|
+
"""
|
|
12
|
+
|
|
13
|
+
from django_rq.management.commands.rqworker import Command as DjangoRQWorkerCommand
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
class Command(DjangoRQWorkerCommand):
|
|
17
|
+
"""
|
|
18
|
+
Runs RQ workers on specified queues.
|
|
19
|
+
|
|
20
|
+
Inherits all functionality from django-rq's rqworker command.
|
|
21
|
+
See django-rq documentation for available options.
|
|
22
|
+
|
|
23
|
+
Common options:
|
|
24
|
+
--burst Run in burst mode (exit when queue is empty)
|
|
25
|
+
--with-scheduler Run worker with embedded scheduler
|
|
26
|
+
--name NAME Custom worker name
|
|
27
|
+
--worker-ttl SEC Worker timeout (default: 420)
|
|
28
|
+
--sentry-dsn DSN Report exceptions to Sentry
|
|
29
|
+
"""
|
|
30
|
+
|
|
31
|
+
help = 'Runs RQ workers for django-cfg (wrapper for django-rq rqworker)'
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Django-CFG wrapper for django-rq rqworker-pool command.
|
|
3
|
+
|
|
4
|
+
Runs multiple RQ workers in a pool for better performance.
|
|
5
|
+
|
|
6
|
+
Example:
|
|
7
|
+
python manage.py rqworker_pool default --num-workers 4
|
|
8
|
+
python manage.py rqworker_pool high default --num-workers 8
|
|
9
|
+
"""
|
|
10
|
+
|
|
11
|
+
from django_rq.management.commands.rqworker_pool import Command as DjangoRQWorkerPoolCommand
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
class Command(DjangoRQWorkerPoolCommand):
|
|
15
|
+
"""
|
|
16
|
+
Runs a pool of RQ workers for improved throughput.
|
|
17
|
+
|
|
18
|
+
Inherits all functionality from django-rq's rqworker-pool command.
|
|
19
|
+
Creates multiple worker processes to handle jobs in parallel.
|
|
20
|
+
|
|
21
|
+
Common options:
|
|
22
|
+
--num-workers N Number of worker processes (default: CPU count)
|
|
23
|
+
--burst Run in burst mode
|
|
24
|
+
--name NAME Worker name prefix
|
|
25
|
+
"""
|
|
26
|
+
|
|
27
|
+
help = 'Runs a pool of RQ workers for django-cfg (wrapper for django-rq rqworker-pool)'
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"""
|
|
2
|
+
DRF serializers for Django-RQ monitoring API.
|
|
3
|
+
"""
|
|
4
|
+
|
|
5
|
+
from .health import HealthCheckSerializer, RQConfigSerializer
|
|
6
|
+
from .queue import QueueStatsSerializer, QueueDetailSerializer
|
|
7
|
+
from .worker import WorkerSerializer, WorkerStatsSerializer
|
|
8
|
+
from .job import JobListSerializer, JobDetailSerializer, JobActionResponseSerializer
|
|
9
|
+
from .schedule import (
|
|
10
|
+
ScheduleCreateSerializer,
|
|
11
|
+
ScheduledJobSerializer,
|
|
12
|
+
ScheduleActionResponseSerializer,
|
|
13
|
+
)
|
|
14
|
+
from .testing import (
|
|
15
|
+
TestScenarioSerializer,
|
|
16
|
+
RunDemoRequestSerializer,
|
|
17
|
+
StressTestRequestSerializer,
|
|
18
|
+
TestingActionResponseSerializer,
|
|
19
|
+
CleanupRequestSerializer,
|
|
20
|
+
)
|
|
21
|
+
|
|
22
|
+
__all__ = [
|
|
23
|
+
'HealthCheckSerializer',
|
|
24
|
+
'RQConfigSerializer',
|
|
25
|
+
'QueueStatsSerializer',
|
|
26
|
+
'QueueDetailSerializer',
|
|
27
|
+
'WorkerSerializer',
|
|
28
|
+
'WorkerStatsSerializer',
|
|
29
|
+
'JobListSerializer',
|
|
30
|
+
'JobDetailSerializer',
|
|
31
|
+
'JobActionResponseSerializer',
|
|
32
|
+
'ScheduleCreateSerializer',
|
|
33
|
+
'ScheduledJobSerializer',
|
|
34
|
+
'ScheduleActionResponseSerializer',
|
|
35
|
+
'TestScenarioSerializer',
|
|
36
|
+
'RunDemoRequestSerializer',
|
|
37
|
+
'StressTestRequestSerializer',
|
|
38
|
+
'TestingActionResponseSerializer',
|
|
39
|
+
'CleanupRequestSerializer',
|
|
40
|
+
]
|