django-cfg 1.5.20__py3-none-any.whl → 1.5.29__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 +1 -1
- django_cfg/apps/integrations/centrifugo/__init__.py +2 -0
- django_cfg/apps/integrations/centrifugo/services/client/client.py +1 -1
- django_cfg/apps/integrations/centrifugo/services/logging.py +47 -0
- django_cfg/apps/integrations/centrifugo/views/admin_api.py +29 -32
- django_cfg/apps/integrations/centrifugo/views/testing_api.py +31 -37
- django_cfg/apps/integrations/centrifugo/views/wrapper.py +25 -23
- django_cfg/apps/integrations/grpc/auth/api_key_auth.py +11 -10
- django_cfg/apps/integrations/grpc/management/commands/generate_protos.py +1 -1
- django_cfg/apps/integrations/grpc/management/commands/rungrpc.py +21 -36
- django_cfg/apps/integrations/grpc/managers/grpc_request_log.py +84 -0
- django_cfg/apps/integrations/grpc/managers/grpc_server_status.py +126 -3
- django_cfg/apps/integrations/grpc/models/grpc_api_key.py +7 -1
- django_cfg/apps/integrations/grpc/models/grpc_server_status.py +22 -3
- django_cfg/apps/integrations/grpc/services/__init__.py +102 -17
- django_cfg/apps/integrations/grpc/services/centrifugo/bridge.py +469 -0
- django_cfg/apps/integrations/grpc/{centrifugo → services/centrifugo}/demo.py +1 -1
- django_cfg/apps/integrations/grpc/{centrifugo → services/centrifugo}/test_publish.py +4 -4
- django_cfg/apps/integrations/grpc/services/client/__init__.py +26 -0
- django_cfg/apps/integrations/grpc/services/commands/IMPLEMENTATION.md +456 -0
- django_cfg/apps/integrations/grpc/services/commands/README.md +252 -0
- django_cfg/apps/integrations/grpc/services/commands/__init__.py +93 -0
- django_cfg/apps/integrations/grpc/services/commands/base.py +243 -0
- django_cfg/apps/integrations/grpc/services/commands/examples/__init__.py +22 -0
- django_cfg/apps/integrations/grpc/services/commands/examples/base_client.py +228 -0
- django_cfg/apps/integrations/grpc/services/commands/examples/client.py +272 -0
- django_cfg/apps/integrations/grpc/services/commands/examples/config.py +177 -0
- django_cfg/apps/integrations/grpc/services/commands/examples/start.py +125 -0
- django_cfg/apps/integrations/grpc/services/commands/examples/stop.py +101 -0
- django_cfg/apps/integrations/grpc/services/commands/registry.py +170 -0
- django_cfg/apps/integrations/grpc/services/discovery/__init__.py +39 -0
- django_cfg/apps/integrations/grpc/services/{discovery.py → discovery/discovery.py} +62 -55
- django_cfg/apps/integrations/grpc/services/{service_registry.py → discovery/registry.py} +215 -5
- django_cfg/apps/integrations/grpc/{interceptors → services/interceptors}/metrics.py +3 -3
- django_cfg/apps/integrations/grpc/{interceptors → services/interceptors}/request_logger.py +10 -13
- django_cfg/apps/integrations/grpc/services/management/__init__.py +37 -0
- django_cfg/apps/integrations/grpc/services/monitoring/__init__.py +38 -0
- django_cfg/apps/integrations/grpc/services/{monitoring_service.py → monitoring/monitoring.py} +2 -2
- django_cfg/apps/integrations/grpc/services/{testing_service.py → monitoring/testing.py} +5 -5
- django_cfg/apps/integrations/grpc/services/rendering/__init__.py +27 -0
- django_cfg/apps/integrations/grpc/services/{chart_generator.py → rendering/charts.py} +1 -1
- django_cfg/apps/integrations/grpc/services/routing/__init__.py +59 -0
- django_cfg/apps/integrations/grpc/services/routing/config.py +76 -0
- django_cfg/apps/integrations/grpc/services/routing/router.py +430 -0
- django_cfg/apps/integrations/grpc/services/streaming/__init__.py +117 -0
- django_cfg/apps/integrations/grpc/services/streaming/config.py +451 -0
- django_cfg/apps/integrations/grpc/services/streaming/service.py +651 -0
- django_cfg/apps/integrations/grpc/services/streaming/types.py +367 -0
- django_cfg/apps/integrations/grpc/utils/__init__.py +58 -1
- django_cfg/apps/integrations/grpc/utils/converters.py +565 -0
- django_cfg/apps/integrations/grpc/utils/handlers.py +242 -0
- django_cfg/apps/integrations/grpc/utils/proto_gen.py +1 -1
- django_cfg/apps/integrations/grpc/utils/streaming_logger.py +55 -8
- django_cfg/apps/integrations/grpc/views/charts.py +1 -1
- django_cfg/apps/integrations/grpc/views/config.py +1 -1
- django_cfg/core/base/config_model.py +11 -0
- django_cfg/core/builders/middleware_builder.py +5 -0
- django_cfg/management/commands/pool_status.py +153 -0
- django_cfg/middleware/pool_cleanup.py +261 -0
- django_cfg/models/api/grpc/config.py +2 -2
- django_cfg/models/infrastructure/database/config.py +16 -0
- django_cfg/models/infrastructure/database/converters.py +2 -0
- django_cfg/modules/django_admin/utils/html/composition.py +57 -13
- django_cfg/modules/django_admin/utils/html_builder.py +1 -0
- django_cfg/modules/django_client/core/groups/manager.py +25 -18
- django_cfg/modules/django_client/management/commands/generate_client.py +9 -5
- django_cfg/modules/django_logging/django_logger.py +58 -19
- django_cfg/pyproject.toml +3 -3
- django_cfg/static/frontend/admin.zip +0 -0
- django_cfg/templates/admin/index.html +0 -39
- django_cfg/utils/pool_monitor.py +320 -0
- django_cfg/utils/smart_defaults.py +233 -7
- {django_cfg-1.5.20.dist-info → django_cfg-1.5.29.dist-info}/METADATA +75 -5
- {django_cfg-1.5.20.dist-info → django_cfg-1.5.29.dist-info}/RECORD +87 -59
- django_cfg/apps/integrations/grpc/centrifugo/bridge.py +0 -277
- /django_cfg/apps/integrations/grpc/{centrifugo → services/centrifugo}/__init__.py +0 -0
- /django_cfg/apps/integrations/grpc/{centrifugo → services/centrifugo}/config.py +0 -0
- /django_cfg/apps/integrations/grpc/{centrifugo → services/centrifugo}/transformers.py +0 -0
- /django_cfg/apps/integrations/grpc/services/{grpc_client.py → client/client.py} +0 -0
- /django_cfg/apps/integrations/grpc/{interceptors → services/interceptors}/__init__.py +0 -0
- /django_cfg/apps/integrations/grpc/{interceptors → services/interceptors}/centrifugo.py +0 -0
- /django_cfg/apps/integrations/grpc/{interceptors → services/interceptors}/errors.py +0 -0
- /django_cfg/apps/integrations/grpc/{interceptors → services/interceptors}/logging.py +0 -0
- /django_cfg/apps/integrations/grpc/services/{config_helper.py → management/config_helper.py} +0 -0
- /django_cfg/apps/integrations/grpc/services/{proto_files_manager.py → management/proto_manager.py} +0 -0
- {django_cfg-1.5.20.dist-info → django_cfg-1.5.29.dist-info}/WHEEL +0 -0
- {django_cfg-1.5.20.dist-info → django_cfg-1.5.29.dist-info}/entry_points.txt +0 -0
- {django_cfg-1.5.20.dist-info → django_cfg-1.5.29.dist-info}/licenses/LICENSE +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: django-cfg
|
|
3
|
-
Version: 1.5.
|
|
3
|
+
Version: 1.5.29
|
|
4
4
|
Summary: Modern Django framework with type-safe Pydantic v2 configuration, Next.js admin integration, real-time WebSockets, and 8 enterprise apps. Replace settings.py with validated models, 90% less code. Production-ready with AI agents, auto-generated TypeScript clients, and zero-config features.
|
|
5
5
|
Project-URL: Homepage, https://djangocfg.com
|
|
6
6
|
Project-URL: Documentation, https://djangocfg.com
|
|
@@ -116,6 +116,7 @@ Requires-Dist: mkdocs>=1.5; extra == 'docs'
|
|
|
116
116
|
Requires-Dist: mkdocstrings[python]>=0.24; extra == 'docs'
|
|
117
117
|
Requires-Dist: pymdown-extensions>=10.0; extra == 'docs'
|
|
118
118
|
Provides-Extra: full
|
|
119
|
+
Requires-Dist: aiobreaker<2.0,>=1.2.0; extra == 'full'
|
|
119
120
|
Requires-Dist: black>=23.0; extra == 'full'
|
|
120
121
|
Requires-Dist: build>=1.0; extra == 'full'
|
|
121
122
|
Requires-Dist: cent<6.0,>=5.0.0; extra == 'full'
|
|
@@ -150,6 +151,7 @@ Requires-Dist: tomlkit>=0.11; extra == 'full'
|
|
|
150
151
|
Requires-Dist: twine>=4.0; extra == 'full'
|
|
151
152
|
Requires-Dist: websockets<15.0,>=13.0; extra == 'full'
|
|
152
153
|
Provides-Extra: grpc
|
|
154
|
+
Requires-Dist: aiobreaker<2.0,>=1.2.0; extra == 'grpc'
|
|
153
155
|
Requires-Dist: grpcio-health-checking<2.0,>=1.50.0; extra == 'grpc'
|
|
154
156
|
Requires-Dist: grpcio-reflection<2.0,>=1.50.0; extra == 'grpc'
|
|
155
157
|
Requires-Dist: grpcio-tools<2.0,>=1.50.0; extra == 'grpc'
|
|
@@ -194,7 +196,7 @@ Description-Content-Type: text/markdown
|
|
|
194
196
|
|
|
195
197
|
### 🚀 The Modern Django Framework for Enterprise Applications
|
|
196
198
|
|
|
197
|
-
**Type-safe configuration** • **Next.js Admin** • **
|
|
199
|
+
**Type-safe configuration** • **Next.js Admin** • **gRPC Streaming** • **Real-time WebSockets** • **AI Agents** • **8 Enterprise Apps**
|
|
198
200
|
|
|
199
201
|
**[🎯 Live Demo](http://demo.djangocfg.com)** • **[📚 Documentation](https://djangocfg.com/docs/getting-started/intro)** • **[🐙 GitHub](https://github.com/markolofsen/django-cfg)**
|
|
200
202
|
|
|
@@ -394,6 +396,72 @@ class MyConfig(DjangoConfig):
|
|
|
394
396
|
|
|
395
397
|
---
|
|
396
398
|
|
|
399
|
+
### 🌐 gRPC Microservices & Streaming
|
|
400
|
+
|
|
401
|
+
**Production-ready gRPC integration** - bidirectional streaming, WebSocket bridge, and type-safe Protobuf.
|
|
402
|
+
|
|
403
|
+
```python
|
|
404
|
+
from django_cfg.apps.integrations.grpc.services.centrifugo import (
|
|
405
|
+
CentrifugoBridgeMixin,
|
|
406
|
+
CentrifugoChannels,
|
|
407
|
+
ChannelConfig,
|
|
408
|
+
)
|
|
409
|
+
|
|
410
|
+
# Define type-safe channel mappings
|
|
411
|
+
class BotChannels(CentrifugoChannels):
|
|
412
|
+
heartbeat: ChannelConfig = ChannelConfig(
|
|
413
|
+
template='bot#{bot_id}#heartbeat',
|
|
414
|
+
rate_limit=5.0, # Max once per 5 seconds
|
|
415
|
+
)
|
|
416
|
+
status: ChannelConfig = ChannelConfig(
|
|
417
|
+
template='bot#{bot_id}#status',
|
|
418
|
+
critical=True, # Bypass rate limiting
|
|
419
|
+
)
|
|
420
|
+
|
|
421
|
+
# gRPC service with automatic WebSocket publishing
|
|
422
|
+
class BotStreamingService(
|
|
423
|
+
pb2_grpc.BotStreamingServiceServicer,
|
|
424
|
+
CentrifugoBridgeMixin # ← One-line WebSocket integration
|
|
425
|
+
):
|
|
426
|
+
centrifugo_channels = BotChannels()
|
|
427
|
+
|
|
428
|
+
async def ConnectBot(self, request_iterator, context):
|
|
429
|
+
async for message in request_iterator:
|
|
430
|
+
# Your business logic
|
|
431
|
+
await process_message(message)
|
|
432
|
+
|
|
433
|
+
# Auto-publish to WebSocket (1 line!)
|
|
434
|
+
await self._notify_centrifugo(message, bot_id=bot_id)
|
|
435
|
+
```
|
|
436
|
+
|
|
437
|
+
**Built-in features:**
|
|
438
|
+
- 🔄 **Bidirectional Streaming** - Full-duplex gRPC communication
|
|
439
|
+
- 🌉 **Centrifugo Bridge** - Auto-publish gRPC events to WebSocket
|
|
440
|
+
- 🛡️ **Circuit Breaker** - Graceful degradation if Centrifugo unavailable
|
|
441
|
+
- 🔁 **Auto Retry** - Exponential backoff for critical events
|
|
442
|
+
- 📦 **Dead Letter Queue** - Never lose important messages
|
|
443
|
+
- ⚡ **Rate Limiting** - Per-channel throttling with critical bypass
|
|
444
|
+
- 🎯 **Type-Safe Config** - Pydantic v2 validation for channels
|
|
445
|
+
|
|
446
|
+
**Architecture:**
|
|
447
|
+
```
|
|
448
|
+
Trading Bot ──gRPC──> Django gRPC Service ──WebSocket──> Browser
|
|
449
|
+
↓
|
|
450
|
+
[Business Logic]
|
|
451
|
+
[Database Save]
|
|
452
|
+
[Centrifugo Publish]
|
|
453
|
+
```
|
|
454
|
+
|
|
455
|
+
**Why this approach?**
|
|
456
|
+
- ✅ Django controls all business logic and validation
|
|
457
|
+
- ✅ Single source of truth for data transformations
|
|
458
|
+
- ✅ Graceful degradation - gRPC works even if WebSocket fails
|
|
459
|
+
- ✅ Production-ready resilience patterns built-in
|
|
460
|
+
|
|
461
|
+
**[📚 gRPC Integration Guide →](https://djangocfg.com/docs/features/integrations/grpc)**
|
|
462
|
+
|
|
463
|
+
---
|
|
464
|
+
|
|
397
465
|
### 🤖 AI-Ready Infrastructure
|
|
398
466
|
|
|
399
467
|
**Built-in AI agent framework** - LLM workflow automation with Django ORM integration.
|
|
@@ -585,9 +653,11 @@ class ProductionConfig(DjangoConfig):
|
|
|
585
653
|
- **[Quick Start](https://djangocfg.com/docs/features/integrations/nextjs-admin/quick-start)** - 5-minute setup
|
|
586
654
|
- **[Configuration](https://djangocfg.com/docs/features/integrations/nextjs-admin/configuration)** - All options
|
|
587
655
|
|
|
588
|
-
### 📡 Real-Time
|
|
656
|
+
### 📡 Real-Time & Microservices
|
|
589
657
|
- **[Centrifugo Integration](https://djangocfg.com/docs/features/integrations/centrifugo)** - WebSocket setup
|
|
590
658
|
- **[Live Updates](https://djangocfg.com/docs/features/integrations/centrifugo/live-updates)** - Real-time data
|
|
659
|
+
- **[gRPC Streaming](https://djangocfg.com/docs/features/integrations/grpc)** - Bidirectional streaming
|
|
660
|
+
- **[gRPC → WebSocket Bridge](https://djangocfg.com/docs/features/integrations/grpc/centrifugo-bridge)** - Auto-publish to clients
|
|
591
661
|
|
|
592
662
|
### 🏗️ Core Features
|
|
593
663
|
- **[Built-in Apps](https://djangocfg.com/docs/features/built-in-apps/overview)** - 8 enterprise apps
|
|
@@ -632,9 +702,9 @@ class ProductionConfig(DjangoConfig):
|
|
|
632
702
|
|
|
633
703
|
<div align="center">
|
|
634
704
|
|
|
635
|
-
**Modern Django Framework** • **Type-Safe Configuration** • **Next.js Admin** • **Real-Time WebSockets** • **AI-Ready**
|
|
705
|
+
**Modern Django Framework** • **Type-Safe Configuration** • **Next.js Admin** • **gRPC Streaming** • **Real-Time WebSockets** • **AI-Ready**
|
|
636
706
|
|
|
637
|
-
Django-CFG is the modern Django framework for enterprise applications. Built with Pydantic v2 for type-safe configuration, includes Next.js admin integration,
|
|
707
|
+
Django-CFG is the modern Django framework for enterprise applications. Built with Pydantic v2 for type-safe configuration, includes Next.js admin integration, gRPC bidirectional streaming with WebSocket bridge, Centrifugo real-time support, AI agent framework, and 8 production-ready apps. Perfect for building scalable microservices and real-time Django applications with reduced boilerplate and enterprise features out of the box.
|
|
638
708
|
|
|
639
709
|
---
|
|
640
710
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
django_cfg/README.md,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
2
|
-
django_cfg/__init__.py,sha256=
|
|
2
|
+
django_cfg/__init__.py,sha256=oQaPnoJ11bqhg0gfor6sbcxzCTeYmYqrScQTcsou_Lk,1822
|
|
3
3
|
django_cfg/apps.py,sha256=72m3uuvyqGiLx6gOfE-BD3P61jddCCERuBOYpxTX518,1605
|
|
4
4
|
django_cfg/config.py,sha256=ZqvSbFje8LJS5NtXTZsnUErgcUSCHa251LNfjEatZtY,2152
|
|
5
5
|
django_cfg/requirements.txt,sha256=NQjf3cPCjzPMaGFewhJxGNHnUdE9gE8yTXDEBIt0vuA,2682
|
|
@@ -362,7 +362,7 @@ django_cfg/apps/business/support/views/admin.py,sha256=3bofdyoFWPhip0kia7WTFW_4y
|
|
|
362
362
|
django_cfg/apps/business/support/views/api.py,sha256=8hHY-j6EZpSdYkT6JA8_yo7LJKPpSon3DVNWl6jfGRw,5506
|
|
363
363
|
django_cfg/apps/business/support/views/chat.py,sha256=wbWR_UgvdgYBYlhHJBLJRPpVm7V44bNy5NZWHqBx2AE,3255
|
|
364
364
|
django_cfg/apps/integrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
365
|
-
django_cfg/apps/integrations/centrifugo/__init__.py,sha256=
|
|
365
|
+
django_cfg/apps/integrations/centrifugo/__init__.py,sha256=U-0e1-N9e3VOhxBHe7t3wOn0kcAUEe4R5-7ARt1ck-Q,1955
|
|
366
366
|
django_cfg/apps/integrations/centrifugo/apps.py,sha256=dYs1FA8HpGj3WKJQIMTa-DwjIyGNkDx0lB1_dMAOwuw,2987
|
|
367
367
|
django_cfg/apps/integrations/centrifugo/decorators.py,sha256=J3KA0ll3lYwU_gLPKmfmB0HQ5vFnbSABbCNOjKm3y-Y,4174
|
|
368
368
|
django_cfg/apps/integrations/centrifugo/registry.py,sha256=HRaBN39UlCMX6ZAysYhdCWMlzAx1scGTvgZLyl3MCjc,2819
|
|
@@ -426,20 +426,20 @@ django_cfg/apps/integrations/centrifugo/serializers/stats.py,sha256=OAoulxUY_8Lh
|
|
|
426
426
|
django_cfg/apps/integrations/centrifugo/services/__init__.py,sha256=q0Dzm_gIrKcCgCrRAPLxKY-n_FZUWHtrKMCgZ110ZVg,507
|
|
427
427
|
django_cfg/apps/integrations/centrifugo/services/config_helper.py,sha256=d2eT8AczcCRl-v2OqZUu0n-MvSt42GWJOD7tJTHKiSg,1583
|
|
428
428
|
django_cfg/apps/integrations/centrifugo/services/dashboard_notifier.py,sha256=uagZMbykw4GjX-mqlekCYjR6tgLMifWe2c9mwIjYrLU,4793
|
|
429
|
-
django_cfg/apps/integrations/centrifugo/services/logging.py,sha256=
|
|
429
|
+
django_cfg/apps/integrations/centrifugo/services/logging.py,sha256=zJWrJsP4k_epixgvYnx_HCMPOCiQMt1XHjamdX4ypkk,23328
|
|
430
430
|
django_cfg/apps/integrations/centrifugo/services/publisher.py,sha256=9p2vF03yJWZQOrMMpWFwmv29azsTIAI31it7ac37giU,11232
|
|
431
431
|
django_cfg/apps/integrations/centrifugo/services/token_generator.py,sha256=hjNKRg5neOYv1LytjrpOQBsBiBPx4wcPrbbglTJieh8,3375
|
|
432
432
|
django_cfg/apps/integrations/centrifugo/services/client/__init__.py,sha256=IH3RKQTnahybxlFp20X189A5MzWs-kxTnSSoN0Bt8pQ,1003
|
|
433
|
-
django_cfg/apps/integrations/centrifugo/services/client/client.py,sha256=
|
|
433
|
+
django_cfg/apps/integrations/centrifugo/services/client/client.py,sha256=7PjCaQTba5xKYUBDhCELYuUxyr8SprEAnWMZ3sZvrig,18976
|
|
434
434
|
django_cfg/apps/integrations/centrifugo/services/client/config.py,sha256=p8Vz91XH-EHJucIGYHI6u20UuuJ0NQTjUDaxmzJ7RIc,6965
|
|
435
435
|
django_cfg/apps/integrations/centrifugo/services/client/direct_client.py,sha256=DfohtVwe2SNc51XF-X5G3bRI9nWEC1Z22Xe2uNCIiqw,8738
|
|
436
436
|
django_cfg/apps/integrations/centrifugo/services/client/exceptions.py,sha256=VsYExbk_H-qOaPa3iFUWBa1HMgw1IObil73JI1FhcDM,6263
|
|
437
437
|
django_cfg/apps/integrations/centrifugo/views/__init__.py,sha256=ieaKBQSQeOi57BS3CUJltoqLDeAIgcixkT9YzsGK9c4,370
|
|
438
|
-
django_cfg/apps/integrations/centrifugo/views/admin_api.py,sha256=
|
|
438
|
+
django_cfg/apps/integrations/centrifugo/views/admin_api.py,sha256=BBxyJo3c7ROivU191gjI7kiJojC4HwMTQsS3td7NSXI,13855
|
|
439
439
|
django_cfg/apps/integrations/centrifugo/views/monitoring.py,sha256=UM9tdgeFpcXYai3dYpf6lJT4jq8DkrT1OMjiuiTCjBE,13756
|
|
440
|
-
django_cfg/apps/integrations/centrifugo/views/testing_api.py,sha256=
|
|
440
|
+
django_cfg/apps/integrations/centrifugo/views/testing_api.py,sha256=3K7AvUTOyq6chgIVAOzYKMxbFYY7aFl6ZaDkKrINzh8,14089
|
|
441
441
|
django_cfg/apps/integrations/centrifugo/views/token_api.py,sha256=j5_9DALkFzzOmiC_JTdIlppra67WzJq-E_OAzaxWeqQ,3499
|
|
442
|
-
django_cfg/apps/integrations/centrifugo/views/wrapper.py,sha256=
|
|
442
|
+
django_cfg/apps/integrations/centrifugo/views/wrapper.py,sha256=rHarWGtMD2qDPB3pa7K476Usc3CeTudaZxUyyQ3M7yA,8632
|
|
443
443
|
django_cfg/apps/integrations/grpc/__init__.py,sha256=mzsALD2x44rGQNNh3mIUFi7flQj6PvS1wPq-0TeBz3c,235
|
|
444
444
|
django_cfg/apps/integrations/grpc/apps.py,sha256=RF605ivjVMIVbQKIWhGKoDkYfJR9hk3Ou-hCQbBDfzY,3148
|
|
445
445
|
django_cfg/apps/integrations/grpc/urls.py,sha256=Hq1tpLQljoWifXIYudDDYytMeFO60m1FPE17gTAMlTg,1375
|
|
@@ -453,31 +453,19 @@ django_cfg/apps/integrations/grpc/admin/grpc_api_key.py,sha256=a3PLso6XqkqAws-o3
|
|
|
453
453
|
django_cfg/apps/integrations/grpc/admin/grpc_request_log.py,sha256=aBQscXcBjWhYq_2WKrxTnRdjBmy-qAXNcJkrcoIPc_0,9314
|
|
454
454
|
django_cfg/apps/integrations/grpc/admin/grpc_server_status.py,sha256=aGEmCFk-WFDci4myzvIlkT88-Tr-UOcAe8QeWUH-1_E,8123
|
|
455
455
|
django_cfg/apps/integrations/grpc/auth/__init__.py,sha256=A2CloEosP2mSte9j80PrtGdYG723Eerg6sHim2YTOCE,312
|
|
456
|
-
django_cfg/apps/integrations/grpc/auth/api_key_auth.py,sha256=
|
|
457
|
-
django_cfg/apps/integrations/grpc/centrifugo/__init__.py,sha256=7jWO3EmYbL5vNnqkP1o4qeBKYicfz9Heu_hx5ChDAPY,620
|
|
458
|
-
django_cfg/apps/integrations/grpc/centrifugo/bridge.py,sha256=_XobJgUSQW90V2o4czQgJEJXUyFC3-7HqEYgqAq6iOA,9363
|
|
459
|
-
django_cfg/apps/integrations/grpc/centrifugo/config.py,sha256=a7bvTw3HjyYp1Lfqw5qmZlq6LNDzNEgDqCRTNIVSxxU,4791
|
|
460
|
-
django_cfg/apps/integrations/grpc/centrifugo/demo.py,sha256=qlxp8NfVmpxRkGWg5l3FRRFJrtIWbJVdWtW_wYcSiZQ,19338
|
|
461
|
-
django_cfg/apps/integrations/grpc/centrifugo/test_publish.py,sha256=Vv4V78VnREm-g6S_mpSMutsdeND3EcEt0iJUT8hbj8U,6899
|
|
462
|
-
django_cfg/apps/integrations/grpc/centrifugo/transformers.py,sha256=KBK4UZNpdsZl7TL1wGm8KOTa4sU-0qUmF2JT6UJw80k,2259
|
|
463
|
-
django_cfg/apps/integrations/grpc/interceptors/__init__.py,sha256=Gp2cQ7PZ3VbpulsU-vB1VwF67DFY5JIURuZoRSopOoM,603
|
|
464
|
-
django_cfg/apps/integrations/grpc/interceptors/centrifugo.py,sha256=xhIH6JC6gwudPUfQrUX4MDz2mdUp9SYT455AvBGQ_3Q,19880
|
|
465
|
-
django_cfg/apps/integrations/grpc/interceptors/errors.py,sha256=rbhUhD_gwKESiGqFDsGR9bQ-x3zJdM0FxZ2ytb-rK_E,7968
|
|
466
|
-
django_cfg/apps/integrations/grpc/interceptors/logging.py,sha256=qhp9a6cNFKulFWevJV1cEie0b1Sa9_9aGUkYqHhhOAs,9468
|
|
467
|
-
django_cfg/apps/integrations/grpc/interceptors/metrics.py,sha256=dLTAvSeWEcCgdqlaxRO_L00k7ICwoVcZLh8U5eAXtMs,10009
|
|
468
|
-
django_cfg/apps/integrations/grpc/interceptors/request_logger.py,sha256=LMZrJbKqIijdrcCE2jGeMZz-JXossX3XOb8jK78xVfE,18009
|
|
456
|
+
django_cfg/apps/integrations/grpc/auth/api_key_auth.py,sha256=nfXSax14UFzygdbTPaPxhwJA2zo_Gq7aMhZII-KdyW0,12098
|
|
469
457
|
django_cfg/apps/integrations/grpc/management/__init__.py,sha256=qeaIQO1EY_-VkrUFRigi-UGbrHmN6U_0ZetCQkjDGvk,40
|
|
470
458
|
django_cfg/apps/integrations/grpc/management/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
471
459
|
django_cfg/apps/integrations/grpc/management/commands/compile_proto.py,sha256=5978_OnFOz6j1m_XG1amlZ3U2dVw3w3395I5ktx2mIA,3440
|
|
472
|
-
django_cfg/apps/integrations/grpc/management/commands/generate_protos.py,sha256=
|
|
473
|
-
django_cfg/apps/integrations/grpc/management/commands/rungrpc.py,sha256=
|
|
460
|
+
django_cfg/apps/integrations/grpc/management/commands/generate_protos.py,sha256=zCGEncUf3kfT_PkvECbAOzBjrzzBx9iTYxq49tie9yg,6618
|
|
461
|
+
django_cfg/apps/integrations/grpc/management/commands/rungrpc.py,sha256=dhPVqUuP2nOr6tzpD1vTc_fS_pE1L6EZB2WKrcqAOs8,30875
|
|
474
462
|
django_cfg/apps/integrations/grpc/management/commands/test_grpc_integration.py,sha256=lyKkjIUVNSmMgQdmd9Ko82hp3CZQgdVDCGU1NSxxvd8,2146
|
|
475
463
|
django_cfg/apps/integrations/grpc/management/proto/__init__.py,sha256=2esCFQpr2J0ERGvQaHsR-LOElHV1iXT1AK9McWlJ9g0,57
|
|
476
464
|
django_cfg/apps/integrations/grpc/management/proto/compiler.py,sha256=9qcIcPUeXqpJ-U0WdHYArCH0l0it_9nLNWt0GfK2E4E,5827
|
|
477
465
|
django_cfg/apps/integrations/grpc/managers/__init__.py,sha256=esYhaeeiC83NKQPbWW__RQ20NGMMg-ReyNtlXV4LH6Y,345
|
|
478
466
|
django_cfg/apps/integrations/grpc/managers/grpc_api_key.py,sha256=hu0zL2YS4fVKtTurj0zZ8X4MUVBSc4AirnA79mkdFR4,4851
|
|
479
|
-
django_cfg/apps/integrations/grpc/managers/grpc_request_log.py,sha256=
|
|
480
|
-
django_cfg/apps/integrations/grpc/managers/grpc_server_status.py,sha256=
|
|
467
|
+
django_cfg/apps/integrations/grpc/managers/grpc_request_log.py,sha256=c3NxCsqIg5mqjO_NrlWYRVMQHKBAK_ZyMu91977CSQ0,11836
|
|
468
|
+
django_cfg/apps/integrations/grpc/managers/grpc_server_status.py,sha256=ri39wTo5uiqSNObKTG7-rUjDqgsZUigHSmLIPBP3ieQ,12413
|
|
481
469
|
django_cfg/apps/integrations/grpc/migrations/0001_initial.py,sha256=Wa-uP4JualP-Qrz37HUTzZnRtU_Urz-JWH7F9oT1yzY,4562
|
|
482
470
|
django_cfg/apps/integrations/grpc/migrations/0002_rename_django_cfg__service_4c4a8e_idx_django_cfg__service_584308_idx_and_more.py,sha256=88Ox17gYjdhYEymiKbt8F8-clVoad56gm7xSaJCtNvQ,1179
|
|
483
471
|
django_cfg/apps/integrations/grpc/migrations/0003_grpcserverstatus.py,sha256=CvTxgc9CJEvjTZfl8HfHMHukGJjNx2w2K7Lle1lbqTc,4613
|
|
@@ -486,9 +474,9 @@ django_cfg/apps/integrations/grpc/migrations/0005_grpcapikey.py,sha256=aZSYBPtux
|
|
|
486
474
|
django_cfg/apps/integrations/grpc/migrations/0006_grpcrequestlog_api_key_and_more.py,sha256=z8BaLFRmmzmKdrhjAp6E6xlR_njnMPRZWTjV_UqrTF8,1010
|
|
487
475
|
django_cfg/apps/integrations/grpc/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
488
476
|
django_cfg/apps/integrations/grpc/models/__init__.py,sha256=a-1vjS6L-stjNTDUn8OUw3m3jxQCsbxoixdrCiPc_tk,240
|
|
489
|
-
django_cfg/apps/integrations/grpc/models/grpc_api_key.py,sha256=
|
|
477
|
+
django_cfg/apps/integrations/grpc/models/grpc_api_key.py,sha256=_eqNOaM6ampfV58Gnuct_geravgOuMxRzfydZgCRM3k,5753
|
|
490
478
|
django_cfg/apps/integrations/grpc/models/grpc_request_log.py,sha256=CggWp4FwpJ4AyRFUhLhYTd1DTVMMtyIAeGhr0hqWSRg,6080
|
|
491
|
-
django_cfg/apps/integrations/grpc/models/grpc_server_status.py,sha256=
|
|
479
|
+
django_cfg/apps/integrations/grpc/models/grpc_server_status.py,sha256=ddKlp45BJLJbJ7Pywx_vtuz5EIkU4Vw9HwnlriKDWZk,9807
|
|
492
480
|
django_cfg/apps/integrations/grpc/serializers/__init__.py,sha256=phrJr74amte_2AKMgMsMdSLhQu_xE8V-FSUIOp_qiF8,2244
|
|
493
481
|
django_cfg/apps/integrations/grpc/serializers/api_keys.py,sha256=pnr2iR-mQJeo-Y-r59EYHyX-rFHeIDb0lUFfpyIgl7c,2356
|
|
494
482
|
django_cfg/apps/integrations/grpc/serializers/charts.py,sha256=N4Uojw6FOo9W5sl6RsrGhD3s7YsQF1Aav5YJHb1OJ04,8965
|
|
@@ -500,27 +488,64 @@ django_cfg/apps/integrations/grpc/serializers/service_registry.py,sha256=9HusXFl
|
|
|
500
488
|
django_cfg/apps/integrations/grpc/serializers/services.py,sha256=CY8SQ5cLSEPK9nvHS4EZ4silBAIyADpxQZgJArr4I-0,1059
|
|
501
489
|
django_cfg/apps/integrations/grpc/serializers/stats.py,sha256=PquPBqE0E7uImbUqLSGYCRT1r3cJmgrTl1_cdhli-R8,3252
|
|
502
490
|
django_cfg/apps/integrations/grpc/serializers/testing.py,sha256=MjZ_6UyxNH6A7pepp7hXnaH-amKorKhCWZvdFjbqswA,4293
|
|
503
|
-
django_cfg/apps/integrations/grpc/services/__init__.py,sha256=
|
|
491
|
+
django_cfg/apps/integrations/grpc/services/__init__.py,sha256=T6KaTpqghLfvMiWK5vK_Y-aBtiUEHWLE7SamOqnGOYk,3585
|
|
504
492
|
django_cfg/apps/integrations/grpc/services/base.py,sha256=ieN4GiAzEDgQVc7sHsxgTy7-QQKnDNo2rFBedhc1ySE,11148
|
|
505
|
-
django_cfg/apps/integrations/grpc/services/
|
|
506
|
-
django_cfg/apps/integrations/grpc/services/
|
|
507
|
-
django_cfg/apps/integrations/grpc/services/
|
|
508
|
-
django_cfg/apps/integrations/grpc/services/
|
|
509
|
-
django_cfg/apps/integrations/grpc/services/
|
|
510
|
-
django_cfg/apps/integrations/grpc/services/
|
|
511
|
-
django_cfg/apps/integrations/grpc/services/
|
|
512
|
-
django_cfg/apps/integrations/grpc/services/
|
|
493
|
+
django_cfg/apps/integrations/grpc/services/centrifugo/__init__.py,sha256=7jWO3EmYbL5vNnqkP1o4qeBKYicfz9Heu_hx5ChDAPY,620
|
|
494
|
+
django_cfg/apps/integrations/grpc/services/centrifugo/bridge.py,sha256=n_VxZGezXd2Xw8AXy9rCEInt8wWFqnZjxOUBpiQCOWI,17633
|
|
495
|
+
django_cfg/apps/integrations/grpc/services/centrifugo/config.py,sha256=a7bvTw3HjyYp1Lfqw5qmZlq6LNDzNEgDqCRTNIVSxxU,4791
|
|
496
|
+
django_cfg/apps/integrations/grpc/services/centrifugo/demo.py,sha256=Ij91Zgjb0YLTk2tvqQUpIjld5-jOZxOLRrh_d5Qkoyc,19339
|
|
497
|
+
django_cfg/apps/integrations/grpc/services/centrifugo/test_publish.py,sha256=eMdLKEg7_4uBNt26uS5FAaaezvww7NqpK3A_3pjdciE,6935
|
|
498
|
+
django_cfg/apps/integrations/grpc/services/centrifugo/transformers.py,sha256=KBK4UZNpdsZl7TL1wGm8KOTa4sU-0qUmF2JT6UJw80k,2259
|
|
499
|
+
django_cfg/apps/integrations/grpc/services/client/__init__.py,sha256=ari1y4vBwF6_bpUhATq4t3X8sbJisQuLIE7dnVcWNS0,566
|
|
500
|
+
django_cfg/apps/integrations/grpc/services/client/client.py,sha256=FArKYlT1EZowyZyI7hbLDmzt6iTVGYPiHXvxwe8mS-A,21996
|
|
501
|
+
django_cfg/apps/integrations/grpc/services/commands/IMPLEMENTATION.md,sha256=p_Q2Naa-P5372hubNjHj4yF0R0KFpBmcqcsbZkvYefU,10885
|
|
502
|
+
django_cfg/apps/integrations/grpc/services/commands/README.md,sha256=suR6oVcxWhwk6Apui0LVprHupuBkZSTBLywnHoNFv6k,8693
|
|
503
|
+
django_cfg/apps/integrations/grpc/services/commands/__init__.py,sha256=Q3Hu9v0oTbvf3DoXg_ZTaw9TbjxKS1PNv9H5z_NJQQE,2772
|
|
504
|
+
django_cfg/apps/integrations/grpc/services/commands/base.py,sha256=plCVJaWaZu8D9OBPRaianrp1HNgutGuzdSNfHe61EQ0,7428
|
|
505
|
+
django_cfg/apps/integrations/grpc/services/commands/registry.py,sha256=9n7HFVrQ7N6r8CNe2oM33YKSvYANIxBaWQMxGvmw8ec,4773
|
|
506
|
+
django_cfg/apps/integrations/grpc/services/commands/examples/__init__.py,sha256=VRqnhBZ2vKWf1XkKcgvJ5Kf_8H5fJWIgLHqmGUFa9Vg,675
|
|
507
|
+
django_cfg/apps/integrations/grpc/services/commands/examples/base_client.py,sha256=D-7LftZZRayOV146C6KPtxeAZMkUbSH-UM3frsw4uJk,7587
|
|
508
|
+
django_cfg/apps/integrations/grpc/services/commands/examples/client.py,sha256=mPF_9oJbLlHG1o3MeN5s52l83kvKWsOEb3lp0ytDU9Q,7636
|
|
509
|
+
django_cfg/apps/integrations/grpc/services/commands/examples/config.py,sha256=jvD2tn-sJTVjuL2bud-dxPWArTykKHJS1LcseXa6I38,5547
|
|
510
|
+
django_cfg/apps/integrations/grpc/services/commands/examples/start.py,sha256=9Yi1KtF-uEooibQXzADLu3Xqrhs7hX4YVfHMBuPhYLA,4130
|
|
511
|
+
django_cfg/apps/integrations/grpc/services/commands/examples/stop.py,sha256=4q4RS9pmk4GbiYsmAvJ7GoQjtq9F05vVdp1f2PYcabg,2836
|
|
512
|
+
django_cfg/apps/integrations/grpc/services/discovery/__init__.py,sha256=FEC3x2zfJNelUqfulTlFpAxUDOTpTJVdW8dEoV3XOdc,914
|
|
513
|
+
django_cfg/apps/integrations/grpc/services/discovery/discovery.py,sha256=d1bDjVEdJEtrbXFuQV_zuQ5p3JfRGNfUAQQiVNYN7E8,20391
|
|
514
|
+
django_cfg/apps/integrations/grpc/services/discovery/registry.py,sha256=gX8QReiXnbUFnUxjh6b4DfqFjIScY25Ya-2nVdaFixA,18326
|
|
515
|
+
django_cfg/apps/integrations/grpc/services/interceptors/__init__.py,sha256=Gp2cQ7PZ3VbpulsU-vB1VwF67DFY5JIURuZoRSopOoM,603
|
|
516
|
+
django_cfg/apps/integrations/grpc/services/interceptors/centrifugo.py,sha256=xhIH6JC6gwudPUfQrUX4MDz2mdUp9SYT455AvBGQ_3Q,19880
|
|
517
|
+
django_cfg/apps/integrations/grpc/services/interceptors/errors.py,sha256=rbhUhD_gwKESiGqFDsGR9bQ-x3zJdM0FxZ2ytb-rK_E,7968
|
|
518
|
+
django_cfg/apps/integrations/grpc/services/interceptors/logging.py,sha256=qhp9a6cNFKulFWevJV1cEie0b1Sa9_9aGUkYqHhhOAs,9468
|
|
519
|
+
django_cfg/apps/integrations/grpc/services/interceptors/metrics.py,sha256=GYyFMfIRIXbgf2Xk_F5WCG_ZntZaJhhqywj_QPSimBU,10036
|
|
520
|
+
django_cfg/apps/integrations/grpc/services/interceptors/request_logger.py,sha256=sY_UJQNo99uJNXRNY9BnY2bzbmjNOYJMw2FtfuaCkSE,17903
|
|
521
|
+
django_cfg/apps/integrations/grpc/services/management/__init__.py,sha256=H4mE3wIhXotTQ_ijBve0qykfFyC0BU76TqHNBKJ2Dks,796
|
|
522
|
+
django_cfg/apps/integrations/grpc/services/management/config_helper.py,sha256=234QZ8CTNkYkmRFbL_4pyawQR0IQO5n0vTlSI2Ecigg,3480
|
|
523
|
+
django_cfg/apps/integrations/grpc/services/management/proto_manager.py,sha256=_jDm4lFzC5KIa_cGTdktMDvHfLU9BoaeCa5jd7eH6W0,8995
|
|
524
|
+
django_cfg/apps/integrations/grpc/services/monitoring/__init__.py,sha256=b7eT2tT_aUkSpkbuVjnrQwsdvz66sYBPmXElr-PkLHM,820
|
|
525
|
+
django_cfg/apps/integrations/grpc/services/monitoring/monitoring.py,sha256=kxKDqCoOWSudMDegEgtRHnNPzcnw4oiG0mRVLsk82DY,13257
|
|
526
|
+
django_cfg/apps/integrations/grpc/services/monitoring/testing.py,sha256=ZYKlcqD_iM9MzXwoRAC1kDo-Lvq4RQ7LelJlQUXORM4,10489
|
|
527
|
+
django_cfg/apps/integrations/grpc/services/rendering/__init__.py,sha256=Y4EwpuLgCgcQ-fsJ7p4hJ37ZZsFMvZBeNSZpj6FU6w0,574
|
|
528
|
+
django_cfg/apps/integrations/grpc/services/rendering/charts.py,sha256=U-kBKGboGRzRt8i930k072cj4YvJcOv5YJ_owY-HbqA,14922
|
|
529
|
+
django_cfg/apps/integrations/grpc/services/routing/__init__.py,sha256=q247AwqDGAgRkhPgn_Vh0-7gUOo-tIvU1dr4XrFRVmg,1633
|
|
530
|
+
django_cfg/apps/integrations/grpc/services/routing/config.py,sha256=c0hXK7UL13BKZoE56K7kgeZnGYmCYjJXYCYHBDZkJMI,1872
|
|
531
|
+
django_cfg/apps/integrations/grpc/services/routing/router.py,sha256=IFTGpFpCv2OEvxOjAsHsob21vqcg9rGWm0HvycEMTo0,15382
|
|
532
|
+
django_cfg/apps/integrations/grpc/services/streaming/__init__.py,sha256=03PHwE06V1BTdyAMBpeiDH5PSUA5LAw2yCbBm8lSB_Q,2535
|
|
533
|
+
django_cfg/apps/integrations/grpc/services/streaming/config.py,sha256=BJnuF5K0DzY7Stf8eh188020pg63XsA7Glkm9SHSIdI,14900
|
|
534
|
+
django_cfg/apps/integrations/grpc/services/streaming/service.py,sha256=rzRDnqVfnLCoFVl9_LyyeFWyfuEnUapfJIcDRDKMSQo,24179
|
|
535
|
+
django_cfg/apps/integrations/grpc/services/streaming/types.py,sha256=fZjNtglKUS9frJoLgH1CcS8dS5N9TLDWfWjWAtmDImM,10243
|
|
513
536
|
django_cfg/apps/integrations/grpc/testing/__init__.py,sha256=jCDnG47GrMAHTPMEIoQhRI0w-i6_91K8dxSIN-Amq8k,223
|
|
514
537
|
django_cfg/apps/integrations/grpc/testing/examples.py,sha256=MZU8-wVdBRqhHpvCgbvVwmiQaJuXpCPcqTOivD-Jtt0,8588
|
|
515
538
|
django_cfg/apps/integrations/grpc/utils/SERVER_LOGGING.md,sha256=0_02dkCeizx7jBhQmY-OGuZcmCai03fxMkFGhEDi-ww,5332
|
|
516
|
-
django_cfg/apps/integrations/grpc/utils/__init__.py,sha256=
|
|
539
|
+
django_cfg/apps/integrations/grpc/utils/__init__.py,sha256=wjOeW8yWeB31YgKKq7JIxhfCaILUDQCfnBb_SKkX7_Y,1407
|
|
540
|
+
django_cfg/apps/integrations/grpc/utils/converters.py,sha256=f6o4iek9GRDJwZOGJk7VMc2Mu7A3B__eu2LUNGA905I,15536
|
|
541
|
+
django_cfg/apps/integrations/grpc/utils/handlers.py,sha256=MZEbfwF2Lzc5nXsHWwBqUnMgokbYSliWIevxKTWuzug,6706
|
|
517
542
|
django_cfg/apps/integrations/grpc/utils/integration_test.py,sha256=K0FlPBYuAdsTRp01q0kFjd1t2g9Q0wttkgoLUhu2uXE,12286
|
|
518
|
-
django_cfg/apps/integrations/grpc/utils/proto_gen.py,sha256=
|
|
519
|
-
django_cfg/apps/integrations/grpc/utils/streaming_logger.py,sha256=
|
|
543
|
+
django_cfg/apps/integrations/grpc/utils/proto_gen.py,sha256=W8idEL7sVhLPXzdiSQBHpXRBzncuYUvbPclU-IPh1Io,14053
|
|
544
|
+
django_cfg/apps/integrations/grpc/utils/streaming_logger.py,sha256=tPQZIAG9zDw7MnS_1XN99uhFk0iKM5DOMHt-bHqxADo,13699
|
|
520
545
|
django_cfg/apps/integrations/grpc/views/__init__.py,sha256=vgdi6lFXcVEwk-TnuVGMy_KXGkFKhqBVpVFBZcOdNvg,461
|
|
521
546
|
django_cfg/apps/integrations/grpc/views/api_keys.py,sha256=7XtpIY9DByXqrxeAvh2Uqk7Nvp1NJuBgMQFFpJVzMeg,9296
|
|
522
|
-
django_cfg/apps/integrations/grpc/views/charts.py,sha256=
|
|
523
|
-
django_cfg/apps/integrations/grpc/views/config.py,sha256=
|
|
547
|
+
django_cfg/apps/integrations/grpc/views/charts.py,sha256=t1-H2EB21e1461IjFBV0pIN8lnQnQzpTemmYvPoPnDM,9137
|
|
548
|
+
django_cfg/apps/integrations/grpc/views/config.py,sha256=caDkfk2rRYHyEQVY9duL7RfPMWhx01TqBlOPh7kq_iw,7299
|
|
524
549
|
django_cfg/apps/integrations/grpc/views/monitoring.py,sha256=VC2IcWMMgESpiYqbFmxbKLS_3EWLEtyq2Ktd-lrph28,13512
|
|
525
550
|
django_cfg/apps/integrations/grpc/views/proto_files.py,sha256=s0c5wlk7Zv0B7CGNtrLjm062eVoHrCOfeNhDvZFpczg,7521
|
|
526
551
|
django_cfg/apps/integrations/grpc/views/services.py,sha256=eSVUSl4XVcxpfK8TwJaI6zXlkrWMMjtEQZfemK0Mi4Q,10775
|
|
@@ -651,10 +676,10 @@ django_cfg/core/validation.py,sha256=QmwGlNDa0MFG2OUmgykIUAaEotT55YNh-wAWSVxOAos
|
|
|
651
676
|
django_cfg/core/backends/__init__.py,sha256=5Qfza7oKQ8_UIHOs4ibhYvwtgAjngUqLrlwjKl_q124,38
|
|
652
677
|
django_cfg/core/backends/smtp.py,sha256=kWkNMG7UwLsHcFYSKRgrk1HbP9mU1fxzWYnalHXqoL8,2308
|
|
653
678
|
django_cfg/core/base/__init__.py,sha256=Z3bZvxejxk4vvWqmqTBLUi9XJpo6A_5Bq4R0J8q81Y4,116
|
|
654
|
-
django_cfg/core/base/config_model.py,sha256=
|
|
679
|
+
django_cfg/core/base/config_model.py,sha256=1SlYntY--6EWhkubCx9djh521ZRb1wbI_ooRQXL7dhk,22305
|
|
655
680
|
django_cfg/core/builders/__init__.py,sha256=jkInI7_jbxcjitapohw6QmbJPpacnnID6V1JovqtOFM,282
|
|
656
681
|
django_cfg/core/builders/apps_builder.py,sha256=E1WSZRmP2sVYfZg_2UitZi6jrd3wd8Cdr8ikgPufa8k,6775
|
|
657
|
-
django_cfg/core/builders/middleware_builder.py,sha256=
|
|
682
|
+
django_cfg/core/builders/middleware_builder.py,sha256=gVfHVKx3dSGlXoV_kXwhRLXyTp0hz9k4aiEvyXV39D4,3396
|
|
658
683
|
django_cfg/core/builders/security_builder.py,sha256=cE3V7irdRkMdaUaSxf24RgyG9Wx_ihauBLa72TQ87_8,24004
|
|
659
684
|
django_cfg/core/debug/README.md,sha256=zdASNAvWr1nOijngul2AY6nAPYxBjanYIXveLHmX5bA,2968
|
|
660
685
|
django_cfg/core/debug/__init__.py,sha256=Y3660Ouzcg9sCYotqtnpcY1XaBb-u8oa5ga_TfRevi4,127
|
|
@@ -719,6 +744,7 @@ django_cfg/management/commands/generate_clients.py,sha256=Ziyo1i9QGFVULPHf1iosp8
|
|
|
719
744
|
django_cfg/management/commands/list_urls.py,sha256=8omYzdie8p_8kP9oWS22AjXt6BGSezJGxUdX92mNtYc,10737
|
|
720
745
|
django_cfg/management/commands/migrate_all.py,sha256=Rp9uUMcThQEVSthsrEaVjiH_STGBx90BaApNwK4SDbs,5617
|
|
721
746
|
django_cfg/management/commands/migrator.py,sha256=6EchuTCtSPa1uOmZoqIi80JHKnYOclSNqw-Aas6UYd8,16226
|
|
747
|
+
django_cfg/management/commands/pool_status.py,sha256=aQlSHG2VJasOq7NSl86k38--76AedY4wS_by1kgDrDw,6070
|
|
722
748
|
django_cfg/management/commands/runserver_ngrok.py,sha256=FEkYBkAssUNp9JPbJl6yCxaiM3xuFt12XMV8fA36Pnc,591
|
|
723
749
|
django_cfg/management/commands/script.py,sha256=2pO4zbUz0QBF8HMPPrajRiFTPM-WY-MZbGIPYdqstEM,16898
|
|
724
750
|
django_cfg/management/commands/show_config.py,sha256=RPFlTX2GH_8C2ssIvFCaQ-xJrtf8DD43jKX0lg1lGf4,8604
|
|
@@ -737,6 +763,7 @@ django_cfg/middleware/__init__.py,sha256=EVah9AYIWT3R8inTqPY20oB4xb-KejhwqngM1Z4
|
|
|
737
763
|
django_cfg/middleware/admin_notifications.py,sha256=EVoXjSLaDz4r-lL5hy6V9sC1BpNF0rKsa-s6L31foRQ,6856
|
|
738
764
|
django_cfg/middleware/authentication.py,sha256=iwQLHyHSSLe4tazEJHuOUn3X3TcqgX9JZ5zfxQTzbZw,6148
|
|
739
765
|
django_cfg/middleware/pagination.py,sha256=5xhvk3fYCJ0Mmjer-BFl1tdzXBlmGahOvgwMMCQ95ck,8677
|
|
766
|
+
django_cfg/middleware/pool_cleanup.py,sha256=JmkApgFUvpcZMtOqjiPSEcS5v3BmyKigfeNaEA4ke8o,8471
|
|
740
767
|
django_cfg/middleware/public_endpoints.py,sha256=p-VCjeu0k7B4OuQIe2OVUx7Onh9gsM2HweWcYNxEaRA,6775
|
|
741
768
|
django_cfg/middleware/user_activity.py,sha256=bgftHXXeGBS-jCa8mLzTx4Gcz2fHTaQz_nbRCR5Yqio,5980
|
|
742
769
|
django_cfg/mixins/__init__.py,sha256=3nJ5PySz233LJCKC5x5iqqh9P_C2n-KxNKxAEY5tVao,284
|
|
@@ -756,7 +783,7 @@ django_cfg/models/api/drf/redoc.py,sha256=XNNWnMwkfIhtkCUt_KiPtc0-Nw0E3jvQOIjwcd
|
|
|
756
783
|
django_cfg/models/api/drf/spectacular.py,sha256=UYBATiEY3qzx0IlTvCyhpymASO2Wej_j-gQsgL03Nec,5020
|
|
757
784
|
django_cfg/models/api/drf/swagger.py,sha256=ku_eE7bWgHxjXD6Z2sEKSYE-bIzmZfAR0vQW9xqlG4Q,2127
|
|
758
785
|
django_cfg/models/api/grpc/__init__.py,sha256=1xv125eMwbydphFqcSVznyN2RvIL5BK1abTeIV7L5BI,1357
|
|
759
|
-
django_cfg/models/api/grpc/config.py,sha256=
|
|
786
|
+
django_cfg/models/api/grpc/config.py,sha256=XLwEnW6pu4EBfwTfj2hx1H6-XkvZm9w3uk1ZaZwSohM,14431
|
|
760
787
|
django_cfg/models/base/__init__.py,sha256=f6sMVyd-YEFdLebmIKOOPviu1Ovn4BHGp7j7ZVNqFDo,271
|
|
761
788
|
django_cfg/models/base/config.py,sha256=hfpf35yMR8oOE1J0SBPNNSBwXckK3F2-Iv0Vw6cNX4E,10114
|
|
762
789
|
django_cfg/models/base/module.py,sha256=nxN1Y9J4l94kOfSXLQJ2eGgIGWTq8kyh7hUGvCQNyIs,2674
|
|
@@ -773,8 +800,8 @@ django_cfg/models/infrastructure/cache.py,sha256=-eN2GjDJo-4Ta6b4hamG-AuBHNEKoYK
|
|
|
773
800
|
django_cfg/models/infrastructure/logging.py,sha256=dbbDJ0hjJKigKKTmqKnh7hkLzmipm3_abp-whaK1lOY,10314
|
|
774
801
|
django_cfg/models/infrastructure/security.py,sha256=8KiZSCzyXYugvDnb-Y9fLnZo0UDlq63064kAow-WAgk,6593
|
|
775
802
|
django_cfg/models/infrastructure/database/__init__.py,sha256=3BXDKeJwvjyFws4MAjox_PIp_g0N1YuXv6qNjRb7wqQ,500
|
|
776
|
-
django_cfg/models/infrastructure/database/config.py,sha256=
|
|
777
|
-
django_cfg/models/infrastructure/database/converters.py,sha256=
|
|
803
|
+
django_cfg/models/infrastructure/database/config.py,sha256=InBE1sG5EQ7MeMwD2lAEKacLen8g7akBUm2GhXe7Q24,8478
|
|
804
|
+
django_cfg/models/infrastructure/database/converters.py,sha256=cIqQqDm62C1UqyTw9YJUkJtDrX23rXc-KKJ8o2ck9EA,3193
|
|
778
805
|
django_cfg/models/infrastructure/database/parsers.py,sha256=8q1hq95SHKHxL2_AcHRc9HkSB_ide1zTjbDn_WDyQXk,2667
|
|
779
806
|
django_cfg/models/infrastructure/database/routing.py,sha256=Z22AeCjKJB-aV0Scq9u1RDTRspKEf4jmCKwzWLIqDOk,1999
|
|
780
807
|
django_cfg/models/infrastructure/database/validators.py,sha256=VA6Y-t7DdU7cWI42kXTxUKMhf1XwNJ6_NkxPWlXv-l8,5854
|
|
@@ -820,7 +847,7 @@ django_cfg/modules/django_admin/templates/django_admin/widgets/encrypted_field.h
|
|
|
820
847
|
django_cfg/modules/django_admin/templates/django_admin/widgets/encrypted_password.html,sha256=BdiM0CqRyBH1aHGf6iLSfSKOoADY5qaqetbC9AktzaI,2154
|
|
821
848
|
django_cfg/modules/django_admin/utils/__init__.py,sha256=Y0c62CUe41GNsz6ibbYaj7rSOg5Cq8kHDUvAH4eySTo,1712
|
|
822
849
|
django_cfg/modules/django_admin/utils/decorators.py,sha256=s4jTcgPklY4T4xjXsMHpShd71K_LzgKogem9JKBgNzk,8371
|
|
823
|
-
django_cfg/modules/django_admin/utils/html_builder.py,sha256=
|
|
850
|
+
django_cfg/modules/django_admin/utils/html_builder.py,sha256=TTbelsi_mhtoqe2Uxs8890uD1Q9Km_2H9DSczo7UjhI,2256
|
|
824
851
|
django_cfg/modules/django_admin/utils/badges/__init__.py,sha256=_S5uUxavLG0ouUWrsVqBF1CSLrcxWTb5GlRmTuev_l0,250
|
|
825
852
|
django_cfg/modules/django_admin/utils/badges/status_badges.py,sha256=kOShlu3MZv7kjhtpxPgub0t91CBMb8Mm3ZZvTMh_Gyo,6331
|
|
826
853
|
django_cfg/modules/django_admin/utils/displays/__init__.py,sha256=q0N2kForOp2IRhnMTmj2tJRx7P1ekTu425vHHZ63UI8,258
|
|
@@ -829,7 +856,7 @@ django_cfg/modules/django_admin/utils/html/__init__.py,sha256=22_xZ2Mlec5U-eSRZw
|
|
|
829
856
|
django_cfg/modules/django_admin/utils/html/badges.py,sha256=FaqTDhVu8-cKXs-YJBcEOfP0_NjnBGW21q58OBlRMDE,2074
|
|
830
857
|
django_cfg/modules/django_admin/utils/html/base.py,sha256=HWhGTRy1pXFcK2v2Gds7psFDze1S-GS89HDlrmWLq3M,5302
|
|
831
858
|
django_cfg/modules/django_admin/utils/html/code.py,sha256=yBhBjEWI0o9NlB-EJiHFmyxzPDh8wH3iJwv7kB6HDw8,3012
|
|
832
|
-
django_cfg/modules/django_admin/utils/html/composition.py,sha256=
|
|
859
|
+
django_cfg/modules/django_admin/utils/html/composition.py,sha256=x-uarh_0QslLQ_kxq5wT3sAOzk0jbz9KEqfnv8b7UgM,9262
|
|
833
860
|
django_cfg/modules/django_admin/utils/html/formatting.py,sha256=EeSHyObFGPr2Ie6KbySE8WBQtqUFT_BQfXf0oucigIU,8613
|
|
834
861
|
django_cfg/modules/django_admin/utils/html/keyvalue.py,sha256=cBw2RPE3J_3kENYSYNxpm8eY56bwp5yityxBl6N4_q8,7299
|
|
835
862
|
django_cfg/modules/django_admin/utils/html/markdown_integration.py,sha256=r28EyVtma9YfCnSoDDbBthWrZtT9LVmhcXSwe4OG4Ws,3372
|
|
@@ -955,7 +982,7 @@ django_cfg/modules/django_client/core/generator/typescript/templates/utils/schem
|
|
|
955
982
|
django_cfg/modules/django_client/core/generator/typescript/templates/utils/storage.ts.jinja,sha256=Sbszp1L7b1pN9EScq7c2WmltdC7yXrbqU55v4FmRdT0,4899
|
|
956
983
|
django_cfg/modules/django_client/core/groups/__init__.py,sha256=4n80S-cdywX4wITntbo9tsmVwv8iRQEkPKrtsaXz7jQ,226
|
|
957
984
|
django_cfg/modules/django_client/core/groups/detector.py,sha256=nCCqpXPGNznm57KzyuriL0D7hBJ2yGA3woL9upf4i5o,5543
|
|
958
|
-
django_cfg/modules/django_client/core/groups/manager.py,sha256=
|
|
985
|
+
django_cfg/modules/django_client/core/groups/manager.py,sha256=MBXVhHBb19antrrbwFWP47v9y2OMz0oQ1RAz406Yip4,11201
|
|
959
986
|
django_cfg/modules/django_client/core/ir/__init__.py,sha256=58JBUka_gxjScbyTqGKrjOhIPbPQVqdyMMqs13vrSx0,2009
|
|
960
987
|
django_cfg/modules/django_client/core/ir/context.py,sha256=We-XTjfhEOlasUv2wMhDuZonQ10O8c2-i5hJWcXRD-k,13801
|
|
961
988
|
django_cfg/modules/django_client/core/ir/operation.py,sha256=gwvTciqIAUS0Hb7TqVU1Zr_StU9ulG3Vf73V7jYTp_U,17182
|
|
@@ -980,7 +1007,7 @@ django_cfg/modules/django_client/core/validation/rules/base.py,sha256=xVJli0eSEz
|
|
|
980
1007
|
django_cfg/modules/django_client/core/validation/rules/type_hints.py,sha256=hwjTMADillsTPruDvXZQeZMj4LVV443zxY9o0Gqgg6k,10200
|
|
981
1008
|
django_cfg/modules/django_client/management/__init__.py,sha256=mCTPP_bIOmqNnn0WAG2n4BuF6zwc9PTgdZr_dORfNDk,54
|
|
982
1009
|
django_cfg/modules/django_client/management/commands/__init__.py,sha256=CJ55pHUNYQ5h-QHUe3axeTtxzlUJv7wbEuZmGN21iCM,36
|
|
983
|
-
django_cfg/modules/django_client/management/commands/generate_client.py,sha256=
|
|
1010
|
+
django_cfg/modules/django_client/management/commands/generate_client.py,sha256=HsZgmM3Zsm57epkRWUTt6xHEeBzmh815Ci0wuvgrjgM,31718
|
|
984
1011
|
django_cfg/modules/django_client/management/commands/validate_openapi.py,sha256=1qQcrR3mG9BIEG-0mpceFxBt-b457M5o71T8DEvyQl4,11091
|
|
985
1012
|
django_cfg/modules/django_client/spectacular/__init__.py,sha256=M8fG-odu2ltkG36aMMr0KDkCKGX676TwdrJO8vky2cI,345
|
|
986
1013
|
django_cfg/modules/django_client/spectacular/async_detection.py,sha256=S_pwGR7_2SIWHjZJyiu7SCfySF3Nr3P8eqjDyBSkkLs,5731
|
|
@@ -1069,7 +1096,7 @@ django_cfg/modules/django_llm/translator/utils/__init__.py,sha256=t_sZIH4BT6UJzS
|
|
|
1069
1096
|
django_cfg/modules/django_llm/translator/utils/prompt_builder.py,sha256=ZSOnm9_eoG_aCd2XT1HV_fzw8Sq9mrssTGF7Gm0tRXc,3352
|
|
1070
1097
|
django_cfg/modules/django_llm/translator/utils/text_utils.py,sha256=_7Z4n1oi2_Zl3NU8kbRiLa2dCRViyzFG6-sUIcEmnmE,2925
|
|
1071
1098
|
django_cfg/modules/django_logging/__init__.py,sha256=rVDB2mpMnxtnMMb1svphxCPDy3nnekVwfZyJOP3lk9s,378
|
|
1072
|
-
django_cfg/modules/django_logging/django_logger.py,sha256=
|
|
1099
|
+
django_cfg/modules/django_logging/django_logger.py,sha256=YfQChJK8ElIM6-YHep7C-tdQEGpj3l3W5KxZ1eRiDUY,14195
|
|
1073
1100
|
django_cfg/modules/django_logging/logger.py,sha256=_8v70X5imm1KLDjMsgID5tTtpG6eSh4ozFZfYnb0IU4,10915
|
|
1074
1101
|
django_cfg/modules/django_ngrok/__init__.py,sha256=CYHHSKRIHIP3E_NpUnFX-D2exWZK8o_6wfqh1T8ZIyo,792
|
|
1075
1102
|
django_cfg/modules/django_ngrok/service.py,sha256=Xkh9Gl6Rth32UcT0UYjD0ckROHFw6FJLKDtg3VzWLQY,9304
|
|
@@ -1154,7 +1181,7 @@ django_cfg/static/admin/js/alpine/commands-section.js,sha256=8z2MQNwZF9Tx_2EK1AY
|
|
|
1154
1181
|
django_cfg/static/admin/js/alpine/dashboard-tabs.js,sha256=ob8Q_I9lFLDv_hFERXgTyvqMDBspAGfzCxI_7slRur4,1354
|
|
1155
1182
|
django_cfg/static/admin/js/alpine/system-metrics.js,sha256=m-Fg55K_vpHXToD46PXL9twl4OBF_V9MONvbSWbQqDw,440
|
|
1156
1183
|
django_cfg/static/admin/js/alpine/toggle-section.js,sha256=T141NFmy0fRJyGGuuaCJRjJXwPam-xxtQNW1hi8BJbc,672
|
|
1157
|
-
django_cfg/static/frontend/admin.zip,sha256=
|
|
1184
|
+
django_cfg/static/frontend/admin.zip,sha256=T5_NtV-j-f-7eCuJdqoKBESib_yj0DL11HL_TztiwsM,24302314
|
|
1158
1185
|
django_cfg/static/js/api-loader.mjs,sha256=boGqqRGnFR-Mzo_RQOjhAzNvsb7QxZddSwMKROzkk9Q,5163
|
|
1159
1186
|
django_cfg/static/js/api/base.mjs,sha256=KUxZHHdELAV8mNnACpwJRvaQhdJxp-n5LFEQ4oUZxBo,4707
|
|
1160
1187
|
django_cfg/static/js/api/index.mjs,sha256=_-Q04jjHcgwi4CGfiaLyiOR6NW7Yu1HBhJWp2J1cjpc,2538
|
|
@@ -1177,7 +1204,7 @@ django_cfg/static/js/api/tasks/client.mjs,sha256=tIy8K-finXzTUL9kOo_L4Q1kchDaHyu
|
|
|
1177
1204
|
django_cfg/static/js/api/tasks/index.mjs,sha256=yCY1GzdD-RtFZ3pAfk1l0msgO1epyo0lsGCjH0g1Afc,294
|
|
1178
1205
|
django_cfg/templates/__init__.py,sha256=IzLjt-a7VIJ0OutmAE1_-w0_LpL2u0MgGpnIabjZuW8,19
|
|
1179
1206
|
django_cfg/templates/admin/DUAL_TAB_ARCHITECTURE.md,sha256=CL8E3K4rFpXeQiNgrYSMvCW1y-eFaoXxxsI58zPf9dY,17562
|
|
1180
|
-
django_cfg/templates/admin/index.html,sha256=
|
|
1207
|
+
django_cfg/templates/admin/index.html,sha256=qF821_eo6eCx1PeBmw9q3P498iN6F6FgVMqt1Z3cHDs,34897
|
|
1181
1208
|
django_cfg/templates/admin/constance/includes/results_list.html,sha256=Itzs1lGqOYg6ftJUjQ1jWmsbdXDKdov3cDtqMllxih8,3835
|
|
1182
1209
|
django_cfg/templates/emails/base_email.html,sha256=TWcvYa2IHShlF_E8jf1bWZStRO0v8G4L_GexPxvz6XQ,8836
|
|
1183
1210
|
django_cfg/templates/unfold/layouts/skeleton.html,sha256=2ArkcNZ34mFs30cOAsTQ1EZiDXcB0aVxkO71lJq9SLE,718
|
|
@@ -1185,14 +1212,15 @@ django_cfg/templatetags/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG
|
|
|
1185
1212
|
django_cfg/templatetags/django_cfg.py,sha256=7vAxJ56vggN9ZEFmV_pUNhSiWjX2nF_4IhaC0Mp82hI,12429
|
|
1186
1213
|
django_cfg/utils/__init__.py,sha256=64wwXJuXytvwt8Ze_erSR2HmV07nGWJ6DV5wloRBvYE,435
|
|
1187
1214
|
django_cfg/utils/path_resolution.py,sha256=2n0I04lQkSssFaELu3A93YyMAl1K10KPdpxMt5k4Iy0,13341
|
|
1188
|
-
django_cfg/utils/
|
|
1215
|
+
django_cfg/utils/pool_monitor.py,sha256=AiYdWo-6Q00MT-fRU_wzoc8vzvWpZZi-G00BYf0qZKI,11523
|
|
1216
|
+
django_cfg/utils/smart_defaults.py,sha256=2XM0aBmfL9U1b0eGbrGFf8j7mPPsmyQSZXY2mE21zqs,16975
|
|
1189
1217
|
django_cfg/utils/version_check.py,sha256=WO51J2m2e-wVqWCRwbultEwu3q1lQasV67Mw2aa5jlw,4711
|
|
1190
1218
|
django_cfg/CHANGELOG.md,sha256=jtT3EprqEJkqSUh7IraP73vQ8PmKUMdRtznQsEnqDZk,2052
|
|
1191
1219
|
django_cfg/CONTRIBUTING.md,sha256=DU2kyQ6PU0Z24ob7O_OqKWEYHcZmJDgzw-lQCmu6uBg,3041
|
|
1192
1220
|
django_cfg/LICENSE,sha256=xHuytiUkSZCRG3N11nk1X6q1_EGQtv6aL5O9cqNRhKE,1071
|
|
1193
|
-
django_cfg/pyproject.toml,sha256=
|
|
1194
|
-
django_cfg-1.5.
|
|
1195
|
-
django_cfg-1.5.
|
|
1196
|
-
django_cfg-1.5.
|
|
1197
|
-
django_cfg-1.5.
|
|
1198
|
-
django_cfg-1.5.
|
|
1221
|
+
django_cfg/pyproject.toml,sha256=5zsoysCAJSPz41gaD1lnRT_jebaXJbKqQO8TNxp8WvA,8868
|
|
1222
|
+
django_cfg-1.5.29.dist-info/METADATA,sha256=xS2dloSDCHxM1rCDLBBaUQy7XvJC1mdTsvK2BMBIGl8,28377
|
|
1223
|
+
django_cfg-1.5.29.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
1224
|
+
django_cfg-1.5.29.dist-info/entry_points.txt,sha256=Ucmde4Z2wEzgb4AggxxZ0zaYDb9HpyE5blM3uJ0_VNg,56
|
|
1225
|
+
django_cfg-1.5.29.dist-info/licenses/LICENSE,sha256=xHuytiUkSZCRG3N11nk1X6q1_EGQtv6aL5O9cqNRhKE,1071
|
|
1226
|
+
django_cfg-1.5.29.dist-info/RECORD,,
|