django-cfg 1.2.29__py3-none-any.whl → 1.3.1__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/api/health/views.py +4 -2
- django_cfg/apps/knowbase/config/settings.py +16 -15
- django_cfg/apps/payments/README.md +326 -0
- django_cfg/apps/payments/admin/__init__.py +20 -9
- django_cfg/apps/payments/admin/api_keys_admin.py +521 -237
- django_cfg/apps/payments/admin/balance_admin.py +592 -297
- django_cfg/apps/payments/admin/currencies_admin.py +600 -108
- django_cfg/apps/payments/admin/filters.py +306 -199
- django_cfg/apps/payments/admin/payments_admin.py +470 -64
- django_cfg/apps/payments/admin/subscriptions_admin.py +578 -128
- django_cfg/apps/payments/admin_interface/__init__.py +18 -0
- django_cfg/apps/payments/admin_interface/templates/payments/base.html +162 -0
- django_cfg/apps/payments/admin_interface/templates/payments/components/dev_tool_card.html +38 -0
- django_cfg/apps/payments/admin_interface/templates/payments/components/loading_spinner.html +16 -0
- django_cfg/apps/payments/admin_interface/templates/payments/components/notification.html +27 -0
- django_cfg/apps/payments/admin_interface/templates/payments/components/provider_card.html +86 -0
- django_cfg/apps/payments/admin_interface/templates/payments/components/status_card.html +39 -0
- django_cfg/apps/payments/admin_interface/templates/payments/currency_converter.html +382 -0
- django_cfg/apps/payments/admin_interface/templates/payments/payment_dashboard.html +300 -0
- django_cfg/apps/payments/admin_interface/templates/payments/payment_form.html +303 -0
- django_cfg/apps/payments/admin_interface/templates/payments/payment_list.html +382 -0
- django_cfg/apps/payments/admin_interface/templates/payments/payment_status.html +500 -0
- django_cfg/apps/payments/admin_interface/templates/payments/webhook_dashboard.html +594 -0
- django_cfg/apps/payments/admin_interface/views/__init__.py +23 -0
- django_cfg/apps/payments/admin_interface/views/payment_views.py +259 -0
- django_cfg/apps/payments/admin_interface/views/webhook_dashboard.py +37 -0
- django_cfg/apps/payments/apps.py +34 -9
- django_cfg/apps/payments/config/__init__.py +28 -51
- django_cfg/apps/payments/config/constance/__init__.py +22 -0
- django_cfg/apps/payments/config/constance/config_service.py +123 -0
- django_cfg/apps/payments/config/constance/fields.py +69 -0
- django_cfg/apps/payments/config/constance/settings.py +160 -0
- django_cfg/apps/payments/config/django_cfg_integration.py +202 -0
- django_cfg/apps/payments/config/helpers.py +130 -0
- django_cfg/apps/payments/management/__init__.py +1 -3
- django_cfg/apps/payments/management/commands/__init__.py +1 -3
- django_cfg/apps/payments/management/commands/manage_currencies.py +381 -0
- django_cfg/apps/payments/management/commands/manage_providers.py +408 -0
- django_cfg/apps/payments/middleware/__init__.py +3 -1
- django_cfg/apps/payments/middleware/api_access.py +329 -222
- django_cfg/apps/payments/middleware/rate_limiting.py +343 -163
- django_cfg/apps/payments/middleware/usage_tracking.py +250 -238
- django_cfg/apps/payments/migrations/0001_initial.py +708 -536
- django_cfg/apps/payments/models/__init__.py +16 -20
- django_cfg/apps/payments/models/api_keys.py +121 -43
- django_cfg/apps/payments/models/balance.py +150 -115
- django_cfg/apps/payments/models/base.py +68 -15
- django_cfg/apps/payments/models/currencies.py +207 -67
- django_cfg/apps/payments/models/managers/__init__.py +44 -0
- django_cfg/apps/payments/models/managers/api_key_managers.py +329 -0
- django_cfg/apps/payments/models/managers/balance_managers.py +599 -0
- django_cfg/apps/payments/models/managers/currency_managers.py +385 -0
- django_cfg/apps/payments/models/managers/payment_managers.py +511 -0
- django_cfg/apps/payments/models/managers/subscription_managers.py +641 -0
- django_cfg/apps/payments/models/payments.py +235 -284
- django_cfg/apps/payments/models/subscriptions.py +257 -177
- django_cfg/apps/payments/models/tariffs.py +147 -40
- django_cfg/apps/payments/services/__init__.py +209 -56
- django_cfg/apps/payments/services/cache/__init__.py +6 -6
- django_cfg/apps/payments/services/cache/{simple_cache.py → cache_service.py} +112 -12
- django_cfg/apps/payments/services/core/__init__.py +10 -6
- django_cfg/apps/payments/services/core/balance_service.py +435 -360
- django_cfg/apps/payments/services/core/base.py +166 -0
- django_cfg/apps/payments/services/core/currency_service.py +478 -0
- django_cfg/apps/payments/services/core/payment_service.py +344 -468
- django_cfg/apps/payments/services/core/subscription_service.py +425 -484
- django_cfg/apps/payments/services/core/webhook_service.py +410 -0
- django_cfg/apps/payments/services/integrations/__init__.py +29 -0
- django_cfg/apps/payments/services/integrations/ngrok_service.py +47 -0
- django_cfg/apps/payments/services/integrations/providers_config.py +107 -0
- django_cfg/apps/payments/services/providers/__init__.py +9 -14
- django_cfg/apps/payments/services/providers/base.py +232 -71
- django_cfg/apps/payments/services/providers/nowpayments.py +404 -219
- django_cfg/apps/payments/services/providers/registry.py +429 -80
- django_cfg/apps/payments/services/types/__init__.py +78 -0
- django_cfg/apps/payments/services/types/data.py +177 -0
- django_cfg/apps/payments/services/types/requests.py +150 -0
- django_cfg/apps/payments/services/types/responses.py +156 -0
- django_cfg/apps/payments/services/types/webhooks.py +232 -0
- django_cfg/apps/payments/signals/__init__.py +33 -8
- django_cfg/apps/payments/signals/api_key_signals.py +211 -130
- django_cfg/apps/payments/signals/balance_signals.py +174 -0
- django_cfg/apps/payments/signals/payment_signals.py +129 -98
- django_cfg/apps/payments/signals/subscription_signals.py +195 -143
- django_cfg/apps/payments/static/payments/css/components.css +380 -0
- django_cfg/apps/payments/static/payments/css/dashboard.css +188 -0
- django_cfg/apps/payments/static/payments/js/components.js +545 -0
- django_cfg/apps/payments/static/payments/js/utils.js +412 -0
- django_cfg/apps/payments/templatetags/__init__.py +1 -1
- django_cfg/apps/payments/templatetags/payment_tags.py +466 -0
- django_cfg/apps/payments/urls.py +46 -47
- django_cfg/apps/payments/urls_admin.py +49 -0
- django_cfg/apps/payments/views/api/__init__.py +101 -0
- django_cfg/apps/payments/views/api/api_keys.py +387 -0
- django_cfg/apps/payments/views/api/balances.py +381 -0
- django_cfg/apps/payments/views/api/base.py +298 -0
- django_cfg/apps/payments/views/api/currencies.py +402 -0
- django_cfg/apps/payments/views/api/payments.py +415 -0
- django_cfg/apps/payments/views/api/subscriptions.py +475 -0
- django_cfg/apps/payments/views/api/webhooks.py +476 -0
- django_cfg/apps/payments/views/serializers/__init__.py +99 -0
- django_cfg/apps/payments/views/serializers/api_keys.py +424 -0
- django_cfg/apps/payments/views/serializers/balances.py +300 -0
- django_cfg/apps/payments/views/serializers/currencies.py +335 -0
- django_cfg/apps/payments/views/serializers/payments.py +387 -0
- django_cfg/apps/payments/views/serializers/subscriptions.py +429 -0
- django_cfg/apps/payments/views/serializers/webhooks.py +137 -0
- django_cfg/apps/tasks/urls.py +0 -2
- django_cfg/apps/tasks/urls_admin.py +14 -0
- django_cfg/apps/urls.py +4 -4
- django_cfg/config.py +1 -1
- django_cfg/core/config.py +75 -4
- django_cfg/core/generation.py +25 -4
- django_cfg/core/integration/README.md +363 -0
- django_cfg/core/integration/__init__.py +47 -0
- django_cfg/core/integration/commands_collector.py +239 -0
- django_cfg/core/integration/display/__init__.py +15 -0
- django_cfg/core/integration/display/base.py +157 -0
- django_cfg/core/integration/display/ngrok.py +164 -0
- django_cfg/core/integration/display/startup.py +815 -0
- django_cfg/core/integration/url_integration.py +123 -0
- django_cfg/core/integration/version_checker.py +160 -0
- django_cfg/management/commands/auto_generate.py +4 -0
- django_cfg/management/commands/check_settings.py +6 -0
- django_cfg/management/commands/clear_constance.py +5 -2
- django_cfg/management/commands/create_token.py +6 -0
- django_cfg/management/commands/list_urls.py +6 -0
- django_cfg/management/commands/migrate_all.py +6 -0
- django_cfg/management/commands/migrator.py +3 -0
- django_cfg/management/commands/rundramatiq.py +6 -0
- django_cfg/management/commands/runserver_ngrok.py +51 -29
- django_cfg/management/commands/script.py +6 -0
- django_cfg/management/commands/show_config.py +12 -2
- django_cfg/management/commands/show_urls.py +4 -0
- django_cfg/management/commands/superuser.py +6 -0
- django_cfg/management/commands/task_clear.py +4 -1
- django_cfg/management/commands/task_status.py +3 -1
- django_cfg/management/commands/test_email.py +3 -0
- django_cfg/management/commands/test_telegram.py +6 -0
- django_cfg/management/commands/test_twilio.py +6 -0
- django_cfg/management/commands/tree.py +6 -0
- django_cfg/management/commands/validate_config.py +155 -149
- django_cfg/models/constance.py +31 -11
- django_cfg/models/payments.py +175 -498
- django_cfg/modules/django_currency/__init__.py +16 -11
- django_cfg/modules/django_currency/clients/__init__.py +4 -4
- django_cfg/modules/django_currency/clients/coinpaprika_client.py +289 -0
- django_cfg/modules/django_currency/clients/yahoo_client.py +157 -0
- django_cfg/modules/django_currency/core/__init__.py +1 -7
- django_cfg/modules/django_currency/core/converter.py +18 -23
- django_cfg/modules/django_currency/core/models.py +122 -11
- django_cfg/modules/django_currency/database/__init__.py +4 -4
- django_cfg/modules/django_currency/database/database_loader.py +190 -309
- django_cfg/modules/django_logger.py +160 -146
- django_cfg/modules/django_unfold/dashboard.py +65 -12
- django_cfg/registry/core.py +1 -0
- django_cfg/template_archive/django_sample.zip +0 -0
- django_cfg/templates/admin/components/action_grid.html +9 -9
- django_cfg/templates/admin/components/metric_card.html +5 -5
- django_cfg/templates/admin/components/status_badge.html +2 -2
- django_cfg/templates/admin/layouts/dashboard_with_tabs.html +152 -24
- django_cfg/templates/admin/snippets/components/quick_actions.html +3 -3
- django_cfg/templates/admin/snippets/components/system_health.html +1 -1
- django_cfg/templates/admin/snippets/tabs/overview_tab.html +49 -52
- django_cfg/utils/smart_defaults.py +222 -571
- django_cfg/utils/toolkit.py +51 -11
- {django_cfg-1.2.29.dist-info → django_cfg-1.3.1.dist-info}/METADATA +5 -4
- {django_cfg-1.2.29.dist-info → django_cfg-1.3.1.dist-info}/RECORD +172 -182
- django_cfg/apps/payments/__init__.py +0 -8
- django_cfg/apps/payments/admin/tariffs_admin.py +0 -199
- django_cfg/apps/payments/config/module.py +0 -70
- django_cfg/apps/payments/config/providers.py +0 -105
- django_cfg/apps/payments/config/settings.py +0 -96
- django_cfg/apps/payments/config/utils.py +0 -52
- django_cfg/apps/payments/decorators.py +0 -291
- django_cfg/apps/payments/management/commands/README.md +0 -178
- django_cfg/apps/payments/management/commands/currency_stats.py +0 -323
- django_cfg/apps/payments/management/commands/populate_currencies.py +0 -246
- django_cfg/apps/payments/management/commands/update_currencies.py +0 -336
- django_cfg/apps/payments/managers/__init__.py +0 -22
- django_cfg/apps/payments/managers/api_key_manager.py +0 -35
- django_cfg/apps/payments/managers/balance_manager.py +0 -361
- django_cfg/apps/payments/managers/currency_manager.py +0 -83
- django_cfg/apps/payments/managers/payment_manager.py +0 -44
- django_cfg/apps/payments/managers/subscription_manager.py +0 -37
- django_cfg/apps/payments/managers/tariff_manager.py +0 -29
- django_cfg/apps/payments/models/events.py +0 -73
- django_cfg/apps/payments/serializers/__init__.py +0 -56
- django_cfg/apps/payments/serializers/api_keys.py +0 -51
- django_cfg/apps/payments/serializers/balance.py +0 -59
- django_cfg/apps/payments/serializers/currencies.py +0 -55
- django_cfg/apps/payments/serializers/payments.py +0 -62
- django_cfg/apps/payments/serializers/subscriptions.py +0 -71
- django_cfg/apps/payments/serializers/tariffs.py +0 -56
- django_cfg/apps/payments/services/billing/__init__.py +0 -8
- django_cfg/apps/payments/services/cache/base.py +0 -30
- django_cfg/apps/payments/services/core/fallback_service.py +0 -432
- django_cfg/apps/payments/services/internal_types.py +0 -297
- django_cfg/apps/payments/services/middleware/__init__.py +0 -8
- django_cfg/apps/payments/services/monitoring/__init__.py +0 -22
- django_cfg/apps/payments/services/monitoring/api_schemas.py +0 -222
- django_cfg/apps/payments/services/monitoring/provider_health.py +0 -372
- django_cfg/apps/payments/services/providers/cryptapi.py +0 -273
- django_cfg/apps/payments/services/providers/cryptomus.py +0 -311
- django_cfg/apps/payments/services/security/__init__.py +0 -34
- django_cfg/apps/payments/services/security/error_handler.py +0 -637
- django_cfg/apps/payments/services/security/payment_notifications.py +0 -342
- django_cfg/apps/payments/services/security/webhook_validator.py +0 -475
- django_cfg/apps/payments/services/validators/__init__.py +0 -8
- django_cfg/apps/payments/static/payments/css/payments.css +0 -340
- django_cfg/apps/payments/static/payments/js/notifications.js +0 -202
- django_cfg/apps/payments/static/payments/js/payment-utils.js +0 -318
- django_cfg/apps/payments/static/payments/js/theme.js +0 -86
- django_cfg/apps/payments/tasks/__init__.py +0 -12
- django_cfg/apps/payments/tasks/webhook_processing.py +0 -177
- django_cfg/apps/payments/templates/payments/base.html +0 -182
- django_cfg/apps/payments/templates/payments/components/payment_card.html +0 -201
- django_cfg/apps/payments/templates/payments/components/payment_qr_code.html +0 -109
- django_cfg/apps/payments/templates/payments/components/progress_bar.html +0 -36
- django_cfg/apps/payments/templates/payments/components/provider_stats.html +0 -40
- django_cfg/apps/payments/templates/payments/components/status_badge.html +0 -27
- django_cfg/apps/payments/templates/payments/components/status_overview.html +0 -144
- django_cfg/apps/payments/templates/payments/dashboard.html +0 -346
- django_cfg/apps/payments/templatetags/payments_tags.py +0 -315
- django_cfg/apps/payments/urls_templates.py +0 -52
- django_cfg/apps/payments/utils/__init__.py +0 -45
- django_cfg/apps/payments/utils/billing_utils.py +0 -342
- django_cfg/apps/payments/utils/config_utils.py +0 -245
- django_cfg/apps/payments/utils/middleware_utils.py +0 -228
- django_cfg/apps/payments/utils/validation_utils.py +0 -94
- django_cfg/apps/payments/views/__init__.py +0 -62
- django_cfg/apps/payments/views/api_key_views.py +0 -164
- django_cfg/apps/payments/views/balance_views.py +0 -75
- django_cfg/apps/payments/views/currency_views.py +0 -111
- django_cfg/apps/payments/views/payment_views.py +0 -149
- django_cfg/apps/payments/views/subscription_views.py +0 -135
- django_cfg/apps/payments/views/tariff_views.py +0 -131
- django_cfg/apps/payments/views/templates/__init__.py +0 -25
- django_cfg/apps/payments/views/templates/ajax.py +0 -312
- django_cfg/apps/payments/views/templates/base.py +0 -204
- django_cfg/apps/payments/views/templates/dashboard.py +0 -60
- django_cfg/apps/payments/views/templates/payment_detail.py +0 -102
- django_cfg/apps/payments/views/templates/payment_management.py +0 -164
- django_cfg/apps/payments/views/templates/qr_code.py +0 -174
- django_cfg/apps/payments/views/templates/stats.py +0 -240
- django_cfg/apps/payments/views/templates/utils.py +0 -181
- django_cfg/apps/payments/views/webhook_views.py +0 -266
- django_cfg/apps/payments/viewsets.py +0 -65
- django_cfg/core/integration.py +0 -160
- django_cfg/modules/django_currency/clients/coingecko_client.py +0 -257
- django_cfg/modules/django_currency/clients/yfinance_client.py +0 -246
- django_cfg/template_archive/.gitignore +0 -1
- django_cfg/template_archive/__init__.py +0 -0
- django_cfg/urls.py +0 -33
- {django_cfg-1.2.29.dist-info → django_cfg-1.3.1.dist-info}/WHEEL +0 -0
- {django_cfg-1.2.29.dist-info → django_cfg-1.3.1.dist-info}/entry_points.txt +0 -0
- {django_cfg-1.2.29.dist-info → django_cfg-1.3.1.dist-info}/licenses/LICENSE +0 -0
@@ -1,16 +1,16 @@
|
|
1
1
|
"""
|
2
|
-
|
2
|
+
Data models for currency conversion and API responses.
|
3
3
|
"""
|
4
4
|
|
5
5
|
from datetime import datetime
|
6
|
-
from typing import Optional, List, Set
|
7
|
-
from pydantic import BaseModel, Field
|
6
|
+
from typing import Optional, List, Set, Dict, Any
|
7
|
+
from pydantic import BaseModel, Field, RootModel
|
8
8
|
|
9
9
|
|
10
10
|
class Rate(BaseModel):
|
11
11
|
"""Currency exchange rate model."""
|
12
12
|
|
13
|
-
source: str = Field(description="Data source (
|
13
|
+
source: str = Field(description="Data source (yahoo, coinpaprika)")
|
14
14
|
base_currency: str = Field(description="Base currency code")
|
15
15
|
quote_currency: str = Field(description="Quote currency code")
|
16
16
|
rate: float = Field(description="Exchange rate")
|
@@ -34,21 +34,132 @@ class ConversionResult(BaseModel):
|
|
34
34
|
path: Optional[str] = Field(default=None, description="Conversion path if indirect")
|
35
35
|
|
36
36
|
|
37
|
-
class
|
38
|
-
"""
|
37
|
+
class YahooFinanceCurrencies(BaseModel):
|
38
|
+
"""Yahoo Finance supported currencies model."""
|
39
39
|
|
40
40
|
fiat: List[str] = Field(description="Supported fiat currencies")
|
41
41
|
|
42
42
|
|
43
|
-
class
|
44
|
-
"""
|
43
|
+
class CoinPaprikaCurrencies(BaseModel):
|
44
|
+
"""CoinPaprika supported currencies model."""
|
45
45
|
|
46
46
|
crypto: List[str] = Field(description="Supported cryptocurrencies")
|
47
|
-
vs_currencies: List[str] = Field(description="Supported quote currencies")
|
48
47
|
|
49
48
|
|
50
49
|
class SupportedCurrencies(BaseModel):
|
51
50
|
"""All supported currencies model."""
|
52
51
|
|
53
|
-
|
54
|
-
|
52
|
+
yahoo: YahooFinanceCurrencies = Field(description="Yahoo Finance currencies")
|
53
|
+
coinpaprika: CoinPaprikaCurrencies = Field(description="CoinPaprika currencies")
|
54
|
+
|
55
|
+
|
56
|
+
# ============================================================================
|
57
|
+
# API RESPONSE MODELS
|
58
|
+
# ============================================================================
|
59
|
+
|
60
|
+
class YahooFinanceTradingPeriod(BaseModel):
|
61
|
+
"""Yahoo Finance trading period."""
|
62
|
+
start: int
|
63
|
+
end: int
|
64
|
+
timezone: str
|
65
|
+
gmtoffset: int
|
66
|
+
|
67
|
+
|
68
|
+
class YahooFinanceCurrentTradingPeriod(BaseModel):
|
69
|
+
"""Yahoo Finance current trading period."""
|
70
|
+
pre: YahooFinanceTradingPeriod
|
71
|
+
regular: YahooFinanceTradingPeriod
|
72
|
+
post: YahooFinanceTradingPeriod
|
73
|
+
|
74
|
+
|
75
|
+
class YahooFinanceMeta(BaseModel):
|
76
|
+
"""Yahoo Finance chart meta data."""
|
77
|
+
currency: str
|
78
|
+
symbol: str
|
79
|
+
exchangeName: str
|
80
|
+
fullExchangeName: str
|
81
|
+
instrumentType: str
|
82
|
+
firstTradeDate: int
|
83
|
+
regularMarketTime: int
|
84
|
+
hasPrePostMarketData: bool
|
85
|
+
gmtoffset: int
|
86
|
+
timezone: str
|
87
|
+
exchangeTimezoneName: str
|
88
|
+
regularMarketPrice: float
|
89
|
+
fiftyTwoWeekHigh: Optional[float] = None
|
90
|
+
fiftyTwoWeekLow: Optional[float] = None
|
91
|
+
regularMarketDayHigh: Optional[float] = None
|
92
|
+
regularMarketDayLow: Optional[float] = None
|
93
|
+
regularMarketVolume: Optional[int] = None
|
94
|
+
longName: Optional[str] = None
|
95
|
+
shortName: Optional[str] = None
|
96
|
+
chartPreviousClose: Optional[float] = None
|
97
|
+
previousClose: Optional[float] = None
|
98
|
+
scale: Optional[int] = None
|
99
|
+
priceHint: Optional[int] = None
|
100
|
+
currentTradingPeriod: Optional[YahooFinanceCurrentTradingPeriod] = None
|
101
|
+
tradingPeriods: Optional[List[List[YahooFinanceTradingPeriod]]] = None
|
102
|
+
dataGranularity: Optional[str] = None
|
103
|
+
range: Optional[str] = None
|
104
|
+
validRanges: Optional[List[str]] = None
|
105
|
+
|
106
|
+
|
107
|
+
class YahooFinanceResult(BaseModel):
|
108
|
+
"""Yahoo Finance chart result."""
|
109
|
+
meta: YahooFinanceMeta
|
110
|
+
|
111
|
+
|
112
|
+
class YahooFinanceChart(BaseModel):
|
113
|
+
"""Yahoo Finance chart response."""
|
114
|
+
result: List[YahooFinanceResult]
|
115
|
+
error: Optional[str] = None
|
116
|
+
|
117
|
+
|
118
|
+
class YahooFinanceResponse(BaseModel):
|
119
|
+
"""Complete Yahoo Finance API response."""
|
120
|
+
chart: YahooFinanceChart
|
121
|
+
|
122
|
+
|
123
|
+
class CoinPaprikaQuoteUSD(BaseModel):
|
124
|
+
"""CoinPaprika USD quote data."""
|
125
|
+
price: float
|
126
|
+
volume_24h: Optional[float] = None
|
127
|
+
volume_24h_change_24h: Optional[float] = None
|
128
|
+
market_cap: Optional[float] = None
|
129
|
+
market_cap_change_24h: Optional[float] = None
|
130
|
+
percent_change_15m: Optional[float] = None
|
131
|
+
percent_change_30m: Optional[float] = None
|
132
|
+
percent_change_1h: Optional[float] = None
|
133
|
+
percent_change_6h: Optional[float] = None
|
134
|
+
percent_change_12h: Optional[float] = None
|
135
|
+
percent_change_24h: Optional[float] = None
|
136
|
+
percent_change_7d: Optional[float] = None
|
137
|
+
percent_change_30d: Optional[float] = None
|
138
|
+
percent_change_1y: Optional[float] = None
|
139
|
+
ath_price: Optional[float] = None
|
140
|
+
ath_date: Optional[str] = None
|
141
|
+
percent_from_price_ath: Optional[float] = None
|
142
|
+
|
143
|
+
|
144
|
+
class CoinPaprikaQuotes(BaseModel):
|
145
|
+
"""CoinPaprika quotes container."""
|
146
|
+
USD: CoinPaprikaQuoteUSD
|
147
|
+
|
148
|
+
|
149
|
+
class CoinPaprikaTicker(BaseModel):
|
150
|
+
"""CoinPaprika ticker data."""
|
151
|
+
id: str
|
152
|
+
name: str
|
153
|
+
symbol: str
|
154
|
+
rank: int
|
155
|
+
total_supply: Optional[float] = None
|
156
|
+
max_supply: Optional[float] = None
|
157
|
+
beta_value: Optional[float] = None
|
158
|
+
first_data_at: Optional[str] = None
|
159
|
+
last_updated: str
|
160
|
+
quotes: CoinPaprikaQuotes
|
161
|
+
|
162
|
+
|
163
|
+
class CoinPaprikaTickersResponse(RootModel):
|
164
|
+
"""CoinPaprika tickers response (list of tickers)."""
|
165
|
+
root: List[CoinPaprikaTicker]
|
@@ -5,8 +5,8 @@ Database utilities for currency management.
|
|
5
5
|
from .database_loader import (
|
6
6
|
CurrencyDatabaseLoader,
|
7
7
|
DatabaseLoaderConfig,
|
8
|
-
|
9
|
-
|
8
|
+
CoinPaprikaCoinInfo,
|
9
|
+
YahooFinanceCurrencyInfo,
|
10
10
|
CurrencyRateInfo,
|
11
11
|
RateLimiter,
|
12
12
|
create_database_loader,
|
@@ -16,8 +16,8 @@ from .database_loader import (
|
|
16
16
|
__all__ = [
|
17
17
|
'CurrencyDatabaseLoader',
|
18
18
|
'DatabaseLoaderConfig',
|
19
|
-
'
|
20
|
-
'
|
19
|
+
'CoinPaprikaCoinInfo',
|
20
|
+
'YahooFinanceCurrencyInfo',
|
21
21
|
'CurrencyRateInfo',
|
22
22
|
'RateLimiter',
|
23
23
|
'create_database_loader',
|