django-cfg 1.2.10__py3-none-any.whl → 1.2.11__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.
@@ -0,0 +1,554 @@
1
+ Metadata-Version: 2.4
2
+ Name: django-cfg
3
+ Version: 1.2.11
4
+ Summary: 🚀 Next-gen Django configuration: type-safety, AI features, blazing-fast setup, and automated best practices — all in one.
5
+ Project-URL: Homepage, https://djangocfg.com
6
+ Project-URL: Documentation, https://docs.djangocfg.com
7
+ Project-URL: Repository, https://github.com/reformsai/django-cfg
8
+ Project-URL: Issues, https://github.com/reformsai/django-cfg/issues
9
+ Project-URL: Changelog, https://github.com/reformsai/django-cfg/blob/main/CHANGELOG.md
10
+ Author-email: Django-CFG Team <info@djangocfg.com>
11
+ Maintainer-email: Django-CFG Team <info@djangocfg.com>
12
+ License: MIT
13
+ License-File: LICENSE
14
+ Keywords: configuration,developer-experience,django,pydantic,settings,type-safety
15
+ Classifier: Development Status :: 4 - Beta
16
+ Classifier: Framework :: Django
17
+ Classifier: Framework :: Django :: 5.2
18
+ Classifier: Intended Audience :: Developers
19
+ Classifier: License :: OSI Approved :: MIT License
20
+ Classifier: Operating System :: OS Independent
21
+ Classifier: Programming Language :: Python
22
+ Classifier: Programming Language :: Python :: 3
23
+ Classifier: Programming Language :: Python :: 3.10
24
+ Classifier: Programming Language :: Python :: 3.11
25
+ Classifier: Programming Language :: Python :: 3.12
26
+ Classifier: Programming Language :: Python :: 3.13
27
+ Classifier: Topic :: Internet :: WWW/HTTP
28
+ Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
29
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
30
+ Classifier: Topic :: System :: Systems Administration
31
+ Classifier: Typing :: Typed
32
+ Requires-Python: <4.0,>=3.12
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
48
+ Requires-Dist: django-ratelimit<5.0.0,>=4.1.0
49
+ Requires-Dist: django-redis<7.0,>=6.0.0
50
+ Requires-Dist: django-revolution<2.0,>=1.0.43
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
62
+ Requires-Dist: ngrok>=1.5.1; python_version >= '3.12'
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
79
+ Requires-Dist: toml<0.11.0,>=0.10.2
80
+ Requires-Dist: twilio<10.0,>=9.8.0
81
+ Requires-Dist: whitenoise<7.0,>=6.8.0
82
+ Provides-Extra: dev
83
+ Requires-Dist: black<26.0,>=25.9; extra == 'dev'
84
+ Requires-Dist: build<2.0,>=1.3; extra == 'dev'
85
+ Requires-Dist: django<6.0,>=5.2; 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'
99
+ Requires-Dist: redis<7.0,>=6.4.0; extra == 'dev'
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'
103
+ Provides-Extra: django52
104
+ Requires-Dist: django<6.0,>=5.2; extra == 'django52'
105
+ Provides-Extra: docs
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'
110
+ Provides-Extra: full
111
+ Requires-Dist: django<6.0,>=5.2; extra == 'full'
112
+ Requires-Dist: redis<7.0,>=6.4.0; extra == 'full'
113
+ Provides-Extra: local
114
+ Provides-Extra: tasks
115
+ Requires-Dist: redis<7.0,>=6.4.0; extra == 'tasks'
116
+ Provides-Extra: test
117
+ Requires-Dist: django<6.0,>=5.2; extra == 'test'
118
+ Requires-Dist: factory-boy<4.0,>=3.3; extra == 'test'
119
+ Requires-Dist: pytest-cov<8.0,>=7.0; extra == 'test'
120
+ Requires-Dist: pytest-django<5.0,>=4.11; extra == 'test'
121
+ Requires-Dist: pytest-mock<4.0,>=3.15; extra == 'test'
122
+ Requires-Dist: pytest-xdist<4.0,>=3.8; extra == 'test'
123
+ Requires-Dist: pytest<9.0,>=8.4; extra == 'test'
124
+ Description-Content-Type: text/markdown
125
+
126
+ # 🚀 Django-CFG: Type-Safe Django Configuration
127
+
128
+ [![Python Version](https://img.shields.io/pypi/pyversions/django-cfg.svg)](https://pypi.org/project/django-cfg/)
129
+ [![Django Version](https://img.shields.io/pypi/djversions/django-cfg.svg)](https://pypi.org/project/django-cfg/)
130
+ [![License](https://img.shields.io/pypi/l/django-cfg.svg)](https://github.com/reformsai/django-cfg/blob/main/LICENSE)
131
+ [![PyPI Version](https://img.shields.io/pypi/v/django-cfg.svg)](https://pypi.org/project/django-cfg/)
132
+
133
+ > **Create a production-ready Django project in 30 seconds, not 30 hours.**
134
+
135
+ Production-ready Django configuration with **Pydantic v2 models**, **AI agents**, and **enterprise integrations**. Build modern Django applications with full type safety, intelligent environment detection, and seamless deployment.
136
+
137
+ 🌐 **Website**: [djangocfg.com](https://djangocfg.com/)
138
+ 📚 **Documentation**: [docs.djangocfg.com](https://docs.djangocfg.com/)
139
+ 🐙 **GitHub**: [github.com/reformsai/django-cfg](https://github.com/reformsai/django-cfg)
140
+
141
+ ## 🎯 Quick Start
142
+
143
+ ### Requirements
144
+ - **Python 3.12+** - [Download here](https://www.python.org/downloads/)
145
+
146
+ ### Create Your First Project
147
+
148
+ ```bash
149
+ # Install Django-CFG
150
+ pip install django-cfg
151
+
152
+ # Create a complete project instantly
153
+ django-cfg create-project "My Awesome Project"
154
+
155
+ # Enter the project and run
156
+ cd my-awesome-project
157
+ python manage.py runserver
158
+ ```
159
+
160
+ **🎉 That's it!** Your app is now running with:
161
+ - **🚀 Main app:** http://127.0.0.1:8000/
162
+ - **🎯 Admin panel:** http://127.0.0.1:8000/admin/
163
+ - **📚 API docs:** http://127.0.0.1:8000/api/docs/
164
+
165
+ ## ✨ What You Get Out of the Box
166
+
167
+ ✅ **Beautiful admin interface** with Unfold + Tailwind CSS
168
+ ✅ **Complete API documentation** with Swagger/ReDoc
169
+ ✅ **Multi-channel user management** with email & SMS OTP authentication
170
+ ✅ **SMS & WhatsApp integration** with Twilio out of the box
171
+ ✅ **Support ticket system** with chat interface
172
+ ✅ **Newsletter campaigns** with email tracking
173
+ ✅ **Lead management** system with CRM integration
174
+ ✅ **Multi-database routing** and connection pooling
175
+ ✅ **Background task processing** with production-ready Dramatiq integration
176
+ ✅ **Webhook testing** with built-in ngrok integration
177
+ ✅ **Type-safe configuration** with full IDE support
178
+
179
+ ## 🏆 Django-CFG vs Traditional Django
180
+
181
+ | Feature | Traditional Django | Django-CFG |
182
+ |---------|-------------------|-------------|
183
+ | **📝 Configuration** | 500+ lines of settings hell | **Type-safe & organized** |
184
+ | **🔒 Type Safety** | Pray and hope | **100% validated** |
185
+ | **🎨 Admin Interface** | Ugly 2010 design | **Modern Unfold + Tailwind** |
186
+ | **📊 Dashboard** | Basic admin index | **Real-time metrics & widgets** |
187
+ | **🗄️ Multi-Database** | Manual routing nightmare | **Smart auto-routing** |
188
+ | **📚 API Docs** | Hours of manual setup | **Auto-generated OpenAPI** |
189
+ | **🎫 Support System** | Build from scratch | **Built-in tickets & chat** |
190
+ | **👤 User Management** | Basic User model | **OTP auth & profiles** |
191
+ | **🚀 Deployment** | Cross fingers | **Production-ready defaults** |
192
+ | **💡 IDE Support** | Basic syntax highlighting | **Full IntelliSense paradise** |
193
+ | **🐛 Config Errors** | Runtime surprises | **Compile-time validation** |
194
+
195
+ ## 🔥 Core Features
196
+
197
+ ### 🔒 Type-Safe Configuration
198
+ Full Pydantic v2 validation with IDE autocomplete and compile-time error checking.
199
+
200
+ ```python
201
+ from django_cfg import DjangoConfig
202
+ from django_cfg.models import DatabaseConfig
203
+
204
+ class MyConfig(DjangoConfig):
205
+ project_name: str = "My App"
206
+ secret_key: str = "${SECRET_KEY}"
207
+ debug: bool = False
208
+
209
+ databases: dict[str, DatabaseConfig] = {
210
+ "default": DatabaseConfig(
211
+ engine="django.db.backends.postgresql",
212
+ name="${DB_NAME}",
213
+ user="${DB_USER}",
214
+ password="${DB_PASSWORD}",
215
+ )
216
+ }
217
+
218
+ config = MyConfig()
219
+ ```
220
+
221
+ ### 🤖 Built-in AI Agents
222
+ Enterprise-grade AI agent system with type-safe agents and workflow orchestration.
223
+
224
+ ```python
225
+ from django_cfg.agents import Agent, Workflow
226
+
227
+ @Agent.register("data_processor")
228
+ class DataProcessor(Agent):
229
+ def process(self, data: dict) -> dict:
230
+ # Your AI logic here
231
+ return processed_data
232
+
233
+ # Use in workflows
234
+ workflow = Workflow([DataProcessor()])
235
+ result = workflow.run(input_data)
236
+ ```
237
+
238
+ ### 🌍 Smart Environment Detection
239
+ Automatic dev/staging/production detection with appropriate defaults.
240
+
241
+ ```python
242
+ class MyConfig(DjangoConfig):
243
+ # Automatically detects environment and applies settings
244
+ # No manual configuration needed!
245
+ pass
246
+ ```
247
+
248
+ ### 🗄️ Multi-Database Support
249
+ Smart database routing with connection pooling.
250
+
251
+ ```python
252
+ databases: dict[str, DatabaseConfig] = {
253
+ "default": DatabaseConfig.from_url("postgresql://..."),
254
+ "analytics": DatabaseConfig.from_url(
255
+ "postgresql://...",
256
+ apps=["analytics"], # Route analytics app here
257
+ ),
258
+ }
259
+ ```
260
+
261
+ ### 🔄 Background Task Processing
262
+ Built-in Dramatiq integration for reliable background jobs.
263
+
264
+ ```python
265
+ import dramatiq
266
+
267
+ @dramatiq.actor
268
+ def process_document(document_id: str):
269
+ # Your background task
270
+ pass
271
+
272
+ # Queue the task
273
+ process_document.send(document_id="123")
274
+ ```
275
+
276
+ ## 📦 Installation Methods
277
+
278
+ ### Using pip (Recommended)
279
+ ```bash
280
+ pip install django-cfg
281
+ ```
282
+
283
+ ### Using Poetry
284
+ ```bash
285
+ poetry add django-cfg
286
+ ```
287
+
288
+ ### Using pipenv
289
+ ```bash
290
+ pipenv install django-cfg
291
+ ```
292
+
293
+ ### Using conda
294
+ ```bash
295
+ conda install -c conda-forge django-cfg
296
+ ```
297
+
298
+ ## 🚀 Advanced Usage
299
+
300
+ ### Production Configuration
301
+
302
+ ```python
303
+ from django_cfg import DjangoConfig
304
+ from django_cfg.models import *
305
+
306
+ class ProductionConfig(DjangoConfig):
307
+ project_name: str = "My Production App"
308
+
309
+ # Multi-database setup
310
+ databases: dict[str, DatabaseConfig] = {
311
+ "default": DatabaseConfig(
312
+ engine="django.db.backends.postgresql",
313
+ name="${DB_NAME}",
314
+ host="${DB_HOST}",
315
+ sslmode="require",
316
+ ),
317
+ "analytics": DatabaseConfig(
318
+ routing_apps=["analytics", "reports"],
319
+ ),
320
+ }
321
+
322
+ # Background tasks
323
+ tasks: TaskConfig = TaskConfig(
324
+ dramatiq=DramatiqConfig(
325
+ processes=4,
326
+ threads=8,
327
+ queues=["default", "high", "low"],
328
+ ),
329
+ )
330
+
331
+ # Beautiful admin
332
+ unfold: UnfoldConfig = UnfoldConfig(
333
+ site_title="My Admin",
334
+ theme="auto",
335
+ dashboard_callback="myapp.dashboard.callback",
336
+ )
337
+ ```
338
+
339
+ ### Built-in Features
340
+
341
+ ```python
342
+ class MyConfig(DjangoConfig):
343
+ # Enable built-in modules
344
+ enable_support: bool = True # Support ticket system
345
+ enable_accounts: bool = True # Advanced user management
346
+ enable_newsletter: bool = True # Email marketing
347
+ enable_leads: bool = True # Lead management
348
+ enable_knowbase: bool = True # AI knowledge base
349
+ enable_agents: bool = True # AI agents
350
+ ```
351
+
352
+ ## 🛠️ Management Commands
353
+
354
+ Django-CFG includes powerful CLI tools:
355
+
356
+ ```bash
357
+ # Create new project
358
+ django-cfg create-project "My Project"
359
+
360
+ # Get system information
361
+ django-cfg info
362
+
363
+ # Enhanced Django commands
364
+ python manage.py migrator --auto # Smart migrations
365
+ python manage.py validate_config # Validate settings
366
+ python manage.py show_config # Display config
367
+ python manage.py rundramatiq # Background workers
368
+ python manage.py runserver_ngrok # Dev server with ngrok
369
+ python manage.py test_email # Test email config
370
+ python manage.py test_twilio # Test SMS/WhatsApp
371
+ ```
372
+
373
+ ## 🌐 Real-World Example
374
+
375
+ See how **CarAPIS** (automotive data platform) uses Django-CFG in production:
376
+
377
+ - **Multi-database architecture** for vehicle data
378
+ - **Background task processing** for tax calculations
379
+ - **SMS/WhatsApp OTP** authentication
380
+ - **API zones** for different services
381
+ - **Custom admin dashboard** with real-time metrics
382
+
383
+ [View Full CarAPIS Example →](https://docs.djangocfg.com/examples/production-config)
384
+
385
+ ## 📚 Documentation
386
+
387
+ ### Getting Started
388
+ - [**Installation Guide**](https://docs.djangocfg.com/getting-started/installation) - Complete setup instructions
389
+ - [**First Project**](https://docs.djangocfg.com/getting-started/first-project) - Build your first app
390
+ - [**Configuration**](https://docs.djangocfg.com/getting-started/configuration) - Core concepts
391
+
392
+ ### Core Features
393
+ - [**Architecture**](https://docs.djangocfg.com/core/architecture) - System overview
394
+ - [**Environment Detection**](https://docs.djangocfg.com/core/environment-detection) - Automatic environment setup
395
+ - [**Registry System**](https://docs.djangocfg.com/core/registry) - Component registration
396
+ - [**Utilities**](https://docs.djangocfg.com/core/utilities) - Helper functions
397
+
398
+ ### AI & Agents
399
+ - [**AI Agents**](https://docs.djangocfg.com/agents/introduction) - Build intelligent workflows
400
+ - [**Knowledge Base**](https://docs.djangocfg.com/knowbase/setup) - AI-powered documentation
401
+
402
+ ### Integrations
403
+ - [**Integration Patterns**](https://docs.djangocfg.com/integrations/patterns) - Common patterns
404
+ - [**Dramatiq**](https://docs.djangocfg.com/integrations/dramatiq) - Background tasks
405
+ - [**Twilio**](https://docs.djangocfg.com/integrations/twilio) - SMS/WhatsApp
406
+ - [**Authentication**](https://docs.djangocfg.com/integrations/auth) - OTP auth
407
+
408
+ ### Built-in Apps
409
+ - [**Accounts**](https://docs.djangocfg.com/apps/accounts) - User management
410
+ - [**Support System**](https://docs.djangocfg.com/apps/support) - Ticket system
411
+ - [**Newsletter**](https://docs.djangocfg.com/apps/newsletter) - Email marketing
412
+
413
+ ### CLI Tools
414
+ - [**CLI Introduction**](https://docs.djangocfg.com/cli/introduction) - Command overview
415
+ - [**Commands Reference**](https://docs.djangocfg.com/cli/commands) - All commands
416
+ - [**Custom Commands**](https://docs.djangocfg.com/cli/custom-commands) - Build your own
417
+
418
+ ### Examples & Deployment
419
+ - [**Basic Setup**](https://docs.djangocfg.com/examples/basic-setup) - Simple examples
420
+ - [**Production Config**](https://docs.djangocfg.com/examples/production-config) - Real-world setup
421
+ - [**Migration Guide**](https://docs.djangocfg.com/examples/migration-guide) - Migrate existing projects
422
+ - [**Docker Deployment**](https://docs.djangocfg.com/deployment/docker) - Container deployment
423
+
424
+ ## 🔄 Migration from Existing Django
425
+
426
+ ### Option 1: Fresh Start (Recommended)
427
+ ```bash
428
+ # Create new Django-CFG project
429
+ django-cfg create-project "My Migrated Project"
430
+
431
+ # Copy your apps and migrate data
432
+ # See migration guide for details
433
+ ```
434
+
435
+ ### Option 2: Gradual Migration
436
+ ```bash
437
+ # Install in existing project
438
+ pip install django-cfg
439
+
440
+ # Create config.py
441
+ # Replace settings.py content
442
+ # Migrate features gradually
443
+ ```
444
+
445
+ [**Complete Migration Guide →**](https://docs.djangocfg.com/examples/migration-guide)
446
+
447
+ ## ⚠️ Troubleshooting
448
+
449
+ ### Python Version Error
450
+ ```bash
451
+ # Install Python 3.12+
452
+ brew install python@3.12 # macOS
453
+ # OR
454
+ pyenv install 3.12.0 # Using pyenv
455
+ ```
456
+
457
+ ### Virtual Environment Issues
458
+ ```bash
459
+ # Create virtual environment
460
+ python3.12 -m venv .venv
461
+ source .venv/bin/activate # Linux/macOS
462
+ # OR
463
+ .venv\Scripts\activate # Windows
464
+ ```
465
+
466
+ ### Configuration Errors
467
+ ```bash
468
+ # Validate your configuration
469
+ python manage.py validate_config --strict
470
+
471
+ # Show current configuration
472
+ python manage.py show_config
473
+ ```
474
+
475
+ [**Full Troubleshooting Guide →**](https://docs.djangocfg.com/getting-started/installation#troubleshooting)
476
+
477
+ ## 🧪 Testing
478
+
479
+ ```python
480
+ def test_configuration():
481
+ """Test your Django-CFG configuration"""
482
+ from config import config
483
+
484
+ # Validate configuration
485
+ settings = config.get_all_settings()
486
+ assert "SECRET_KEY" in settings
487
+ assert settings["DEBUG"] is False
488
+
489
+ # Test database connections
490
+ assert "default" in settings["DATABASES"]
491
+ ```
492
+
493
+ ## 🤝 Contributing
494
+
495
+ We welcome contributions! Here's how to get started:
496
+
497
+ ```bash
498
+ git clone https://github.com/reformsai/django-cfg.git
499
+ cd django-cfg
500
+ pip install -e ".[dev,test]"
501
+ pytest
502
+ ```
503
+
504
+ ### Development Commands
505
+ ```bash
506
+ # Run tests
507
+ pytest
508
+
509
+ # Format code
510
+ black .
511
+
512
+ # Type checking
513
+ mypy .
514
+
515
+ # Build package
516
+ python -m build
517
+ ```
518
+
519
+ ## 📊 Performance
520
+
521
+ Django-CFG is designed for production:
522
+
523
+ - **Startup Time**: < 50ms additional startup time
524
+ - **Memory Usage**: < 1MB additional memory
525
+ - **Type Validation**: Cached after first load
526
+ - **Production Optimized**: Skip validation with `DJANGO_CFG_SKIP_VALIDATION=1`
527
+
528
+ ## 🌟 Community
529
+
530
+ - **🌐 Website**: [djangocfg.com](https://djangocfg.com/)
531
+ - **📚 Documentation**: [docs.djangocfg.com](https://docs.djangocfg.com/)
532
+ - **🐙 GitHub**: [github.com/reformsai/django-cfg](https://github.com/reformsai/django-cfg)
533
+ - **📦 PyPI**: [pypi.org/project/django-cfg](https://pypi.org/project/django-cfg/)
534
+ - **💬 Discord**: [Join our Discord](https://discord.gg/django-cfg)
535
+ - **❓ Stack Overflow**: Tag questions with `django-cfg`
536
+
537
+ ## 📄 License
538
+
539
+ MIT License - see [LICENSE](LICENSE) file for details.
540
+
541
+ ## 🙏 Acknowledgments
542
+
543
+ - **Django** - The web framework for perfectionists with deadlines
544
+ - **Pydantic** - Data validation using Python type hints
545
+ - **Django Unfold** - Beautiful modern admin interface
546
+ - **Dramatiq** - Fast and reliable background task processing
547
+
548
+ ---
549
+
550
+ **Made with ❤️ by the Django-CFG Team**
551
+
552
+ *Transform your Django development experience with type-safe configuration, AI agents, and enterprise integrations.*
553
+
554
+ 🚀 **[Get Started Now](https://docs.djangocfg.com/getting-started/installation)** | 📚 **[View Documentation](https://docs.djangocfg.com/)** | 🌐 **[Visit Website](https://djangocfg.com/)**
@@ -1,5 +1,5 @@
1
1
  django_cfg/README.md,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
- django_cfg/__init__.py,sha256=Ddaq71ifQwwGym70nPKQTKpK2T6qBaZLf5XaxB-crQY,1631
2
+ django_cfg/__init__.py,sha256=wwf-3v566wOYzR2Aq3Y8r4V6GZEwxg7XZDmjeww_fJ8,1631
3
3
  django_cfg/apps.py,sha256=k84brkeXJI7EgKZLEpTkM9YFZofKI4PzhFOn1cl9Msc,1656
4
4
  django_cfg/config.py,sha256=0cuRJVEnf03WzvEqhwzLvn9Zi1805C5KG1yk27ekABA,1190
5
5
  django_cfg/urls.py,sha256=bpRFjMonQuk4UCUMxx4ueBX3YDNB7HXKFwEghQ3KR3o,793
@@ -30,6 +30,7 @@ django_cfg/apps/accounts/migrations/0003_twilioresponse.py,sha256=KBeWBm8UJwqV5U
30
30
  django_cfg/apps/accounts/migrations/0004_delete_twilioresponse.py,sha256=ounUBBUkukjCxdrfbaYO3nswGeluPfwzqKADJ3RUep0,311
31
31
  django_cfg/apps/accounts/migrations/0005_twilioresponse.py,sha256=G0rrkn9CnlRJdkrJfoZ_qQk4jul80rqbKalUsRwSR6w,3174
32
32
  django_cfg/apps/accounts/migrations/0006_remove_twilioresponse_otp_secret_and_more.py,sha256=f7pHY7vNpAksPpjJnhBoYe_eQh1gY5UlRnCDiWXIJuw,1305
33
+ django_cfg/apps/accounts/migrations/0007_twilioresponse.py,sha256=-onPYnKR54_YI-LNmWOltYxVXW13lgg9nPe1GQx6CzY,5034
33
34
  django_cfg/apps/accounts/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
34
35
  django_cfg/apps/accounts/serializers/__init__.py,sha256=ROvk50GAJY84w7hMCsB6XnnKd__k08SYsanZnONWks0,480
35
36
  django_cfg/apps/accounts/serializers/otp.py,sha256=bYcQ1x8AREHrtiLX9rlFmR5x9IpSFwWVsB3HYCqw95k,4699
@@ -276,13 +277,13 @@ django_cfg/apps/tasks/templates/tasks/components/tab_navigation.html,sha256=Sxb7
276
277
  django_cfg/apps/tasks/templates/tasks/components/task_details_modal.html,sha256=DeJjj3dxYcBEAj8Hv4Ii4koEMaNRVHta9_R25qZyK4w,6317
277
278
  django_cfg/apps/tasks/templates/tasks/components/tasks_tab.html,sha256=Yd6SPgdQX1p_6miitu3nZHjdZOtbsXMhUP4DnXSntPs,1826
278
279
  django_cfg/apps/tasks/templates/tasks/components/workers_tab.html,sha256=4Ud4QpG6bnxBsrBDKGXdy4GcIne43wC13Ch1szZzrbo,1580
279
- django_cfg/cli/README.md,sha256=1AhUA2IYQvk_eanS08Crd9JbDInNCa05OLhAJMxmAOI,11659
280
+ django_cfg/cli/README.md,sha256=SgpceKVifp5AgvEeusOfRGRXe823jh1goHqOY0YQEGM,11661
280
281
  django_cfg/cli/__init__.py,sha256=i3ksFngCqZCBvaimQcBD1P2_gr5PiM--4efLScCjvvU,152
281
282
  django_cfg/cli/main.py,sha256=6PfG3ec2AmPHLmUGYc472CId1gs8cRKYrHcvd3ECPxU,998
282
283
  django_cfg/cli/utils.py,sha256=7Fr1abg5NOHcvp64WpL2HUdFmEMvwGLeQQi-Ysg1Cb4,5765
283
284
  django_cfg/cli/commands/__init__.py,sha256=EKLXDAx-QttnGmdjsmVANAfhxWplxl2V_2I0SZaJOoI,98
284
- django_cfg/cli/commands/create_project.py,sha256=evR1AziJ_ofgW5biaT73dmQEUUkwDIwbCekTvX7iMro,21023
285
- django_cfg/cli/commands/info.py,sha256=ynOEvsAsAr4A2Xb1zhu2CCOB5-RBkDIA-iuWLo6DrxA,4922
285
+ django_cfg/cli/commands/create_project.py,sha256=iuf965j8Yg7zxHcPb0GtFHEj73CYXC45ZJRmd6RbA9E,21025
286
+ django_cfg/cli/commands/info.py,sha256=o4S1xPJSHv2oEVqmH0X9RTF5f-8Wy9579yHkyd_PC3E,4923
286
287
  django_cfg/core/__init__.py,sha256=eVK57qFOok9kTeHoNEMQ1BplkUOaQ7NB9kP9eQK1vg0,358
287
288
  django_cfg/core/config.py,sha256=XZmW4tqHYi8zUOywpJ_8DqeFUzwwflMshZnwrpddjtw,26302
288
289
  django_cfg/core/environment.py,sha256=MAoEPqIPsLVhSANT2Bz4nnus2wmbMW0RCOQxhQfDrDc,9106
@@ -358,7 +359,7 @@ django_cfg/modules/django_llm/__init__.py,sha256=Nirl7Ap3sv5qS5EWM0IEUl_ul-mSYac
358
359
  django_cfg/modules/django_llm/example.py,sha256=uL3hbRHHuvmWrNzMI7uSV5wrbIck5yqcgrfRGmA76Wg,13066
359
360
  django_cfg/modules/django_llm/llm/__init__.py,sha256=sLx3bbLUx1h-k5aYoljlAeIg9tDzyd5C9ZFJvccbNSA,192
360
361
  django_cfg/modules/django_llm/llm/cache.py,sha256=cYcbGpVF7zLUvLVvbqKtrJJnAPwno4ubL77UBI7x4bo,5653
361
- django_cfg/modules/django_llm/llm/client.py,sha256=XRGn_v7xvrrf0E-WULTPVURhELn6C75jS-YmaHhiDX8,26022
362
+ django_cfg/modules/django_llm/llm/client.py,sha256=30n4tIP4Kg_zG3PYo7p-Xu3ExaNSE8qNfpdcxI3MPoM,26016
362
363
  django_cfg/modules/django_llm/llm/costs.py,sha256=1L5YTlIIJTWmY0_jKC8sEMZs1YRMDeStz-r-BpyZ2Vo,7490
363
364
  django_cfg/modules/django_llm/llm/extractor.py,sha256=6LCq3IZUO5zKefwNEQ4EkszLGLGEA_YFLvAUPoRBdMc,2694
364
365
  django_cfg/modules/django_llm/llm/models.py,sha256=0bgKsjveu3wpfBTaDsFbdwMC95e08j8EQtlAuRyxVg8,6009
@@ -461,8 +462,8 @@ django_cfg/utils/path_resolution.py,sha256=C9As6p4Q9l3VeoVkFDRPQWGrzAWf8O8UxLVka
461
462
  django_cfg/utils/smart_defaults.py,sha256=b6A1z7VO1NJGq0oUQXN5P97c3k_Ssgw6qUi0mK-4TlM,19786
462
463
  django_cfg/utils/toolkit.py,sha256=Td8_iXNaftonF_xdZP4Y3uO65nuA_4_zditn5Q_Pfcw,23310
463
464
  django_cfg/utils/version_check.py,sha256=jI4v3YMdQriUEeb_TvRl511sDghy6I75iKRDUaNpucs,4800
464
- django_cfg-1.2.10.dist-info/METADATA,sha256=26h78dcPV_t0sKGw07iaFCT05CswY4Nt6W_ykhJE0vo,45639
465
- django_cfg-1.2.10.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
466
- django_cfg-1.2.10.dist-info/entry_points.txt,sha256=Ucmde4Z2wEzgb4AggxxZ0zaYDb9HpyE5blM3uJ0_VNg,56
467
- django_cfg-1.2.10.dist-info/licenses/LICENSE,sha256=xHuytiUkSZCRG3N11nk1X6q1_EGQtv6aL5O9cqNRhKE,1071
468
- django_cfg-1.2.10.dist-info/RECORD,,
465
+ django_cfg-1.2.11.dist-info/METADATA,sha256=O3GCi4UrW4K6UayfDwQdtaPUTx3UTn0TvlEWPAErYbk,19214
466
+ django_cfg-1.2.11.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
467
+ django_cfg-1.2.11.dist-info/entry_points.txt,sha256=Ucmde4Z2wEzgb4AggxxZ0zaYDb9HpyE5blM3uJ0_VNg,56
468
+ django_cfg-1.2.11.dist-info/licenses/LICENSE,sha256=xHuytiUkSZCRG3N11nk1X6q1_EGQtv6aL5O9cqNRhKE,1071
469
+ django_cfg-1.2.11.dist-info/RECORD,,