django-cfg 1.2.22__py3-none-any.whl ā 1.2.25__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- django_cfg/__init__.py +1 -1
- django_cfg/apps/knowbase/tasks/archive_tasks.py +6 -6
- django_cfg/apps/knowbase/tasks/document_processing.py +3 -3
- django_cfg/apps/knowbase/tasks/external_data_tasks.py +2 -2
- django_cfg/apps/knowbase/tasks/maintenance.py +3 -3
- django_cfg/apps/payments/admin/__init__.py +23 -0
- django_cfg/apps/payments/admin/api_keys_admin.py +347 -0
- django_cfg/apps/payments/admin/balance_admin.py +434 -0
- django_cfg/apps/payments/admin/currencies_admin.py +186 -0
- django_cfg/apps/payments/admin/filters.py +259 -0
- django_cfg/apps/payments/admin/payments_admin.py +142 -0
- django_cfg/apps/payments/admin/subscriptions_admin.py +227 -0
- django_cfg/apps/payments/admin/tariffs_admin.py +199 -0
- django_cfg/apps/payments/config/__init__.py +65 -0
- django_cfg/apps/payments/config/module.py +70 -0
- django_cfg/apps/payments/config/providers.py +115 -0
- django_cfg/apps/payments/config/settings.py +96 -0
- django_cfg/apps/payments/config/utils.py +52 -0
- django_cfg/apps/payments/decorators.py +291 -0
- django_cfg/apps/payments/management/__init__.py +3 -0
- django_cfg/apps/payments/management/commands/README.md +178 -0
- django_cfg/apps/payments/management/commands/__init__.py +3 -0
- django_cfg/apps/payments/management/commands/currency_stats.py +323 -0
- django_cfg/apps/payments/management/commands/populate_currencies.py +246 -0
- django_cfg/apps/payments/management/commands/update_currencies.py +336 -0
- django_cfg/apps/payments/managers/currency_manager.py +65 -14
- django_cfg/apps/payments/middleware/api_access.py +294 -0
- django_cfg/apps/payments/middleware/rate_limiting.py +216 -0
- django_cfg/apps/payments/middleware/usage_tracking.py +296 -0
- django_cfg/apps/payments/migrations/0001_initial.py +125 -11
- django_cfg/apps/payments/models/__init__.py +18 -0
- django_cfg/apps/payments/models/api_keys.py +2 -2
- django_cfg/apps/payments/models/balance.py +2 -2
- django_cfg/apps/payments/models/base.py +16 -0
- django_cfg/apps/payments/models/events.py +2 -2
- django_cfg/apps/payments/models/payments.py +112 -2
- django_cfg/apps/payments/models/subscriptions.py +2 -2
- django_cfg/apps/payments/services/__init__.py +64 -7
- django_cfg/apps/payments/services/billing/__init__.py +8 -0
- django_cfg/apps/payments/services/cache/__init__.py +15 -0
- django_cfg/apps/payments/services/cache/base.py +30 -0
- django_cfg/apps/payments/services/cache/simple_cache.py +135 -0
- django_cfg/apps/payments/services/core/__init__.py +17 -0
- django_cfg/apps/payments/services/core/balance_service.py +447 -0
- django_cfg/apps/payments/services/core/fallback_service.py +432 -0
- django_cfg/apps/payments/services/core/payment_service.py +576 -0
- django_cfg/apps/payments/services/core/subscription_service.py +614 -0
- django_cfg/apps/payments/services/internal_types.py +297 -0
- django_cfg/apps/payments/services/middleware/__init__.py +8 -0
- django_cfg/apps/payments/services/monitoring/__init__.py +22 -0
- django_cfg/apps/payments/services/monitoring/api_schemas.py +222 -0
- django_cfg/apps/payments/services/monitoring/provider_health.py +372 -0
- django_cfg/apps/payments/services/providers/__init__.py +22 -0
- django_cfg/apps/payments/services/providers/base.py +137 -0
- django_cfg/apps/payments/services/providers/cryptapi.py +273 -0
- django_cfg/apps/payments/services/providers/cryptomus.py +310 -0
- django_cfg/apps/payments/services/providers/nowpayments.py +293 -0
- django_cfg/apps/payments/services/providers/registry.py +103 -0
- django_cfg/apps/payments/services/security/__init__.py +34 -0
- django_cfg/apps/payments/services/security/error_handler.py +637 -0
- django_cfg/apps/payments/services/security/payment_notifications.py +342 -0
- django_cfg/apps/payments/services/security/webhook_validator.py +475 -0
- django_cfg/apps/payments/services/validators/__init__.py +8 -0
- django_cfg/apps/payments/signals/__init__.py +13 -0
- django_cfg/apps/payments/signals/api_key_signals.py +160 -0
- django_cfg/apps/payments/signals/payment_signals.py +128 -0
- django_cfg/apps/payments/signals/subscription_signals.py +196 -0
- django_cfg/apps/payments/tasks/__init__.py +12 -0
- django_cfg/apps/payments/tasks/webhook_processing.py +177 -0
- django_cfg/apps/payments/urls.py +5 -5
- django_cfg/apps/payments/utils/__init__.py +45 -0
- django_cfg/apps/payments/utils/billing_utils.py +342 -0
- django_cfg/apps/payments/utils/config_utils.py +245 -0
- django_cfg/apps/payments/utils/middleware_utils.py +228 -0
- django_cfg/apps/payments/utils/validation_utils.py +94 -0
- django_cfg/apps/payments/views/payment_views.py +40 -2
- django_cfg/apps/payments/views/webhook_views.py +266 -0
- django_cfg/apps/payments/viewsets.py +65 -0
- django_cfg/apps/support/signals.py +16 -4
- django_cfg/apps/support/templates/support/chat/ticket_chat.html +1 -1
- django_cfg/cli/README.md +2 -2
- django_cfg/cli/commands/create_project.py +1 -1
- django_cfg/cli/commands/info.py +1 -1
- django_cfg/cli/main.py +1 -1
- django_cfg/cli/utils.py +5 -5
- django_cfg/core/config.py +18 -4
- django_cfg/models/payments.py +546 -0
- django_cfg/models/revolution.py +1 -1
- django_cfg/models/tasks.py +51 -2
- django_cfg/modules/base.py +12 -6
- django_cfg/modules/django_currency/README.md +104 -269
- django_cfg/modules/django_currency/__init__.py +99 -41
- django_cfg/modules/django_currency/clients/__init__.py +11 -0
- django_cfg/modules/django_currency/clients/coingecko_client.py +257 -0
- django_cfg/modules/django_currency/clients/yfinance_client.py +246 -0
- django_cfg/modules/django_currency/core/__init__.py +42 -0
- django_cfg/modules/django_currency/core/converter.py +169 -0
- django_cfg/modules/django_currency/core/exceptions.py +28 -0
- django_cfg/modules/django_currency/core/models.py +54 -0
- django_cfg/modules/django_currency/database/__init__.py +25 -0
- django_cfg/modules/django_currency/database/database_loader.py +507 -0
- django_cfg/modules/django_currency/utils/__init__.py +9 -0
- django_cfg/modules/django_currency/utils/cache.py +92 -0
- django_cfg/modules/django_email.py +42 -4
- django_cfg/modules/django_unfold/dashboard.py +20 -0
- django_cfg/registry/core.py +10 -0
- django_cfg/template_archive/__init__.py +0 -0
- django_cfg/template_archive/django_sample.zip +0 -0
- {django_cfg-1.2.22.dist-info ā django_cfg-1.2.25.dist-info}/METADATA +11 -6
- {django_cfg-1.2.22.dist-info ā django_cfg-1.2.25.dist-info}/RECORD +113 -50
- django_cfg/apps/agents/examples/__init__.py +0 -3
- django_cfg/apps/agents/examples/simple_example.py +0 -161
- django_cfg/apps/knowbase/examples/__init__.py +0 -3
- django_cfg/apps/knowbase/examples/external_data_usage.py +0 -191
- django_cfg/apps/knowbase/mixins/examples/vehicle_model_example.py +0 -199
- django_cfg/apps/payments/services/base.py +0 -68
- django_cfg/apps/payments/services/nowpayments.py +0 -78
- django_cfg/apps/payments/services/providers.py +0 -77
- django_cfg/apps/payments/services/redis_service.py +0 -215
- django_cfg/modules/django_currency/cache.py +0 -430
- django_cfg/modules/django_currency/converter.py +0 -324
- django_cfg/modules/django_currency/service.py +0 -277
- {django_cfg-1.2.22.dist-info ā django_cfg-1.2.25.dist-info}/WHEEL +0 -0
- {django_cfg-1.2.22.dist-info ā django_cfg-1.2.25.dist-info}/entry_points.txt +0 -0
- {django_cfg-1.2.22.dist-info ā django_cfg-1.2.25.dist-info}/licenses/LICENSE +0 -0
@@ -163,8 +163,28 @@ class DashboardManager(BaseCfgModule):
|
|
163
163
|
]
|
164
164
|
))
|
165
165
|
|
166
|
+
# Add Payments section if enabled
|
167
|
+
if self.is_payments_enabled():
|
168
|
+
navigation_sections.append(NavigationSection(
|
169
|
+
title="Payments",
|
170
|
+
separator=True,
|
171
|
+
collapsible=True,
|
172
|
+
items=[
|
173
|
+
NavigationItem(title="Payments", icon=Icons.ACCOUNT_BALANCE, link="/admin/django_cfg_payments/universalpayment/"),
|
174
|
+
NavigationItem(title="Subscriptions", icon=Icons.PERSON_ADD, link="/admin/django_cfg_payments/subscription/"),
|
175
|
+
NavigationItem(title="API Keys", icon=Icons.KEY, link="/admin/django_cfg_payments/apikey/"),
|
176
|
+
NavigationItem(title="Balances", icon=Icons.ACCOUNT_BALANCE_WALLET, link="/admin/django_cfg_payments/userbalance/"),
|
177
|
+
NavigationItem(title="Transactions", icon=Icons.DESCRIPTION, link="/admin/django_cfg_payments/transaction/"),
|
178
|
+
NavigationItem(title="Currencies", icon=Icons.ACCOUNT_CIRCLE, link="/admin/django_cfg_payments/currency/"),
|
179
|
+
NavigationItem(title="Currency Networks", icon=Icons.LINK, link="/admin/django_cfg_payments/currencynetwork/"),
|
180
|
+
NavigationItem(title="Endpoint Groups", icon=Icons.GROUP, link="/admin/django_cfg_payments/endpointgroup/"),
|
181
|
+
NavigationItem(title="Tariffs", icon=Icons.SETTINGS, link="/admin/django_cfg_payments/tariff/"),
|
182
|
+
]
|
183
|
+
))
|
184
|
+
|
166
185
|
# Convert all NavigationSection objects to dictionaries
|
167
186
|
return [section.to_dict() for section in navigation_sections]
|
187
|
+
|
168
188
|
|
169
189
|
|
170
190
|
def get_unfold_config(self) -> Dict[str, Any]:
|
django_cfg/registry/core.py
CHANGED
@@ -41,6 +41,16 @@ CORE_REGISTRY = {
|
|
41
41
|
"TaskConfig": ("django_cfg.models.tasks", "TaskConfig"),
|
42
42
|
"DramatiqConfig": ("django_cfg.models.tasks", "DramatiqConfig"),
|
43
43
|
|
44
|
+
# Payment system models
|
45
|
+
"PaymentsConfig": ("django_cfg.models.payments", "PaymentsConfig"),
|
46
|
+
"PaymentProviderConfig": ("django_cfg.models.payments", "PaymentProviderConfig"),
|
47
|
+
"NowPaymentsConfig": ("django_cfg.models.payments", "NowPaymentsConfig"),
|
48
|
+
"CryptAPIConfig": ("django_cfg.models.payments", "CryptAPIConfig"),
|
49
|
+
"StripeConfig": ("django_cfg.models.payments", "StripeConfig"),
|
50
|
+
"create_nowpayments_config": ("django_cfg.models.payments", "create_nowpayments_config"),
|
51
|
+
"create_cryptapi_config": ("django_cfg.models.payments", "create_cryptapi_config"),
|
52
|
+
"create_stripe_config": ("django_cfg.models.payments", "create_stripe_config"),
|
53
|
+
|
44
54
|
# Pagination classes
|
45
55
|
"DefaultPagination": ("django_cfg.middleware.pagination", "DefaultPagination"),
|
46
56
|
"LargePagination": ("django_cfg.middleware.pagination", "LargePagination"),
|
File without changes
|
Binary file
|
@@ -1,12 +1,12 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: django-cfg
|
3
|
-
Version: 1.2.
|
3
|
+
Version: 1.2.25
|
4
4
|
Summary: š Next-gen Django configuration: type-safety, AI features, blazing-fast setup, and automated best practices ā all in one.
|
5
5
|
Project-URL: Homepage, https://djangocfg.com
|
6
6
|
Project-URL: Documentation, https://docs.djangocfg.com
|
7
|
-
Project-URL: Repository, https://github.com/
|
8
|
-
Project-URL: Issues, https://github.com/
|
9
|
-
Project-URL: Changelog, https://github.com/
|
7
|
+
Project-URL: Repository, https://github.com/markolofsen/django-cfg
|
8
|
+
Project-URL: Issues, https://github.com/markolofsen/django-cfg/issues
|
9
|
+
Project-URL: Changelog, https://github.com/markolofsen/django-cfg/blob/main/CHANGELOG.md
|
10
10
|
Author-email: Django-CFG Team <info@djangocfg.com>
|
11
11
|
Maintainer-email: Django-CFG Team <info@djangocfg.com>
|
12
12
|
License: MIT
|
@@ -64,6 +64,7 @@ Requires-Dist: ngrok>=1.5.1; python_version >= '3.12'
|
|
64
64
|
Requires-Dist: openai<2.0,>=1.107.0
|
65
65
|
Requires-Dist: pgvector<1.0,>=0.4.0
|
66
66
|
Requires-Dist: psycopg[binary,pool]<4.0,>=3.2.0
|
67
|
+
Requires-Dist: pycoingecko<4.0.0,>=3.2.0
|
67
68
|
Requires-Dist: pydantic-ai<2.0,>=1.0.10
|
68
69
|
Requires-Dist: pydantic-yaml<2.0,>=1.6.0
|
69
70
|
Requires-Dist: pydantic<3.0,>=2.11.0
|
@@ -76,10 +77,12 @@ Requires-Dist: redis<7.0,>=6.4.0
|
|
76
77
|
Requires-Dist: requests<3.0,>=2.32.0
|
77
78
|
Requires-Dist: rich<15.0,>=14.0.0
|
78
79
|
Requires-Dist: sendgrid<7.0,>=6.12.0
|
80
|
+
Requires-Dist: tenacity<10.0.0,>=9.1.2
|
79
81
|
Requires-Dist: tiktoken<1.0,>=0.11.0
|
80
82
|
Requires-Dist: toml<0.11.0,>=0.10.2
|
81
83
|
Requires-Dist: twilio<10.0,>=9.8.0
|
82
84
|
Requires-Dist: whitenoise<7.0,>=6.8.0
|
85
|
+
Requires-Dist: yfinance<0.3.0,>=0.2.66
|
83
86
|
Provides-Extra: dev
|
84
87
|
Requires-Dist: black<26.0,>=25.9; extra == 'dev'
|
85
88
|
Requires-Dist: build<2.0,>=1.3; extra == 'dev'
|
@@ -146,6 +149,7 @@ Description-Content-Type: text/markdown
|
|
146
149
|
|
147
150
|
# š Django-CFG: Enterprise Django Configuration Framework
|
148
151
|
|
152
|
+
|
149
153
|
[](https://pypi.org/project/django-cfg/)
|
150
154
|
[](https://pypi.org/project/django-cfg/)
|
151
155
|
[](https://pypi.org/project/django-cfg/)
|
@@ -205,6 +209,7 @@ python manage.py runserver
|
|
205
209
|
| **š« Support System** | ā Build from scratch | ā Build from scratch | ā Build from scratch | ā
**Enterprise ticketing** |
|
206
210
|
| **š¤ User Management** | š” Basic User model | š” Basic auth | ā Manual auth | ā
**OTP + SMS + Profiles** |
|
207
211
|
| **š§ Communication** | š” Basic email | ā Manual setup | ā Manual setup | ā
**Email + SMS + Telegram** |
|
212
|
+
| **š± Currency Conversion** | ā Manual API integration | ā Manual API integration | ā Manual API integration | ā
**Multi-threading 14K+ currencies** |
|
208
213
|
| **š Background Tasks** | š” Manual Celery | š” Manual Celery | ā Manual setup | ā
**Built-in Dramatiq** |
|
209
214
|
| **š Webhook Testing** | š” Manual ngrok | š” Manual ngrok | š” Manual ngrok | ā
**Integrated ngrok** |
|
210
215
|
| **š Production Deploy** | š” Manual config | š” Manual config | š” Manual config | ā
**Zero-config Docker** |
|
@@ -561,7 +566,7 @@ docker-compose up -d
|
|
561
566
|
### **š Enterprise Features**
|
562
567
|
- [**Built-in Applications**](https://docs.djangocfg.com/features/built-in-apps/accounts) - User management, support, CRM
|
563
568
|
- [**Maintenance Management**](https://docs.djangocfg.com/features/built-in-apps/maintenance) - Multi-site Cloudflare maintenance
|
564
|
-
- [**Modular System**](https://docs.djangocfg.com/features/modules/overview) - Email, SMS, LLM, currency modules
|
569
|
+
- [**Modular System**](https://docs.djangocfg.com/features/modules/overview) - Email, SMS, LLM, **currency conversion** modules
|
565
570
|
- [**Third-party Integrations**](https://docs.djangocfg.com/features/integrations/patterns) - Dramatiq, Twilio, ngrok
|
566
571
|
|
567
572
|
### **š¤ AI & Automation**
|
@@ -1022,4 +1027,4 @@ Django-CFG is built on the shoulders of giants:
|
|
1022
1027
|
|
1023
1028
|
## š SEO Keywords
|
1024
1029
|
|
1025
|
-
**Django configuration**, **Django type safety**, **Django enterprise**, **Pydantic Django**, **Django AI agents**, **Django background tasks**, **Django multi-database**, **Django production deployment**, **Django REST API**, **Django admin interface**, **Django authentication**, **Django CRM**, **Django support system**, **Django newsletter**, **Django CLI tools**, **Django Docker**, **Django ngrok**, **Django Twilio**, **Django SMS**, **Django OTP**, **Django Dramatiq**, **Django Redis**, **Django PostgreSQL**, **Django testing**, **Django migration**, **Django security**, **Django performance**, **Django scalability**, **Django monitoring**, **Django logging**, **Django webhooks**, **Django OpenAPI**, **Django Swagger**, **Django documentation**, **Django framework**, **Python Django**, **Django development**, **Django best practices**
|
1030
|
+
**Django configuration**, **Django type safety**, **Django enterprise**, **Pydantic Django**, **Django AI agents**, **Django background tasks**, **Django multi-database**, **Django production deployment**, **Django REST API**, **Django admin interface**, **Django authentication**, **Django CRM**, **Django support system**, **Django newsletter**, **Django CLI tools**, **Django Docker**, **Django ngrok**, **Django Twilio**, **Django SMS**, **Django OTP**, **Django Dramatiq**, **Django Redis**, **Django PostgreSQL**, **Django currency conversion**, **Django cryptocurrency**, **Django YFinance**, **Django CoinGecko**, **Django multi-threading**, **Django testing**, **Django migration**, **Django security**, **Django performance**, **Django scalability**, **Django monitoring**, **Django logging**, **Django webhooks**, **Django OpenAPI**, **Django Swagger**, **Django documentation**, **Django framework**, **Python Django**, **Django development**, **Django best practices**
|
@@ -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=u75qyot9NFryu7h0faTV0Wz4jBKQAh_5hKy33b9hX1E,1631
|
3
3
|
django_cfg/apps.py,sha256=k84brkeXJI7EgKZLEpTkM9YFZofKI4PzhFOn1cl9Msc,1656
|
4
4
|
django_cfg/config.py,sha256=ME-JKaVzcdmaGhuc1YTkEWoMKSaUasNf1SBlNz-NfrM,1399
|
5
5
|
django_cfg/urls.py,sha256=bpRFjMonQuk4UCUMxx4ueBX3YDNB7HXKFwEghQ3KR3o,793
|
@@ -73,8 +73,6 @@ django_cfg/apps/agents/core/dependencies.py,sha256=orodh1UXN-U6V3TvOB5ZYluG__ggV
|
|
73
73
|
django_cfg/apps/agents/core/exceptions.py,sha256=topfsv3TekVpMio8bhbsugpp2CTmR3nKjnUQamtJyTo,1858
|
74
74
|
django_cfg/apps/agents/core/models.py,sha256=JVNJ6kULgBvjuuZCXzFY1mQrYbaGdP9smj2p55k0YUI,4044
|
75
75
|
django_cfg/apps/agents/core/orchestrator.py,sha256=4kAIA2ksc9W3Rm2Kf_ELmDl4744vJugxpF1dlMd_Hh4,12930
|
76
|
-
django_cfg/apps/agents/examples/__init__.py,sha256=c4EcvvgKS0KP53VDDdYkLzXmTxADwCaaB5opHGLlHkk,42
|
77
|
-
django_cfg/apps/agents/examples/simple_example.py,sha256=P1RgYaA7jU7gmw3V2TykTEriAJTL3bwb78j3zgYmyDI,4666
|
78
76
|
django_cfg/apps/agents/integration/__init__.py,sha256=ZE2u9lT5RgnzlOB5DfYmHQbgkLwVjBD_h9EeiPs5Txo,310
|
79
77
|
django_cfg/apps/agents/integration/middleware.py,sha256=HE52iXZTTGoh7VrWaJ6fp6Wl7pUnH71WHTPcUG8I-dc,2861
|
80
78
|
django_cfg/apps/agents/integration/registry.py,sha256=yezp0dHXlGrvZMLl6prHQX2xkDMXtJ2n27f0sD9w_r0,11249
|
@@ -121,8 +119,6 @@ django_cfg/apps/knowbase/config/__init__.py,sha256=IArKoqnqUClMMkLvAs82bRZVTH5KV
|
|
121
119
|
django_cfg/apps/knowbase/config/constance_fields.py,sha256=RpkNE7dy8bfLP81HgHKOiEGrHKTFU87oGjApua9SC94,8193
|
122
120
|
django_cfg/apps/knowbase/config/constance_settings.py,sha256=KjxlHb3btxRyEYoOO-d_vW2glcy5cHp5cj4uWHg8-W0,7564
|
123
121
|
django_cfg/apps/knowbase/config/settings.py,sha256=X_h0MXId6ZFwZ19dizp5OGDZfmNmCJW9YEu6DOVFLPE,13295
|
124
|
-
django_cfg/apps/knowbase/examples/__init__.py,sha256=-uJe4FFA9h8DAg17HYI-7U10_zfH07dYL4ET1Ntq40o,81
|
125
|
-
django_cfg/apps/knowbase/examples/external_data_usage.py,sha256=bUaIBkUkeucdPQGyYDVY_lpZ1wcA_voK7uVPiskxebo,6398
|
126
122
|
django_cfg/apps/knowbase/management/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
127
123
|
django_cfg/apps/knowbase/management/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
128
124
|
django_cfg/apps/knowbase/management/commands/knowbase_stats.py,sha256=V9APmqzfs6l6-z5Oh1cdEkiP3txxWq1ZNN3DEM2EDXA,6114
|
@@ -141,7 +137,6 @@ django_cfg/apps/knowbase/mixins/config.py,sha256=Lptwhneyg2sNv15BS2EO9d2Syrz0spC
|
|
141
137
|
django_cfg/apps/knowbase/mixins/creator.py,sha256=icFzOfWyO6asXsJPteescZXcB5aLg0gu2-9f4GXetN0,2907
|
142
138
|
django_cfg/apps/knowbase/mixins/external_data_mixin.py,sha256=GJuc0HXJK4Po4knx_9NW039teLl7ofkgxml7ySx_Ugc,33275
|
143
139
|
django_cfg/apps/knowbase/mixins/service.py,sha256=QvB2K5LKSgU99C63sj-JLLKgdRXybizxwOk2AvzfMnk,13438
|
144
|
-
django_cfg/apps/knowbase/mixins/examples/vehicle_model_example.py,sha256=tTW7Aee3EroeWdWbD6IyBddJW9sWVjQFdD60AoGy5-8,7007
|
145
140
|
django_cfg/apps/knowbase/models/__init__.py,sha256=MnMzbOZTB3dlo0IU1VsgQVY1uPOgU6FtQFiAUyaK6AU,742
|
146
141
|
django_cfg/apps/knowbase/models/archive.py,sha256=qNSfOvfAf3oDzpiGjgZH7v2JjLMz2Yt7CdrEUxd7bUM,18600
|
147
142
|
django_cfg/apps/knowbase/models/base.py,sha256=ojkeEige-Z4W4HV96FSL3phjipVUwbUzKjRzWl_28vM,1478
|
@@ -179,10 +174,10 @@ django_cfg/apps/knowbase/signals/chat_signals.py,sha256=K7fu1o4RmAbh3Ag9hygJQTSv
|
|
179
174
|
django_cfg/apps/knowbase/signals/document_signals.py,sha256=CFzcrxZg2qcszTg_SbbtoNPaSo5Ja-TiaGTr9wqH2mw,5786
|
180
175
|
django_cfg/apps/knowbase/signals/external_data_signals.py,sha256=XzKDU4Ml64T6wnBF1bTUkeSkQ3p3gXXPC2GhGZvnVZE,7187
|
181
176
|
django_cfg/apps/knowbase/tasks/__init__.py,sha256=F4eMeSoKVu7d1Wboc52Ash4NEIeYG5j6yvch9GgrB2U,908
|
182
|
-
django_cfg/apps/knowbase/tasks/archive_tasks.py,sha256=
|
183
|
-
django_cfg/apps/knowbase/tasks/document_processing.py,sha256=
|
184
|
-
django_cfg/apps/knowbase/tasks/external_data_tasks.py,sha256=
|
185
|
-
django_cfg/apps/knowbase/tasks/maintenance.py,sha256=
|
177
|
+
django_cfg/apps/knowbase/tasks/archive_tasks.py,sha256=nu5MrnBKqKW0GtoPOIiUxH-zQ8EZ4cMtaeIumNt0d4c,10031
|
178
|
+
django_cfg/apps/knowbase/tasks/document_processing.py,sha256=ZrviGaAQGRLErU5LKoigZTfpKXse9R0-ODqDKT0j5zw,12993
|
179
|
+
django_cfg/apps/knowbase/tasks/external_data_tasks.py,sha256=3VKwAvSKKSwZXUN5ooXLsaBHbMKJVFuqmkEAo6aowPo,12342
|
180
|
+
django_cfg/apps/knowbase/tasks/maintenance.py,sha256=Yar0dzAnPqWtOgoPbg7VoP8-2ZlLvp3NDkNPO2ATpQw,6019
|
186
181
|
django_cfg/apps/knowbase/utils/__init__.py,sha256=xeEJteQAzc4sSJxxaufN0Kw6wUwpRe82mJqk9wX-5MU,189
|
187
182
|
django_cfg/apps/knowbase/utils/chunk_settings.py,sha256=BxndOSQhApGLi_wWXQDHJ3LUfOcs7Uv65wia52GkTxI,8736
|
188
183
|
django_cfg/apps/knowbase/utils/text_processing.py,sha256=WA_G_dRyQAreDxfRij6dBIh68LGTYYXju5C8qhLnNdc,12989
|
@@ -269,25 +264,49 @@ django_cfg/apps/newsletter/views/subscriptions.py,sha256=marHLbRT6a6e8tMjKVtKG_0
|
|
269
264
|
django_cfg/apps/newsletter/views/tracking.py,sha256=EJlAltpASzc_0nslVPJt-6mnIqI_QCEmz3MQEGPKzmU,2481
|
270
265
|
django_cfg/apps/payments/__init__.py,sha256=Qb8viLJBKCclV9uuoXjxWXeDevXlbdJ76mV8g5hK7tk,237
|
271
266
|
django_cfg/apps/payments/apps.py,sha256=FZgbLQFMeOJPs_892bM6X-3Edt3YPD2CP50HMekH7Sk,551
|
272
|
-
django_cfg/apps/payments/
|
267
|
+
django_cfg/apps/payments/decorators.py,sha256=A8MsH7hzw8i7Cl3Eh5Lcqd9Dbn_nubbb6BAI3eZMEgk,10960
|
268
|
+
django_cfg/apps/payments/urls.py,sha256=8Tr5Sr3FcTgUB4PRYYlb8MOkugAPgKT46Jd0uVyNruk,3473
|
269
|
+
django_cfg/apps/payments/viewsets.py,sha256=QaUXHUbiw4z0oc2JGpJLkTpLIeP6gC2Q7BNcZ_sTBeg,2175
|
270
|
+
django_cfg/apps/payments/admin/__init__.py,sha256=BUTbE4RfbqX3EBF-9oscrh7wQ2tuwCqofGYqlCz4QM4,666
|
271
|
+
django_cfg/apps/payments/admin/api_keys_admin.py,sha256=nMghMkKcDYvjZ4POVwpS59E6Dc7IVP9dHv-1OltpEes,11436
|
272
|
+
django_cfg/apps/payments/admin/balance_admin.py,sha256=Dwap1VZGwNJ4ZbELMDbiVIxQPmI80MWnsTudyZOvsxo,15386
|
273
|
+
django_cfg/apps/payments/admin/currencies_admin.py,sha256=mMcttxDJlbQNJBhbrUhjJJYY2n9uHg1-7Hn8DCH9pVU,5810
|
274
|
+
django_cfg/apps/payments/admin/filters.py,sha256=MCYFqs1t3XL0U4WZv4ONUbwqv0vLOo7sN7eDuSaVFd0,8504
|
275
|
+
django_cfg/apps/payments/admin/payments_admin.py,sha256=fYKiTgEn1mHNZ2bEamTdf0alyZXYi_GgzjuFB81Ib98,4356
|
276
|
+
django_cfg/apps/payments/admin/subscriptions_admin.py,sha256=mJRSyDd761f0LA64AnG19dzTUmiivqq9wZg4roqKYIo,6913
|
277
|
+
django_cfg/apps/payments/admin/tariffs_admin.py,sha256=6UiQyRRIKrDdmpi2IZOpDpLeJLHrebOGNc3OizlikLI,6422
|
278
|
+
django_cfg/apps/payments/config/__init__.py,sha256=JPvd_Skh5fsm4ii2vrvh4hYPjGH1fCNCpwEwJI_s3mE,1397
|
279
|
+
django_cfg/apps/payments/config/module.py,sha256=lMl_Zd3dKUQOXkrgcEdw46BOTIoIi-pRVnLPs5hEWZs,2826
|
280
|
+
django_cfg/apps/payments/config/providers.py,sha256=xK0HygWu7bRYnspN3hKFNS4VCPL_ySZ780ocYJXoEl8,4840
|
281
|
+
django_cfg/apps/payments/config/settings.py,sha256=hiXbUnaALFD5k8yOkrVLOKVZ90pOIpGcw0opmuoAYTk,3846
|
282
|
+
django_cfg/apps/payments/config/utils.py,sha256=iHylQn8UFyvl_hGf2mdqlc0HmYIeT39qGOnixJuwK2g,1285
|
283
|
+
django_cfg/apps/payments/management/__init__.py,sha256=4DfL_LIMoYeHTC7YG9ssIB9QjZ9MHRajthdwkYLaCko,50
|
284
|
+
django_cfg/apps/payments/management/commands/README.md,sha256=ABO_os5t02X63q0FJJZl5CJQDAAdIPUSs6zpG42kfQI,5873
|
285
|
+
django_cfg/apps/payments/management/commands/__init__.py,sha256=97LKvfrlc1NTej4KlQSfQ4QRRT3yppwAjTy05EnmEBI,39
|
286
|
+
django_cfg/apps/payments/management/commands/currency_stats.py,sha256=ywkKl5nGjU-FdnvfZ76W_7uP1qAL67IdXoJPw3xJodY,11975
|
287
|
+
django_cfg/apps/payments/management/commands/populate_currencies.py,sha256=NIrO5xVhStc5spR91sHt7tc2rKZxUa8K-Ai8Gk37Oxg,10127
|
288
|
+
django_cfg/apps/payments/management/commands/update_currencies.py,sha256=rdx-KW5viTVQnxVcsWIX-SbimGCj21H7VjvZqzgKfFg,14484
|
273
289
|
django_cfg/apps/payments/managers/__init__.py,sha256=uYiETCw-K5GXQyAwpcOa2Qxzof8sbtTNc_SghyW45YU,672
|
274
290
|
django_cfg/apps/payments/managers/api_key_manager.py,sha256=xhViRKCLC_eR68hankMZQTcbzMgiRJdyr8KYKk01_dQ,928
|
275
291
|
django_cfg/apps/payments/managers/balance_manager.py,sha256=Sm_EETlHO7LtlrWIqF65vFPS4FpPSNYo5oTgQwTFAZ4,13279
|
276
|
-
django_cfg/apps/payments/managers/currency_manager.py,sha256
|
292
|
+
django_cfg/apps/payments/managers/currency_manager.py,sha256=rsmULj7UMRlZtkF1GRZwvn2ciJ5lDqBLo9NoDZmA3zM,2816
|
277
293
|
django_cfg/apps/payments/managers/payment_manager.py,sha256=udiTFIIVXsjqmlwzFwcT0ZTkYJZ9HVOSLLFTvAodY3w,1467
|
278
294
|
django_cfg/apps/payments/managers/subscription_manager.py,sha256=LHrw5INc1nSqfpw76bn7W2poEA-29FXfF5uhaxmq7l8,968
|
279
295
|
django_cfg/apps/payments/managers/tariff_manager.py,sha256=Kor_0ApvROcH0UKlp1-9rYChtHWDeOFgUc1GG3IepxY,799
|
280
296
|
django_cfg/apps/payments/middleware/__init__.py,sha256=ryn3emWBq15-kE8eJxX19gd-eTrk7JlpXqV2Cg8N_Wg,294
|
281
|
-
django_cfg/apps/payments/
|
297
|
+
django_cfg/apps/payments/middleware/api_access.py,sha256=u7fHQk2NA9QWbku5YU3T5ZzwS4SeWcZzToa8y1ClcHc,10788
|
298
|
+
django_cfg/apps/payments/middleware/rate_limiting.py,sha256=MhpHQkTjoHdH-tsJNlZATQQ9d9R9PDTwrdw1gUt_ydo,7407
|
299
|
+
django_cfg/apps/payments/middleware/usage_tracking.py,sha256=i8KT5E0dN6zhQwY8A-wFWtpkc9FJpfTQ4qTnRV8onmw,11176
|
300
|
+
django_cfg/apps/payments/migrations/0001_initial.py,sha256=36RhaBGV8crRsbFT731NS2hpWiW0E-OPNcJkTOJY9-Y,44233
|
282
301
|
django_cfg/apps/payments/migrations/__init__.py,sha256=OHlzxEGDJYKZz82orZXnh77xy-Okv6FcG3EKMfg9LzU,21
|
283
|
-
django_cfg/apps/payments/models/__init__.py,sha256=
|
284
|
-
django_cfg/apps/payments/models/api_keys.py,sha256=
|
285
|
-
django_cfg/apps/payments/models/balance.py,sha256=
|
286
|
-
django_cfg/apps/payments/models/base.py,sha256=
|
302
|
+
django_cfg/apps/payments/models/__init__.py,sha256=iYRu56c8oZCG5n52aWJqsKEKX44k0_2BiSFkN8jZ46U,1444
|
303
|
+
django_cfg/apps/payments/models/api_keys.py,sha256=HCtZuvpW7cYRpsSXkS3U3lk_smMQpgLRf7PHaM58MkQ,2484
|
304
|
+
django_cfg/apps/payments/models/balance.py,sha256=F7unVOEVZMUGNvPkvGTWsytxfvQKdV8eQSnEBPZkuDc,7052
|
305
|
+
django_cfg/apps/payments/models/base.py,sha256=iypC2MCPrASunrJepuY0y7fASVLDMDSqOwAWp-ovTDk,793
|
287
306
|
django_cfg/apps/payments/models/currencies.py,sha256=lz6axNRmfoQa3od-EV78vbZQv3vh2FznxHzGBi20qIU,4106
|
288
|
-
django_cfg/apps/payments/models/events.py,sha256=
|
289
|
-
django_cfg/apps/payments/models/payments.py,sha256=
|
290
|
-
django_cfg/apps/payments/models/subscriptions.py,sha256=
|
307
|
+
django_cfg/apps/payments/models/events.py,sha256=flKdY3SRAx5UZyHw6wLh5TflHTyy2lQpdi5aa1NqJ1o,2372
|
308
|
+
django_cfg/apps/payments/models/payments.py,sha256=jzzugUX71puUfmcOr4qqg0NCZE6LaZa6t7STI-jzzZE,13945
|
309
|
+
django_cfg/apps/payments/models/subscriptions.py,sha256=femsIzWxSZZdu1Ee_MgCYnnpMnXshejwb1_JPhbo8k8,8193
|
291
310
|
django_cfg/apps/payments/models/tariffs.py,sha256=nqM3RPtu4itAHRvT6jAgZgQEdEIN1KgKnEljkaHGFDc,2749
|
292
311
|
django_cfg/apps/payments/serializers/__init__.py,sha256=4l7Tu1NXztXtqceVbC3OxtWJir4n3_dFpVEgRgQ9J4k,1416
|
293
312
|
django_cfg/apps/payments/serializers/api_keys.py,sha256=5qG3PEwIVfoNSC6XpbOBbC3l4umgld3kPJC5l_vsYV0,1396
|
@@ -296,25 +315,58 @@ django_cfg/apps/payments/serializers/currencies.py,sha256=SskSl3rjZBxxLnY_zsaJiF
|
|
296
315
|
django_cfg/apps/payments/serializers/payments.py,sha256=BDhcD9DCea50Cz1PumLNVntgH40dOR55NzCXv4I0YOQ,2258
|
297
316
|
django_cfg/apps/payments/serializers/subscriptions.py,sha256=16OileC0yxM90ERK3Uo5Jqe9DeyNf3tBwK-ZqDtEbPw,2795
|
298
317
|
django_cfg/apps/payments/serializers/tariffs.py,sha256=54N5tFpc5NBIMyXuN7Re6pDNoQLJc2yZBIb5uVRhn-I,1698
|
299
|
-
django_cfg/apps/payments/services/__init__.py,sha256=
|
300
|
-
django_cfg/apps/payments/services/
|
301
|
-
django_cfg/apps/payments/services/
|
302
|
-
django_cfg/apps/payments/services/
|
303
|
-
django_cfg/apps/payments/services/
|
318
|
+
django_cfg/apps/payments/services/__init__.py,sha256=LaY6OcRe1A7ehZwfuFKp1rLNz-Un3BpEahsNnDVHKAw,1941
|
319
|
+
django_cfg/apps/payments/services/internal_types.py,sha256=N6Qx_XBJYKI2isKZb5_09T8Pz1arH2jSYwqgdK0H6CU,8828
|
320
|
+
django_cfg/apps/payments/services/billing/__init__.py,sha256=YHdL1RWo-VAotOdZaykArOd0NTGI0fuQ0B7nBRKn6Lg,149
|
321
|
+
django_cfg/apps/payments/services/cache/__init__.py,sha256=CA8cUptfUD5LwbAB9kPMDofdkJBD_o7Z3HHG4vXMoyA,318
|
322
|
+
django_cfg/apps/payments/services/cache/base.py,sha256=McWSpr6eNEXbhG2PBkQd_YkL-he-scoWNUVmKI4FohY,696
|
323
|
+
django_cfg/apps/payments/services/cache/simple_cache.py,sha256=N2i0yGOR5Y1SPl2hqsXcGyehCpwXdN9SQVrphO1yat0,4508
|
324
|
+
django_cfg/apps/payments/services/core/__init__.py,sha256=I7x8Ryz4htQ1LwwtWZRK-MeI_SYboCQ7cKtTxmoqfpk,382
|
325
|
+
django_cfg/apps/payments/services/core/balance_service.py,sha256=RvLuIo87U2C24s2Yuci_oftXabLTDzfXKllmVzgDnpw,16262
|
326
|
+
django_cfg/apps/payments/services/core/fallback_service.py,sha256=0kJfLFQXS2WFkiu5awc4kwCN-_Pst_0AU21gIXBbp38,16370
|
327
|
+
django_cfg/apps/payments/services/core/payment_service.py,sha256=a38zgsW_4qmKmScUdg-gTl991Pr8wUv8Vcm40_lN6VY,21879
|
328
|
+
django_cfg/apps/payments/services/core/subscription_service.py,sha256=5_MJTdSU7zgFvQA7-BPkLjqyTJvN_pNgEkacqPztTcU,22632
|
329
|
+
django_cfg/apps/payments/services/middleware/__init__.py,sha256=SAiK2KW4aFVdfjlNrV3Bv8F0qg_epqwbZXOV0WoS6yA,154
|
330
|
+
django_cfg/apps/payments/services/monitoring/__init__.py,sha256=cgN3Soqj_4sLe1j93QFu9P5ZzAw2V12zqE7wii0FYQs,452
|
331
|
+
django_cfg/apps/payments/services/monitoring/api_schemas.py,sha256=90VVZGqh3JxXWHeCSaMuzh-72XQlslNv_boihnhxfPc,8706
|
332
|
+
django_cfg/apps/payments/services/monitoring/provider_health.py,sha256=uiXyKcDK42b3l19rcN-jy-JUJi6vBqptj5eSVkcWDwY,14169
|
333
|
+
django_cfg/apps/payments/services/providers/__init__.py,sha256=RbfjUc0pJzJkfIP0mnTWOtTKEyQ_YSJSZG_8AINaEEw,550
|
334
|
+
django_cfg/apps/payments/services/providers/base.py,sha256=kjWPb7EutZHaByDW3py8srAcnvZdE4oqj6Tp9xS9ADk,3807
|
335
|
+
django_cfg/apps/payments/services/providers/cryptapi.py,sha256=e1ZmglhQ_IKG8fASKBHcCQUs8BbLvUfI9RXdskWXG5U,10668
|
336
|
+
django_cfg/apps/payments/services/providers/cryptomus.py,sha256=RKJHpkUnm3YrYc_XH-Eh-UrYwMcer-5XhK_T5Ak8NjE,12436
|
337
|
+
django_cfg/apps/payments/services/providers/nowpayments.py,sha256=xsylxVaN5L5tYfv1j_OJzX_PSEBEq9pmBeRFG80rcCA,11490
|
338
|
+
django_cfg/apps/payments/services/providers/registry.py,sha256=cOOMXLMSK5JWSXPm2j1Ukmw7-qzwpmEUyGfBFTTltK4,3888
|
339
|
+
django_cfg/apps/payments/services/security/__init__.py,sha256=4aRxCQRr-lZ4XkU-6-8oL33DOpKmVboGZUfY6NdivEQ,763
|
340
|
+
django_cfg/apps/payments/services/security/error_handler.py,sha256=zM552XAaBnqo1LRI7JwusCK99zzLY5WCY3o87Jc1hZ4,23194
|
341
|
+
django_cfg/apps/payments/services/security/payment_notifications.py,sha256=MIvUsW2tc8S8IzsCkah9RRJCNMARX-NYtzMOgvUammg,14289
|
342
|
+
django_cfg/apps/payments/services/security/webhook_validator.py,sha256=LxtrTEKiRbdCObPHKPqhm7y3m-Mk_UcAKZjXayWDU88,17533
|
343
|
+
django_cfg/apps/payments/services/validators/__init__.py,sha256=_NgbT79oslNvBPPYRpSFnPkvnZuQ48Kk1dzSZIE2ZAU,140
|
344
|
+
django_cfg/apps/payments/signals/__init__.py,sha256=L3danrGQ-9tEfaAbkXOILPb2Bw_T4XRN4PodjMl1hvk,342
|
345
|
+
django_cfg/apps/payments/signals/api_key_signals.py,sha256=MDkB9A1VxfiTouhpIe_uMoppbmQq0t-YBL_llk45Vcc,5995
|
346
|
+
django_cfg/apps/payments/signals/payment_signals.py,sha256=Bo9nDZmn4TV04otp_-pRfwCTsstKUHHzkU5TeVmwKf8,4852
|
347
|
+
django_cfg/apps/payments/signals/subscription_signals.py,sha256=FDXlR02fpS6ILzMJQjoK4Ln1v7Kb8vp_Ej9v_lqnVE0,7492
|
348
|
+
django_cfg/apps/payments/tasks/__init__.py,sha256=0lgH_ZBdEYzy_-pgYN678oppiS7CU_Ni02E9lV_Cy4Y,272
|
349
|
+
django_cfg/apps/payments/tasks/webhook_processing.py,sha256=OrE5br3m6ECYzk9qLBo4gI0pEI6dO5y1tZMgae8siPQ,5553
|
350
|
+
django_cfg/apps/payments/utils/__init__.py,sha256=CyoHao3WlDPIyRNRChJggsazfRFEIhSC7HUB33GlAnQ,1178
|
351
|
+
django_cfg/apps/payments/utils/billing_utils.py,sha256=Kp-DX-RrGYEMvnBbg2oPJ7EjqAzhp4qsVblGLpgcb-k,11708
|
352
|
+
django_cfg/apps/payments/utils/config_utils.py,sha256=kuPT-CKPcoQRwPW_oQ0_CzKxP71JG1FP70Jg59PHrAw,8615
|
353
|
+
django_cfg/apps/payments/utils/middleware_utils.py,sha256=MTS9MY_8-VqpBVv8uQYH89rfeG8dTnUru38vVbbE-1o,6682
|
354
|
+
django_cfg/apps/payments/utils/validation_utils.py,sha256=xSxpjz5aAajSOIxDhaXHdB-Uf98MOi3uDKVx0jHmREo,2704
|
304
355
|
django_cfg/apps/payments/views/__init__.py,sha256=00HRO1sDErjnFq2dedFAjBIyIhZZyZmv4DK98lHmx2Q,1613
|
305
356
|
django_cfg/apps/payments/views/api_key_views.py,sha256=fG68roqOF9FShde68Qp_CBf0KJuf1chwK41RU0VqUJk,5542
|
306
357
|
django_cfg/apps/payments/views/balance_views.py,sha256=rA_OJFizP_UBBr8OdWLQZQ51qlPFYoeJCYUzNXSw4S0,2509
|
307
358
|
django_cfg/apps/payments/views/currency_views.py,sha256=B1rjOKDV3KEYRQI6NuPEyEGF8VNumaraoZdI8Qqdu6s,4096
|
308
|
-
django_cfg/apps/payments/views/payment_views.py,sha256=
|
359
|
+
django_cfg/apps/payments/views/payment_views.py,sha256=5UH8La8BM7f8SJmc4aq5yAZn4oxnF2JtVV2qiMlVchM,5746
|
309
360
|
django_cfg/apps/payments/views/subscription_views.py,sha256=WqBDsaPUQGP6ZCmbheIdRupy-qESPpdj8IgKkaLp3V8,5005
|
310
361
|
django_cfg/apps/payments/views/tariff_views.py,sha256=i0uOg6SBk_1sct2M2iwKMw-5YHMr5mhVvm_ljpFRwPQ,4907
|
362
|
+
django_cfg/apps/payments/views/webhook_views.py,sha256=s6CtRIW8leGDcaerMGjuH5ohV3dE0YMPcllmcRSv_p8,9616
|
311
363
|
django_cfg/apps/support/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
312
364
|
django_cfg/apps/support/admin.py,sha256=-fcegtqoCcwPiBXwyNLMftcYCTTbTRRBpWItyeNNkDY,8827
|
313
365
|
django_cfg/apps/support/admin_filters.py,sha256=ZpKtetRxppRAMwIr-pwDbXAyh7qouDfTCEZoo1YJfFs,2179
|
314
366
|
django_cfg/apps/support/apps.py,sha256=t-MzsKjXx6ZXACkG72Wa8GSmRYOERxfhrZUwUwjqCak,304
|
315
367
|
django_cfg/apps/support/models.py,sha256=a_m4CWpfR7A2KlVRUYOGPdpNyNPJflD3Mq7EkiwzICA,2465
|
316
368
|
django_cfg/apps/support/serializers.py,sha256=N-PP8d1H00mHSWT6x5DwDYrJoR3PS3AKrUW80L4lncs,1385
|
317
|
-
django_cfg/apps/support/signals.py,sha256=
|
369
|
+
django_cfg/apps/support/signals.py,sha256=W7lA3o1eoAwZQd92fX0GaiIXp9ptQRYtwn1Siz1FV9g,3706
|
318
370
|
django_cfg/apps/support/urls.py,sha256=t3r4wGRUqQS-BDCQgSXwSF9pbucyvr7lo7_pJ1uZ52Q,899
|
319
371
|
django_cfg/apps/support/admin/__init__.py,sha256=vVoUWfKj6qBHhwr6zG2ZH8ZpUegYNJvzuAxdFoHEo_0,153
|
320
372
|
django_cfg/apps/support/admin/filters.py,sha256=ZpKtetRxppRAMwIr-pwDbXAyh7qouDfTCEZoo1YJfFs,2179
|
@@ -326,7 +378,7 @@ django_cfg/apps/support/migrations/0001_initial.py,sha256=AUUXqMiRbv_bRhogBWKWdr
|
|
326
378
|
django_cfg/apps/support/migrations/0002_alter_message_ticket.py,sha256=MxdjTW7hJ1B0yQloKR3sVOgujOzSA6eZp5YCmCuXht0,571
|
327
379
|
django_cfg/apps/support/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
328
380
|
django_cfg/apps/support/templates/support/chat/access_denied.html,sha256=QdVXR-61aUHmh9Vlag_zXGcS_BG7a807LesIbduqnag,1094
|
329
|
-
django_cfg/apps/support/templates/support/chat/ticket_chat.html,sha256=
|
381
|
+
django_cfg/apps/support/templates/support/chat/ticket_chat.html,sha256=Xz5Z0ADP9aZpiE_cJdcRP9UJpJhY32h1h1sLfI94zgU,14483
|
330
382
|
django_cfg/apps/support/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
331
383
|
django_cfg/apps/support/utils/support_email_service.py,sha256=0l4dXqAG6oN2UR7W3JzuRhlomaWa41IT7ceVcanluKs,5570
|
332
384
|
django_cfg/apps/support/views/__init__.py,sha256=E-Iqiy888SncfBTiSyXyGCjaNrMa5Klvapzb3ItYPXc,448
|
@@ -357,15 +409,15 @@ django_cfg/apps/tasks/templates/tasks/components/tab_navigation.html,sha256=Sxb7
|
|
357
409
|
django_cfg/apps/tasks/templates/tasks/components/task_details_modal.html,sha256=DeJjj3dxYcBEAj8Hv4Ii4koEMaNRVHta9_R25qZyK4w,6317
|
358
410
|
django_cfg/apps/tasks/templates/tasks/components/tasks_tab.html,sha256=Yd6SPgdQX1p_6miitu3nZHjdZOtbsXMhUP4DnXSntPs,1826
|
359
411
|
django_cfg/apps/tasks/templates/tasks/components/workers_tab.html,sha256=4Ud4QpG6bnxBsrBDKGXdy4GcIne43wC13Ch1szZzrbo,1580
|
360
|
-
django_cfg/cli/README.md,sha256=
|
412
|
+
django_cfg/cli/README.md,sha256=mbT1vqbeY_dYOjQGuZ_rjtMqUm-l76HH6oWQRq9ETmc,11665
|
361
413
|
django_cfg/cli/__init__.py,sha256=i3ksFngCqZCBvaimQcBD1P2_gr5PiM--4efLScCjvvU,152
|
362
|
-
django_cfg/cli/main.py,sha256=
|
363
|
-
django_cfg/cli/utils.py,sha256=
|
414
|
+
django_cfg/cli/main.py,sha256=ZxpP6YLhCFlF9tYSCwY4gkJ8thzQFrhsQAn0_C_7ehU,1004
|
415
|
+
django_cfg/cli/utils.py,sha256=YGXWw7MjX-zAUDKrbJ4q_sxH54at2Oqhrcm7udVozU4,5810
|
364
416
|
django_cfg/cli/commands/__init__.py,sha256=EKLXDAx-QttnGmdjsmVANAfhxWplxl2V_2I0SZaJOoI,98
|
365
|
-
django_cfg/cli/commands/create_project.py,sha256=
|
366
|
-
django_cfg/cli/commands/info.py,sha256=
|
417
|
+
django_cfg/cli/commands/create_project.py,sha256=8Jg4rfnGCINTd6ebBqx-WXG57AIB5C2yY5D3JQAtpyI,21029
|
418
|
+
django_cfg/cli/commands/info.py,sha256=AaLbFFOjHwqiIzZChPxfD3ASZZs1IAD-0RJQaLo2PC0,4925
|
367
419
|
django_cfg/core/__init__.py,sha256=eVK57qFOok9kTeHoNEMQ1BplkUOaQ7NB9kP9eQK1vg0,358
|
368
|
-
django_cfg/core/config.py,sha256=
|
420
|
+
django_cfg/core/config.py,sha256=y5die7kK06KcRk1VuxU8MFe16c6yAS_MfEAMqLePApI,28938
|
369
421
|
django_cfg/core/environment.py,sha256=MAoEPqIPsLVhSANT2Bz4nnus2wmbMW0RCOQxhQfDrDc,9106
|
370
422
|
django_cfg/core/exceptions.py,sha256=RTQEoU3PfR8lqqNNv5ayd_HY2yJLs3eioqUy8VM6AG4,10378
|
371
423
|
django_cfg/core/generation.py,sha256=Oa9bnEPsxwEaa0RP71zNl_z2p9NNljHnoCTeRu72X-0,25421
|
@@ -414,13 +466,14 @@ django_cfg/models/jwt.py,sha256=3R_dpLmVZIcH4zdtwA4qKnuCB8RZQACrgsbbgWY2q4c,9025
|
|
414
466
|
django_cfg/models/limits.py,sha256=nUfvyPykwKR38ZOlIFqlNGRmfV8RO5hiUrhDH6FCHJw,7449
|
415
467
|
django_cfg/models/logging.py,sha256=4vZF-G9rPmXMxxtUx_ad7Esvgbe8a_5Dl692Yg0fL4A,10636
|
416
468
|
django_cfg/models/ngrok.py,sha256=MVgcKWx0DRSW0QcwhiSx2vVwTSG49vbVrzPkZqDK-zw,3575
|
417
|
-
django_cfg/models/
|
469
|
+
django_cfg/models/payments.py,sha256=kizcd5qztKtFdo1F1VYDa6nlvrh_SRhlVaPbF9D95PI,16435
|
470
|
+
django_cfg/models/revolution.py,sha256=16fQ09iovrmlepNcTr2J0hZ-ShdMnMSQ2rTXa60yrus,8134
|
418
471
|
django_cfg/models/security.py,sha256=Xv19ZVOIenB_-f0wB6fm-Ap4j9kA43bSFaT2XenpSqc,4685
|
419
472
|
django_cfg/models/services.py,sha256=fj9JjrJFrlL4DMnMbx_D8JiiZpz4E5uBqmhquAxau7c,13159
|
420
|
-
django_cfg/models/tasks.py,sha256=
|
473
|
+
django_cfg/models/tasks.py,sha256=zFvQaikXi-W-iN7eqR6ZGNiKJnPgOL3yl9RRis-5qZs,17160
|
421
474
|
django_cfg/modules/__init__.py,sha256=Ip9WMpzImEwIAywpFwU056_v0O9oIGG7nCT1YSArxkw,316
|
422
|
-
django_cfg/modules/base.py,sha256=
|
423
|
-
django_cfg/modules/django_email.py,sha256=
|
475
|
+
django_cfg/modules/base.py,sha256=A7fAp3eEBbs9zxVq96k9FotWnqHqZA5b-kH9-hOJ1zo,5913
|
476
|
+
django_cfg/modules/django_email.py,sha256=Kk2B1Y73xlbpNKCDkU2uBT01iVANjKpmVlKbRScVCs4,18059
|
424
477
|
django_cfg/modules/django_health.py,sha256=7QzuQ6WyjWYj6lecd4auwRvEyrMUL7N6hiAp-tLyoY4,8923
|
425
478
|
django_cfg/modules/django_logger.py,sha256=3oP9jev0lOcFUJ1tYcpbFnK524zIGA2xIOrrAiTwpb8,6331
|
426
479
|
django_cfg/modules/django_ngrok.py,sha256=LjlAIJprbFhFYwDG93acas8XaB6iFQGu4fWvZiDNhyQ,10482
|
@@ -428,11 +481,19 @@ django_cfg/modules/django_tasks.py,sha256=SBas2juL6RfDL7ttm4xAxJ7bvS052WmUzixNHP
|
|
428
481
|
django_cfg/modules/django_telegram.py,sha256=qz3EOJnCR_YTJVIu2-Iq8--cla6mU-WPohquQ26eHDQ,16367
|
429
482
|
django_cfg/modules/dramatiq_setup.py,sha256=Jke4aO_L1t6F3OAc4pl12zppKzL0gb1p6ilfQ3zUIZ8,454
|
430
483
|
django_cfg/modules/logger.py,sha256=4_zeasNehr8LGz8r_ckv15-fQS63zCodiqD4CYIEyFI,10546
|
431
|
-
django_cfg/modules/django_currency/README.md,sha256=
|
432
|
-
django_cfg/modules/django_currency/__init__.py,sha256=
|
433
|
-
django_cfg/modules/django_currency/
|
434
|
-
django_cfg/modules/django_currency/
|
435
|
-
django_cfg/modules/django_currency/
|
484
|
+
django_cfg/modules/django_currency/README.md,sha256=4R7KtF-rhR6yRg5jbsXwOVXMZNGEpOyW4N3WGN89W7A,4670
|
485
|
+
django_cfg/modules/django_currency/__init__.py,sha256=XDuqhE_HFENq0MmiJtLqsWHDqu_Qyphxc54D_-_LGXE,2306
|
486
|
+
django_cfg/modules/django_currency/clients/__init__.py,sha256=8wGiLU6xh1h0Z9eV7PHsAu0QS-jel8wmTauKW9Af3dI,220
|
487
|
+
django_cfg/modules/django_currency/clients/coingecko_client.py,sha256=w2GiDuKHItBdR69-ArHEJCD6K-OWwHFft9ZAZIbA5Gs,9396
|
488
|
+
django_cfg/modules/django_currency/clients/yfinance_client.py,sha256=98nVmwGL4-eOKZ1OLuuldu7DZK6tOcveFIE35zmtHV0,9671
|
489
|
+
django_cfg/modules/django_currency/core/__init__.py,sha256=rDsAAMMCozbP8C7fGK18l1_80Y6vkREu4kudTrRL_JU,729
|
490
|
+
django_cfg/modules/django_currency/core/converter.py,sha256=VUnfzuIei3hiKvc6EC4ya0aLW5tYhnex4yAYStNTv5A,5676
|
491
|
+
django_cfg/modules/django_currency/core/exceptions.py,sha256=Mx2zrqwtrw1LgpcFVAU7ofOfffSNsVjEGodrwbfPAtE,495
|
492
|
+
django_cfg/modules/django_currency/core/models.py,sha256=He50J10Z5kuAFAh-ptWsCKQ87hRsYHX2EhFdLNoYphs,1873
|
493
|
+
django_cfg/modules/django_currency/database/__init__.py,sha256=huog0oyosv8yif0yn94Ctt2Wad86ajmQyqsSl2EVQoI,536
|
494
|
+
django_cfg/modules/django_currency/database/database_loader.py,sha256=gNdtbW4pfZmHuURmSXWbHCIkY07yLRnAwqj7lQ6Ztp0,18925
|
495
|
+
django_cfg/modules/django_currency/utils/__init__.py,sha256=6nD3BGQrBn94ZqCCBG8X78KPuTmberoOauwNOUi3SUk,130
|
496
|
+
django_cfg/modules/django_currency/utils/cache.py,sha256=lkbkjtBpok-6UljoL8u3yWgyIaaayujlaPXiCamxGHE,2557
|
436
497
|
django_cfg/modules/django_import_export/README.md,sha256=OuGT5gv0hwt3dcbMLfZUfostZnXALeN4OifgRvv--4k,2453
|
437
498
|
django_cfg/modules/django_import_export/__init__.py,sha256=oJ9BDGdbQ_B8E2bGXxSQyRSzr8212rHGtgSLf9v6cAI,1908
|
438
499
|
django_cfg/modules/django_llm/README.md,sha256=31uQG9_z-HroEUevtOPJbZ86H9yiwzZJs0omf-Kwh-o,9374
|
@@ -461,7 +522,7 @@ django_cfg/modules/django_twilio/templates/guide.md,sha256=nZfwx-sgWyK5NApm93zOe
|
|
461
522
|
django_cfg/modules/django_twilio/templates/sendgrid_otp_email.html,sha256=sXR6_D9hmOFfk9CrfPizpLddVhkRirBWpZd_ioEsxVk,6671
|
462
523
|
django_cfg/modules/django_twilio/templates/sendgrid_test_data.json,sha256=fh1VyuSiDELHsS_CIz9gp7tlsMAEjaDOoqbAPSZ3yyo,339
|
463
524
|
django_cfg/modules/django_unfold/__init__.py,sha256=Z91x1iGmkzlRbEb2L9OCFmYDKNAV9C4G3i15j5S0esc,1898
|
464
|
-
django_cfg/modules/django_unfold/dashboard.py,sha256=
|
525
|
+
django_cfg/modules/django_unfold/dashboard.py,sha256=UITRlmqAGpptKGFMdTwh9rcIZqKyu9V1TkyKkGNHlKo,14892
|
465
526
|
django_cfg/modules/django_unfold/models.py,sha256=bY6QSSaH_-r9vOTkSQjxeIkl5RaED7XkxXkT8-W5stk,4014
|
466
527
|
django_cfg/modules/django_unfold/system_monitor.py,sha256=cznZqldRJqiSLSJbs4U7R2rX8ClzoIpqdfXdXqI2iQw,6955
|
467
528
|
django_cfg/modules/django_unfold/tailwind.py,sha256=X9o1K3QL0VwUISgJ26sLb6zkdK-00qiDuekqTw-fydc,10846
|
@@ -487,7 +548,7 @@ django_cfg/modules/django_unfold/models/dropdown.py,sha256=bbRYl0iuzBrwgmqUMTDw9
|
|
487
548
|
django_cfg/modules/django_unfold/models/navigation.py,sha256=xrP2szoe1MSiTVAfc0Hd2dS32HhCp8XHBJinF5yc_U8,2575
|
488
549
|
django_cfg/modules/django_unfold/models/tabs.py,sha256=AHV7lmaRTjOluf9mgZvXISG5D7Re1QPdU2v-iYoCaIQ,848
|
489
550
|
django_cfg/registry/__init__.py,sha256=q6z9hGcBdtzbVLeDeQtP-A31z-1V7myZqjlZyTs1uo0,540
|
490
|
-
django_cfg/registry/core.py,sha256=
|
551
|
+
django_cfg/registry/core.py,sha256=4zvppBabwUzHcBviFJcSQ8PH8kG5ypCUlavpFuhw2nw,3378
|
491
552
|
django_cfg/registry/exceptions.py,sha256=b4pIakeRxhT1-ST3lbAnmAQaASRBARCoah_w6vb3VF0,399
|
492
553
|
django_cfg/registry/modules.py,sha256=e8lCG5C-yhRgvs8El_-6Xbdrte-enZF_Xb3B4opO-Hs,1135
|
493
554
|
django_cfg/registry/services.py,sha256=wpGSgSCUr4e9pUh5-rwN1AyPLGazK6KD-Ky4vz-elIw,1219
|
@@ -495,6 +556,8 @@ django_cfg/registry/third_party.py,sha256=3VPyh5XkHJr6uDNbpv04HutVSumoyo5jgB-zyq
|
|
495
556
|
django_cfg/routing/__init__.py,sha256=zOg9yh2lP2NaxlnZpVH8IogQBHGlcky_C-n0VWD9LIc,277
|
496
557
|
django_cfg/routing/callbacks.py,sha256=zMWD0AEE4AvczdBN-VDjgczai683ZSEqws0pnCVQ3FI,5994
|
497
558
|
django_cfg/routing/routers.py,sha256=J89kcIArV2lSl3rzh61Rya0h-I5Zq7-QAat6PvmKVFs,1582
|
559
|
+
django_cfg/template_archive/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
560
|
+
django_cfg/template_archive/django_sample.zip,sha256=PXVnqBXeklWhzlYTmaJD4SKAVGL5Xv-XRJcRKMia_mo,1743331
|
498
561
|
django_cfg/templates/__init__.py,sha256=IzLjt-a7VIJ0OutmAE1_-w0_LpL2u0MgGpnIabjZuW8,19
|
499
562
|
django_cfg/templates/admin/index.html,sha256=kehH-W9fTTUo36G9X82vM7L3Mr_lTiMkfp0qxPJAaSg,1247
|
500
563
|
django_cfg/templates/admin/components/action_grid.html,sha256=inffy-bMcuecSwgnR3HIEGE-r9wG_BgPttkvHqqFih8,3068
|
@@ -544,8 +607,8 @@ django_cfg/utils/path_resolution.py,sha256=C9As6p4Q9l3VeoVkFDRPQWGrzAWf8O8UxLVka
|
|
544
607
|
django_cfg/utils/smart_defaults.py,sha256=MxbUZwn_xbh48li7uLI6W4D9WCD2P2WO48dv85Fra5E,23057
|
545
608
|
django_cfg/utils/toolkit.py,sha256=Td8_iXNaftonF_xdZP4Y3uO65nuA_4_zditn5Q_Pfcw,23310
|
546
609
|
django_cfg/utils/version_check.py,sha256=jI4v3YMdQriUEeb_TvRl511sDghy6I75iKRDUaNpucs,4800
|
547
|
-
django_cfg-1.2.
|
548
|
-
django_cfg-1.2.
|
549
|
-
django_cfg-1.2.
|
550
|
-
django_cfg-1.2.
|
551
|
-
django_cfg-1.2.
|
610
|
+
django_cfg-1.2.25.dist-info/METADATA,sha256=BdTGMuybzONnI4wgasiDKrh2rLicIVzeI9Rjira-_zg,38867
|
611
|
+
django_cfg-1.2.25.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
612
|
+
django_cfg-1.2.25.dist-info/entry_points.txt,sha256=Ucmde4Z2wEzgb4AggxxZ0zaYDb9HpyE5blM3uJ0_VNg,56
|
613
|
+
django_cfg-1.2.25.dist-info/licenses/LICENSE,sha256=xHuytiUkSZCRG3N11nk1X6q1_EGQtv6aL5O9cqNRhKE,1071
|
614
|
+
django_cfg-1.2.25.dist-info/RECORD,,
|
@@ -1,161 +0,0 @@
|
|
1
|
-
"""
|
2
|
-
Simple example demonstrating Django Orchestrator usage.
|
3
|
-
"""
|
4
|
-
|
5
|
-
import asyncio
|
6
|
-
from dataclasses import dataclass
|
7
|
-
from pydantic import BaseModel
|
8
|
-
from django.contrib.auth.models import User
|
9
|
-
|
10
|
-
from django_cfg.modules.django_orchestrator import DjangoAgent, SimpleOrchestrator, DjangoDeps, RunContext
|
11
|
-
|
12
|
-
|
13
|
-
# Define output model
|
14
|
-
class GreetingResult(BaseModel):
|
15
|
-
"""Result from greeting agent."""
|
16
|
-
greeting: str
|
17
|
-
personalized: bool
|
18
|
-
user_info: str
|
19
|
-
|
20
|
-
|
21
|
-
# Create agent
|
22
|
-
greeting_agent = DjangoAgent[DjangoDeps, GreetingResult](
|
23
|
-
name="greeting_agent",
|
24
|
-
deps_type=DjangoDeps,
|
25
|
-
output_type=GreetingResult,
|
26
|
-
instructions="Generate personalized greetings for users"
|
27
|
-
)
|
28
|
-
|
29
|
-
|
30
|
-
# Add tools to agent
|
31
|
-
@greeting_agent.tool
|
32
|
-
async def get_user_info(ctx: RunContext[DjangoDeps]) -> str:
|
33
|
-
"""Get user information for personalization."""
|
34
|
-
user = ctx.deps.user
|
35
|
-
return f"User: {user.username}, Email: {user.email}, Joined: {user.date_joined}"
|
36
|
-
|
37
|
-
|
38
|
-
@greeting_agent.tool
|
39
|
-
async def get_time_of_day(ctx: RunContext[DjangoDeps]) -> str:
|
40
|
-
"""Get current time of day for greeting."""
|
41
|
-
from datetime import datetime
|
42
|
-
hour = datetime.now().hour
|
43
|
-
|
44
|
-
if hour < 12:
|
45
|
-
return "morning"
|
46
|
-
elif hour < 17:
|
47
|
-
return "afternoon"
|
48
|
-
else:
|
49
|
-
return "evening"
|
50
|
-
|
51
|
-
|
52
|
-
async def simple_example():
|
53
|
-
"""Run simple orchestrator example."""
|
54
|
-
print("š¤ Django Orchestrator Simple Example")
|
55
|
-
print("=" * 50)
|
56
|
-
|
57
|
-
# Create test user (in real app, get from request)
|
58
|
-
try:
|
59
|
-
user = await User.objects.aget(username='testuser')
|
60
|
-
except User.DoesNotExist:
|
61
|
-
user = await User.objects.acreate_user(
|
62
|
-
username='testuser',
|
63
|
-
email='test@example.com',
|
64
|
-
first_name='Test',
|
65
|
-
last_name='User'
|
66
|
-
)
|
67
|
-
|
68
|
-
# Create dependencies
|
69
|
-
deps = DjangoDeps(user=user)
|
70
|
-
|
71
|
-
# Create orchestrator
|
72
|
-
orchestrator = SimpleOrchestrator()
|
73
|
-
orchestrator.register_agent(greeting_agent)
|
74
|
-
|
75
|
-
# Execute single agent
|
76
|
-
print("\n1. Single Agent Execution:")
|
77
|
-
results = await orchestrator.execute(
|
78
|
-
pattern="sequential",
|
79
|
-
agents=["greeting_agent"],
|
80
|
-
prompt="Create a personalized greeting",
|
81
|
-
deps=deps
|
82
|
-
)
|
83
|
-
|
84
|
-
result = results[0]
|
85
|
-
print(f"ā
Agent: {result.agent_name}")
|
86
|
-
print(f"ā
Output: {result.output}")
|
87
|
-
print(f"ā
Execution Time: {result.execution_time:.2f}s")
|
88
|
-
print(f"ā
Tokens Used: {result.tokens_used}")
|
89
|
-
|
90
|
-
# Get metrics
|
91
|
-
print("\n2. Agent Metrics:")
|
92
|
-
metrics = greeting_agent.get_metrics()
|
93
|
-
for key, value in metrics.items():
|
94
|
-
print(f"š {key}: {value}")
|
95
|
-
|
96
|
-
# Get orchestrator metrics
|
97
|
-
print("\n3. Orchestrator Metrics:")
|
98
|
-
orch_metrics = orchestrator.get_metrics()
|
99
|
-
for key, value in orch_metrics.items():
|
100
|
-
print(f"š {key}: {value}")
|
101
|
-
|
102
|
-
|
103
|
-
async def multi_agent_example():
|
104
|
-
"""Run multi-agent orchestrator example."""
|
105
|
-
print("\nš¤ Multi-Agent Example")
|
106
|
-
print("=" * 30)
|
107
|
-
|
108
|
-
# Create additional agents
|
109
|
-
analyzer_agent = DjangoAgent[DjangoDeps, BaseModel](
|
110
|
-
name="content_analyzer",
|
111
|
-
deps_type=DjangoDeps,
|
112
|
-
output_type=BaseModel,
|
113
|
-
instructions="Analyze content sentiment and topics"
|
114
|
-
)
|
115
|
-
|
116
|
-
formatter_agent = DjangoAgent[DjangoDeps, BaseModel](
|
117
|
-
name="content_formatter",
|
118
|
-
deps_type=DjangoDeps,
|
119
|
-
output_type=BaseModel,
|
120
|
-
instructions="Format content for display"
|
121
|
-
)
|
122
|
-
|
123
|
-
# Create orchestrator
|
124
|
-
orchestrator = SimpleOrchestrator()
|
125
|
-
orchestrator.register_agent(analyzer_agent)
|
126
|
-
orchestrator.register_agent(formatter_agent)
|
127
|
-
|
128
|
-
# Get user
|
129
|
-
user = await User.objects.aget(username='testuser')
|
130
|
-
deps = DjangoDeps(user=user)
|
131
|
-
|
132
|
-
# Execute sequential workflow
|
133
|
-
print("\n1. Sequential Workflow:")
|
134
|
-
results = await orchestrator.execute(
|
135
|
-
pattern="sequential",
|
136
|
-
agents=["content_analyzer", "content_formatter"],
|
137
|
-
prompt="Analyze and format this content: Hello world!",
|
138
|
-
deps=deps
|
139
|
-
)
|
140
|
-
|
141
|
-
for i, result in enumerate(results, 1):
|
142
|
-
print(f"Step {i} - {result.agent_name}: {result.success}")
|
143
|
-
|
144
|
-
# Execute parallel workflow
|
145
|
-
print("\n2. Parallel Workflow:")
|
146
|
-
results = await orchestrator.execute(
|
147
|
-
pattern="parallel",
|
148
|
-
agents=["content_analyzer", "content_formatter"],
|
149
|
-
prompt="Process content in parallel",
|
150
|
-
deps=deps,
|
151
|
-
max_concurrent=2
|
152
|
-
)
|
153
|
-
|
154
|
-
successful = sum(1 for r in results if r.success)
|
155
|
-
print(f"ā
{successful}/{len(results)} agents completed successfully")
|
156
|
-
|
157
|
-
|
158
|
-
if __name__ == "__main__":
|
159
|
-
# Run examples
|
160
|
-
asyncio.run(simple_example())
|
161
|
-
asyncio.run(multi_agent_example())
|