django-cfg 1.1.81__py3-none-any.whl → 1.2.0__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 +20 -448
- django_cfg/apps/accounts/README.md +3 -3
- django_cfg/apps/accounts/admin/__init__.py +0 -2
- django_cfg/apps/accounts/admin/activity.py +2 -9
- django_cfg/apps/accounts/admin/filters.py +0 -42
- django_cfg/apps/accounts/admin/inlines.py +8 -8
- django_cfg/apps/accounts/admin/otp.py +5 -5
- django_cfg/apps/accounts/admin/registration_source.py +1 -8
- django_cfg/apps/accounts/admin/user.py +12 -20
- django_cfg/apps/accounts/managers/user_manager.py +2 -129
- django_cfg/apps/accounts/migrations/0006_remove_twilioresponse_otp_secret_and_more.py +46 -0
- django_cfg/apps/accounts/models.py +3 -123
- django_cfg/apps/accounts/serializers/otp.py +40 -44
- django_cfg/apps/accounts/serializers/profile.py +0 -2
- django_cfg/apps/accounts/services/otp_service.py +98 -186
- django_cfg/apps/accounts/signals.py +25 -15
- django_cfg/apps/accounts/utils/auth_email_service.py +84 -0
- django_cfg/apps/accounts/views/otp.py +35 -36
- django_cfg/apps/agents/README.md +129 -0
- django_cfg/apps/agents/__init__.py +68 -0
- django_cfg/apps/agents/admin/__init__.py +17 -0
- django_cfg/apps/agents/admin/execution_admin.py +460 -0
- django_cfg/apps/agents/admin/registry_admin.py +360 -0
- django_cfg/apps/agents/admin/toolsets_admin.py +482 -0
- django_cfg/apps/agents/apps.py +29 -0
- django_cfg/apps/agents/core/__init__.py +20 -0
- django_cfg/apps/agents/core/agent.py +281 -0
- django_cfg/apps/agents/core/dependencies.py +154 -0
- django_cfg/apps/agents/core/exceptions.py +66 -0
- django_cfg/apps/agents/core/models.py +106 -0
- django_cfg/apps/agents/core/orchestrator.py +391 -0
- django_cfg/apps/agents/examples/__init__.py +3 -0
- django_cfg/apps/agents/examples/simple_example.py +161 -0
- django_cfg/apps/agents/integration/__init__.py +14 -0
- django_cfg/apps/agents/integration/middleware.py +80 -0
- django_cfg/apps/agents/integration/registry.py +345 -0
- django_cfg/apps/agents/integration/signals.py +50 -0
- django_cfg/apps/agents/management/__init__.py +3 -0
- django_cfg/apps/agents/management/commands/__init__.py +3 -0
- django_cfg/apps/agents/management/commands/create_agent.py +365 -0
- django_cfg/apps/agents/management/commands/orchestrator_status.py +191 -0
- django_cfg/apps/agents/managers/__init__.py +23 -0
- django_cfg/apps/agents/managers/execution.py +236 -0
- django_cfg/apps/agents/managers/registry.py +254 -0
- django_cfg/apps/agents/managers/toolsets.py +496 -0
- django_cfg/apps/agents/migrations/0001_initial.py +286 -0
- django_cfg/apps/agents/migrations/__init__.py +5 -0
- django_cfg/apps/agents/models/__init__.py +15 -0
- django_cfg/apps/agents/models/execution.py +215 -0
- django_cfg/apps/agents/models/registry.py +220 -0
- django_cfg/apps/agents/models/toolsets.py +305 -0
- django_cfg/apps/agents/patterns/__init__.py +24 -0
- django_cfg/apps/agents/patterns/content_agents.py +234 -0
- django_cfg/apps/agents/toolsets/__init__.py +15 -0
- django_cfg/apps/agents/toolsets/cache_toolset.py +285 -0
- django_cfg/apps/agents/toolsets/django_toolset.py +220 -0
- django_cfg/apps/agents/toolsets/file_toolset.py +324 -0
- django_cfg/apps/agents/toolsets/orm_toolset.py +319 -0
- django_cfg/apps/agents/urls.py +46 -0
- django_cfg/apps/knowbase/README.md +150 -0
- django_cfg/apps/knowbase/__init__.py +27 -0
- django_cfg/apps/knowbase/admin/__init__.py +23 -0
- django_cfg/apps/knowbase/admin/archive_admin.py +857 -0
- django_cfg/apps/knowbase/admin/chat_admin.py +386 -0
- django_cfg/apps/knowbase/admin/document_admin.py +650 -0
- django_cfg/apps/knowbase/admin/external_data_admin.py +685 -0
- django_cfg/apps/knowbase/apps.py +81 -0
- django_cfg/apps/knowbase/config/README.md +176 -0
- django_cfg/apps/knowbase/config/__init__.py +51 -0
- django_cfg/apps/knowbase/config/constance_fields.py +186 -0
- django_cfg/apps/knowbase/config/constance_settings.py +200 -0
- django_cfg/apps/knowbase/config/settings.py +444 -0
- django_cfg/apps/knowbase/examples/__init__.py +3 -0
- django_cfg/apps/knowbase/examples/external_data_usage.py +191 -0
- django_cfg/apps/knowbase/management/__init__.py +0 -0
- django_cfg/apps/knowbase/management/commands/__init__.py +0 -0
- django_cfg/apps/knowbase/management/commands/knowbase_stats.py +158 -0
- django_cfg/apps/knowbase/management/commands/setup_knowbase.py +59 -0
- django_cfg/apps/knowbase/managers/__init__.py +22 -0
- django_cfg/apps/knowbase/managers/archive.py +426 -0
- django_cfg/apps/knowbase/managers/base.py +32 -0
- django_cfg/apps/knowbase/managers/chat.py +141 -0
- django_cfg/apps/knowbase/managers/document.py +203 -0
- django_cfg/apps/knowbase/managers/external_data.py +471 -0
- django_cfg/apps/knowbase/migrations/0001_initial.py +427 -0
- django_cfg/apps/knowbase/migrations/0002_archiveitem_archiveitemchunk_documentarchive_and_more.py +434 -0
- django_cfg/apps/knowbase/migrations/__init__.py +5 -0
- django_cfg/apps/knowbase/mixins/__init__.py +15 -0
- django_cfg/apps/knowbase/mixins/config.py +108 -0
- django_cfg/apps/knowbase/mixins/creator.py +81 -0
- django_cfg/apps/knowbase/mixins/examples/vehicle_model_example.py +199 -0
- django_cfg/apps/knowbase/mixins/external_data_mixin.py +813 -0
- django_cfg/apps/knowbase/mixins/service.py +362 -0
- django_cfg/apps/knowbase/models/__init__.py +41 -0
- django_cfg/apps/knowbase/models/archive.py +599 -0
- django_cfg/apps/knowbase/models/base.py +58 -0
- django_cfg/apps/knowbase/models/chat.py +157 -0
- django_cfg/apps/knowbase/models/document.py +267 -0
- django_cfg/apps/knowbase/models/external_data.py +376 -0
- django_cfg/apps/knowbase/serializers/__init__.py +68 -0
- django_cfg/apps/knowbase/serializers/archive_serializers.py +386 -0
- django_cfg/apps/knowbase/serializers/chat_serializers.py +137 -0
- django_cfg/apps/knowbase/serializers/document_serializers.py +94 -0
- django_cfg/apps/knowbase/serializers/external_data_serializers.py +256 -0
- django_cfg/apps/knowbase/serializers/public_serializers.py +74 -0
- django_cfg/apps/knowbase/services/__init__.py +40 -0
- django_cfg/apps/knowbase/services/archive/__init__.py +42 -0
- django_cfg/apps/knowbase/services/archive/archive_service.py +541 -0
- django_cfg/apps/knowbase/services/archive/chunking_service.py +791 -0
- django_cfg/apps/knowbase/services/archive/exceptions.py +52 -0
- django_cfg/apps/knowbase/services/archive/extraction_service.py +508 -0
- django_cfg/apps/knowbase/services/archive/vectorization_service.py +362 -0
- django_cfg/apps/knowbase/services/base.py +53 -0
- django_cfg/apps/knowbase/services/chat_service.py +239 -0
- django_cfg/apps/knowbase/services/document_service.py +144 -0
- django_cfg/apps/knowbase/services/embedding/__init__.py +43 -0
- django_cfg/apps/knowbase/services/embedding/async_processor.py +244 -0
- django_cfg/apps/knowbase/services/embedding/batch_processor.py +250 -0
- django_cfg/apps/knowbase/services/embedding/batch_result.py +61 -0
- django_cfg/apps/knowbase/services/embedding/models.py +229 -0
- django_cfg/apps/knowbase/services/embedding/processors.py +148 -0
- django_cfg/apps/knowbase/services/embedding/utils.py +176 -0
- django_cfg/apps/knowbase/services/prompt_builder.py +191 -0
- django_cfg/apps/knowbase/services/search_service.py +293 -0
- django_cfg/apps/knowbase/signals/__init__.py +21 -0
- django_cfg/apps/knowbase/signals/archive_signals.py +211 -0
- django_cfg/apps/knowbase/signals/chat_signals.py +37 -0
- django_cfg/apps/knowbase/signals/document_signals.py +143 -0
- django_cfg/apps/knowbase/signals/external_data_signals.py +157 -0
- django_cfg/apps/knowbase/tasks/__init__.py +39 -0
- django_cfg/apps/knowbase/tasks/archive_tasks.py +316 -0
- django_cfg/apps/knowbase/tasks/document_processing.py +341 -0
- django_cfg/apps/knowbase/tasks/external_data_tasks.py +341 -0
- django_cfg/apps/knowbase/tasks/maintenance.py +195 -0
- django_cfg/apps/knowbase/urls.py +43 -0
- django_cfg/apps/knowbase/utils/__init__.py +12 -0
- django_cfg/apps/knowbase/utils/chunk_settings.py +261 -0
- django_cfg/apps/knowbase/utils/text_processing.py +375 -0
- django_cfg/apps/knowbase/utils/validation.py +99 -0
- django_cfg/apps/knowbase/views/__init__.py +28 -0
- django_cfg/apps/knowbase/views/archive_views.py +469 -0
- django_cfg/apps/knowbase/views/base.py +49 -0
- django_cfg/apps/knowbase/views/chat_views.py +181 -0
- django_cfg/apps/knowbase/views/document_views.py +183 -0
- django_cfg/apps/knowbase/views/public_views.py +129 -0
- django_cfg/apps/leads/admin.py +70 -0
- django_cfg/apps/newsletter/admin.py +234 -0
- django_cfg/apps/newsletter/admin_filters.py +124 -0
- django_cfg/apps/support/admin.py +196 -0
- django_cfg/apps/support/admin_filters.py +71 -0
- django_cfg/apps/support/templates/support/chat/ticket_chat.html +1 -1
- django_cfg/apps/urls.py +5 -4
- django_cfg/cli/README.md +1 -1
- django_cfg/cli/commands/create_project.py +2 -2
- django_cfg/cli/commands/info.py +1 -1
- django_cfg/config.py +44 -0
- django_cfg/core/config.py +29 -82
- django_cfg/core/environment.py +1 -1
- django_cfg/core/generation.py +19 -107
- django_cfg/{integration.py → core/integration.py} +18 -16
- django_cfg/core/validation.py +1 -1
- django_cfg/management/__init__.py +1 -1
- django_cfg/management/commands/__init__.py +1 -1
- django_cfg/management/commands/auto_generate.py +482 -0
- django_cfg/management/commands/migrator.py +19 -101
- django_cfg/management/commands/test_email.py +1 -1
- django_cfg/middleware/README.md +0 -158
- django_cfg/middleware/__init__.py +0 -2
- django_cfg/middleware/user_activity.py +3 -3
- django_cfg/models/api.py +145 -0
- django_cfg/models/base.py +287 -0
- django_cfg/models/cache.py +4 -4
- django_cfg/models/constance.py +25 -88
- django_cfg/models/database.py +9 -9
- django_cfg/models/drf.py +3 -36
- django_cfg/models/email.py +163 -0
- django_cfg/models/environment.py +276 -0
- django_cfg/models/limits.py +1 -1
- django_cfg/models/logging.py +366 -0
- django_cfg/models/revolution.py +41 -2
- django_cfg/models/security.py +125 -0
- django_cfg/models/services.py +1 -1
- django_cfg/modules/__init__.py +2 -56
- django_cfg/modules/base.py +78 -52
- django_cfg/modules/django_currency/service.py +2 -2
- django_cfg/modules/django_email.py +2 -2
- django_cfg/modules/django_health.py +267 -0
- django_cfg/modules/django_llm/llm/client.py +79 -17
- django_cfg/modules/django_llm/translator/translator.py +2 -2
- django_cfg/modules/django_logger.py +2 -2
- django_cfg/modules/django_ngrok.py +2 -2
- django_cfg/modules/django_tasks.py +68 -3
- django_cfg/modules/django_telegram.py +3 -3
- django_cfg/modules/django_twilio/sendgrid_service.py +2 -2
- django_cfg/modules/django_twilio/service.py +2 -2
- django_cfg/modules/django_twilio/simple_service.py +2 -2
- django_cfg/modules/django_twilio/templates/guide.md +266 -0
- django_cfg/modules/django_twilio/twilio_service.py +2 -2
- django_cfg/modules/django_unfold/__init__.py +69 -0
- django_cfg/modules/{unfold → django_unfold}/callbacks.py +23 -22
- django_cfg/modules/django_unfold/dashboard.py +278 -0
- django_cfg/modules/django_unfold/icons/README.md +145 -0
- django_cfg/modules/django_unfold/icons/__init__.py +12 -0
- django_cfg/modules/django_unfold/icons/constants.py +2851 -0
- django_cfg/modules/django_unfold/icons/generate_icons.py +486 -0
- django_cfg/modules/django_unfold/models/__init__.py +42 -0
- django_cfg/modules/django_unfold/models/config.py +601 -0
- django_cfg/modules/django_unfold/models/dashboard.py +206 -0
- django_cfg/modules/django_unfold/models/dropdown.py +40 -0
- django_cfg/modules/django_unfold/models/navigation.py +73 -0
- django_cfg/modules/django_unfold/models/tabs.py +25 -0
- django_cfg/modules/{unfold → django_unfold}/system_monitor.py +2 -2
- django_cfg/modules/django_unfold/utils.py +140 -0
- django_cfg/registry/__init__.py +23 -0
- django_cfg/registry/core.py +61 -0
- django_cfg/registry/exceptions.py +11 -0
- django_cfg/registry/modules.py +12 -0
- django_cfg/registry/services.py +26 -0
- django_cfg/registry/third_party.py +52 -0
- django_cfg/routing/__init__.py +19 -0
- django_cfg/routing/callbacks.py +198 -0
- django_cfg/routing/routers.py +48 -0
- django_cfg/templates/admin/layouts/dashboard_with_tabs.html +8 -9
- django_cfg/templatetags/__init__.py +0 -0
- django_cfg/templatetags/django_cfg.py +33 -0
- django_cfg/urls.py +33 -0
- django_cfg/utils/path_resolution.py +1 -1
- django_cfg/utils/smart_defaults.py +7 -61
- django_cfg/utils/toolkit.py +663 -0
- {django_cfg-1.1.81.dist-info → django_cfg-1.2.0.dist-info}/METADATA +83 -86
- django_cfg-1.2.0.dist-info/RECORD +441 -0
- django_cfg/apps/tasks/@docs/README.md +0 -195
- django_cfg/archive/django_sample.zip +0 -0
- django_cfg/models/unfold.py +0 -271
- django_cfg/modules/unfold/__init__.py +0 -29
- django_cfg/modules/unfold/dashboard.py +0 -318
- django_cfg/pyproject.toml +0 -370
- django_cfg/routers.py +0 -83
- django_cfg-1.1.81.dist-info/RECORD +0 -278
- /django_cfg/{exceptions.py → core/exceptions.py} +0 -0
- /django_cfg/modules/{unfold → django_unfold}/models.py +0 -0
- /django_cfg/modules/{unfold → django_unfold}/tailwind.py +0 -0
- /django_cfg/{version_check.py → utils/version_check.py} +0 -0
- {django_cfg-1.1.81.dist-info → django_cfg-1.2.0.dist-info}/WHEEL +0 -0
- {django_cfg-1.1.81.dist-info → django_cfg-1.2.0.dist-info}/entry_points.txt +0 -0
- {django_cfg-1.1.81.dist-info → django_cfg-1.2.0.dist-info}/licenses/LICENSE +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: django-cfg
|
3
|
-
Version: 1.
|
3
|
+
Version: 1.2.0
|
4
4
|
Summary: 🚀 Production-ready Django configuration framework with type-safe settings, smart automation, and modern developer experience
|
5
5
|
Project-URL: Homepage, https://github.com/markolofsen/django-cfg
|
6
6
|
Project-URL: Documentation, https://django-cfg.readthedocs.io
|
@@ -30,99 +30,96 @@ Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
30
30
|
Classifier: Topic :: System :: Systems Administration
|
31
31
|
Classifier: Typing :: Typed
|
32
32
|
Requires-Python: <4.0,>=3.12
|
33
|
-
Requires-Dist: beautifulsoup4<5.0
|
34
|
-
Requires-Dist: cachetools
|
35
|
-
Requires-Dist: click
|
36
|
-
Requires-Dist: colorlog
|
37
|
-
Requires-Dist: coolname<3.0
|
38
|
-
Requires-Dist: currencyconverter<
|
39
|
-
Requires-Dist: dj-database-url
|
40
|
-
Requires-Dist: django-admin-rangefilter<
|
41
|
-
Requires-Dist: django-constance
|
42
|
-
Requires-Dist: django-cors-headers
|
43
|
-
Requires-Dist: django-
|
44
|
-
Requires-Dist: django-
|
45
|
-
Requires-Dist: django-
|
46
|
-
Requires-Dist: django-
|
33
|
+
Requires-Dist: beautifulsoup4<5.0,>=4.13.0
|
34
|
+
Requires-Dist: cachetools<7.0,>=5.3.0
|
35
|
+
Requires-Dist: click<9.0,>=8.2.0
|
36
|
+
Requires-Dist: colorlog<7.0,>=6.9.0
|
37
|
+
Requires-Dist: coolname<3.0,>=2.2.0
|
38
|
+
Requires-Dist: currencyconverter<1.0,>=0.18.0
|
39
|
+
Requires-Dist: dj-database-url<4.0,>=3.0.0
|
40
|
+
Requires-Dist: django-admin-rangefilter<1.0,>=0.13.0
|
41
|
+
Requires-Dist: django-constance<5.0,>=4.3.0
|
42
|
+
Requires-Dist: django-cors-headers<5.0,>=4.7.0
|
43
|
+
Requires-Dist: django-dramatiq<1.0,>=0.14.0
|
44
|
+
Requires-Dist: django-extensions<5.0,>=4.1.0
|
45
|
+
Requires-Dist: django-filter<26.0,>=25.0
|
46
|
+
Requires-Dist: django-import-export<5.0,>=4.3.0
|
47
|
+
Requires-Dist: django-json-widget<3.0,>=2.0.0
|
47
48
|
Requires-Dist: django-ratelimit<5.0.0,>=4.1.0
|
48
|
-
Requires-Dist: django-redis
|
49
|
-
Requires-Dist: django-revolution
|
50
|
-
Requires-Dist: django-unfold
|
51
|
-
Requires-Dist: djangorestframework-simplejwt
|
52
|
-
Requires-Dist: djangorestframework-simplejwt[token-blacklist]
|
53
|
-
Requires-Dist: djangorestframework
|
54
|
-
Requires-Dist:
|
55
|
-
Requires-Dist: drf-
|
56
|
-
Requires-Dist: drf-spectacular
|
57
|
-
Requires-Dist:
|
58
|
-
Requires-Dist:
|
59
|
-
Requires-Dist:
|
49
|
+
Requires-Dist: django-redis<7.0,>=6.0.0
|
50
|
+
Requires-Dist: django-revolution<2.0,>=1.0.35
|
51
|
+
Requires-Dist: django-unfold<1.0,>=0.64.0
|
52
|
+
Requires-Dist: djangorestframework-simplejwt<6.0,>=5.5.0
|
53
|
+
Requires-Dist: djangorestframework-simplejwt[token-blacklist]<6.0,>=5.5.0
|
54
|
+
Requires-Dist: djangorestframework<4.0,>=3.16.0
|
55
|
+
Requires-Dist: dramatiq[redis]<2.0,>=1.18.0
|
56
|
+
Requires-Dist: drf-nested-routers<1.0,>=0.94.0
|
57
|
+
Requires-Dist: drf-spectacular-sidecar<2026.0,>=2025.8.0
|
58
|
+
Requires-Dist: drf-spectacular<1.0,>=0.28.0
|
59
|
+
Requires-Dist: hiredis<4.0,>=2.0.0
|
60
|
+
Requires-Dist: loguru<1.0,>=0.7.0
|
61
|
+
Requires-Dist: lxml<7.0,>=6.0.0
|
60
62
|
Requires-Dist: ngrok>=1.5.1; python_version >= '3.12'
|
61
|
-
Requires-Dist: openai<2.0
|
62
|
-
Requires-Dist: pgvector<
|
63
|
-
Requires-Dist: psycopg[binary,pool]
|
64
|
-
Requires-Dist: pydantic-
|
65
|
-
Requires-Dist: pydantic<
|
66
|
-
Requires-Dist: pydantic
|
67
|
-
Requires-Dist:
|
68
|
-
Requires-Dist:
|
69
|
-
Requires-Dist:
|
70
|
-
Requires-Dist:
|
71
|
-
Requires-Dist:
|
72
|
-
Requires-Dist:
|
73
|
-
Requires-Dist:
|
74
|
-
Requires-Dist:
|
75
|
-
Requires-Dist:
|
63
|
+
Requires-Dist: openai<2.0,>=1.107.0
|
64
|
+
Requires-Dist: pgvector<1.0,>=0.4.0
|
65
|
+
Requires-Dist: psycopg[binary,pool]<4.0,>=3.2.0
|
66
|
+
Requires-Dist: pydantic-ai<2.0,>=1.0.10
|
67
|
+
Requires-Dist: pydantic-yaml<2.0,>=1.6.0
|
68
|
+
Requires-Dist: pydantic<3.0,>=2.11.0
|
69
|
+
Requires-Dist: pydantic[email]<3.0,>=2.11.0
|
70
|
+
Requires-Dist: pytelegrambotapi<5.0,>=4.28.0
|
71
|
+
Requires-Dist: python-json-logger<4.0,>=3.3.0
|
72
|
+
Requires-Dist: pyyaml<7.0,>=6.0
|
73
|
+
Requires-Dist: questionary<3.0,>=2.1.0
|
74
|
+
Requires-Dist: redis<7.0,>=6.4.0
|
75
|
+
Requires-Dist: requests<3.0,>=2.32.0
|
76
|
+
Requires-Dist: rich<15.0,>=14.0.0
|
77
|
+
Requires-Dist: sendgrid<7.0,>=6.12.0
|
78
|
+
Requires-Dist: tiktoken<1.0,>=0.11.0
|
76
79
|
Requires-Dist: toml<0.11.0,>=0.10.2
|
77
|
-
Requires-Dist: twilio<10.0
|
78
|
-
Requires-Dist: whitenoise
|
80
|
+
Requires-Dist: twilio<10.0,>=9.8.0
|
81
|
+
Requires-Dist: whitenoise<7.0,>=6.8.0
|
79
82
|
Provides-Extra: dev
|
80
|
-
Requires-Dist: black
|
81
|
-
Requires-Dist: build
|
82
|
-
Requires-Dist: django-dramatiq<1.0,>=0.14.0; extra == 'dev'
|
83
|
+
Requires-Dist: black<26.0,>=25.9; extra == 'dev'
|
84
|
+
Requires-Dist: build<2.0,>=1.3; extra == 'dev'
|
83
85
|
Requires-Dist: django<6.0,>=5.2; extra == 'dev'
|
84
|
-
Requires-Dist:
|
85
|
-
Requires-Dist:
|
86
|
-
Requires-Dist:
|
87
|
-
Requires-Dist:
|
88
|
-
Requires-Dist: mkdocs
|
89
|
-
Requires-Dist:
|
90
|
-
Requires-Dist:
|
91
|
-
Requires-Dist:
|
92
|
-
Requires-Dist:
|
93
|
-
Requires-Dist: pytest-
|
94
|
-
Requires-Dist: pytest-
|
95
|
-
Requires-Dist: pytest
|
96
|
-
Requires-Dist:
|
97
|
-
Requires-Dist: questionary>=2.1.0; extra == 'dev'
|
86
|
+
Requires-Dist: factory-boy<4.0,>=3.3; extra == 'dev'
|
87
|
+
Requires-Dist: flake8<8.0,>=6.0.0; extra == 'dev'
|
88
|
+
Requires-Dist: isort<7.0,>=6.0; extra == 'dev'
|
89
|
+
Requires-Dist: mkdocs-material<10.0,>=9.6; extra == 'dev'
|
90
|
+
Requires-Dist: mkdocs<2.0,>=1.6; extra == 'dev'
|
91
|
+
Requires-Dist: mkdocstrings[python]<1.0,>=0.30; extra == 'dev'
|
92
|
+
Requires-Dist: mypy<2.0,>=1.18; extra == 'dev'
|
93
|
+
Requires-Dist: pre-commit<5.0,>=4.3; extra == 'dev'
|
94
|
+
Requires-Dist: pytest-cov<8.0,>=7.0; extra == 'dev'
|
95
|
+
Requires-Dist: pytest-django<5.0,>=4.11; extra == 'dev'
|
96
|
+
Requires-Dist: pytest-mock<4.0,>=3.15; extra == 'dev'
|
97
|
+
Requires-Dist: pytest<9.0,>=8.4; extra == 'dev'
|
98
|
+
Requires-Dist: questionary<3.0,>=2.1.0; extra == 'dev'
|
98
99
|
Requires-Dist: redis<7.0,>=6.4.0; extra == 'dev'
|
99
|
-
Requires-Dist: rich
|
100
|
-
Requires-Dist: tomlkit
|
101
|
-
Requires-Dist: twine
|
100
|
+
Requires-Dist: rich<15.0,>=13.0.0; extra == 'dev'
|
101
|
+
Requires-Dist: tomlkit<1.0,>=0.13.3; extra == 'dev'
|
102
|
+
Requires-Dist: twine<7.0,>=6.2; extra == 'dev'
|
102
103
|
Provides-Extra: django52
|
103
104
|
Requires-Dist: django<6.0,>=5.2; extra == 'django52'
|
104
105
|
Provides-Extra: docs
|
105
|
-
Requires-Dist: mkdocs-material
|
106
|
-
Requires-Dist: mkdocs
|
107
|
-
Requires-Dist: mkdocstrings[python]
|
108
|
-
Requires-Dist: pymdown-extensions
|
106
|
+
Requires-Dist: mkdocs-material<10.0,>=9.6; extra == 'docs'
|
107
|
+
Requires-Dist: mkdocs<2.0,>=1.6; extra == 'docs'
|
108
|
+
Requires-Dist: mkdocstrings[python]<1.0,>=0.30; extra == 'docs'
|
109
|
+
Requires-Dist: pymdown-extensions<11.0,>=10.16; extra == 'docs'
|
109
110
|
Provides-Extra: full
|
110
|
-
Requires-Dist: django-dramatiq<1.0,>=0.14.0; extra == 'full'
|
111
111
|
Requires-Dist: django<6.0,>=5.2; extra == 'full'
|
112
|
-
Requires-Dist: dramatiq[redis]<2.0,>=1.18.0; extra == 'full'
|
113
112
|
Requires-Dist: redis<7.0,>=6.4.0; extra == 'full'
|
114
113
|
Provides-Extra: tasks
|
115
|
-
Requires-Dist: django-dramatiq<1.0,>=0.14.0; extra == 'tasks'
|
116
|
-
Requires-Dist: dramatiq[redis]<2.0,>=1.18.0; extra == 'tasks'
|
117
114
|
Requires-Dist: redis<7.0,>=6.4.0; extra == 'tasks'
|
118
115
|
Provides-Extra: test
|
119
116
|
Requires-Dist: django<6.0,>=5.2; extra == 'test'
|
120
|
-
Requires-Dist: factory-boy
|
121
|
-
Requires-Dist: pytest-cov
|
122
|
-
Requires-Dist: pytest-django
|
123
|
-
Requires-Dist: pytest-mock
|
124
|
-
Requires-Dist: pytest-xdist
|
125
|
-
Requires-Dist: pytest
|
117
|
+
Requires-Dist: factory-boy<4.0,>=3.3; extra == 'test'
|
118
|
+
Requires-Dist: pytest-cov<8.0,>=7.0; extra == 'test'
|
119
|
+
Requires-Dist: pytest-django<5.0,>=4.11; extra == 'test'
|
120
|
+
Requires-Dist: pytest-mock<4.0,>=3.15; extra == 'test'
|
121
|
+
Requires-Dist: pytest-xdist<4.0,>=3.8; extra == 'test'
|
122
|
+
Requires-Dist: pytest<9.0,>=8.4; extra == 'test'
|
126
123
|
Description-Content-Type: text/markdown
|
127
124
|
|
128
125
|
# 🚀 Django-CFG: The Configuration Revolution
|
@@ -313,13 +310,13 @@ config = MyConfig()
|
|
313
310
|
|
314
311
|
### 3. **Advanced Features**
|
315
312
|
```python
|
316
|
-
from django_cfg import
|
313
|
+
from django_cfg import DatabaseConfig, UnfoldConfig, RevolutionConfig
|
317
314
|
|
318
315
|
class ProductionConfig(DjangoConfig):
|
319
316
|
# Multi-database setup
|
320
|
-
databases: dict[str,
|
321
|
-
"default":
|
322
|
-
"analytics":
|
317
|
+
databases: dict[str, DatabaseConfig] = {
|
318
|
+
"default": DatabaseConfig(engine="postgresql", ...),
|
319
|
+
"analytics": DatabaseConfig(routing_apps=["analytics"]),
|
323
320
|
}
|
324
321
|
|
325
322
|
# Beautiful admin customization
|
@@ -1077,7 +1074,7 @@ ngrok:
|
|
1077
1074
|
Here's a complete production configuration:
|
1078
1075
|
|
1079
1076
|
```python
|
1080
|
-
from django_cfg import DjangoConfig,
|
1077
|
+
from django_cfg import DjangoConfig, DatabaseConfig, UnfoldConfig, RevolutionConfig
|
1081
1078
|
|
1082
1079
|
class ProductionConfig(DjangoConfig):
|
1083
1080
|
"""🚀 Production-ready configuration"""
|
@@ -1089,8 +1086,8 @@ class ProductionConfig(DjangoConfig):
|
|
1089
1086
|
debug: bool = False
|
1090
1087
|
|
1091
1088
|
# === Multi-Database Setup ===
|
1092
|
-
databases: dict[str,
|
1093
|
-
"default":
|
1089
|
+
databases: dict[str, DatabaseConfig] = {
|
1090
|
+
"default": DatabaseConfig(
|
1094
1091
|
engine="django.db.backends.postgresql",
|
1095
1092
|
name="carapis_main",
|
1096
1093
|
user=env.db_user,
|
@@ -1099,7 +1096,7 @@ class ProductionConfig(DjangoConfig):
|
|
1099
1096
|
port=5432,
|
1100
1097
|
sslmode="require",
|
1101
1098
|
),
|
1102
|
-
"analytics":
|
1099
|
+
"analytics": DatabaseConfig(
|
1103
1100
|
engine="django.db.backends.postgresql",
|
1104
1101
|
name="carapis_analytics",
|
1105
1102
|
user=env.db_user,
|