sarim commited on
Commit
0e6871c
·
1 Parent(s): 690807f

get all currency

Browse files
Files changed (4) hide show
  1. app.py +11 -1
  2. currency_exchange.py +36 -0
  3. metals_price.py +11 -11
  4. models.py +676 -1
app.py CHANGED
@@ -15,6 +15,7 @@ from psx_scraper import PsxScraper
15
  from metals_price import MetalsPrice
16
  import os
17
  import pytz
 
18
 
19
 
20
  CACHE = {
@@ -481,4 +482,13 @@ def get_platinum_historial_price():
481
 
482
  @app.get("/palladium_price")
483
  def get_palladium_historial_price():
484
- return CACHE['palladium_price']
 
 
 
 
 
 
 
 
 
 
15
  from metals_price import MetalsPrice
16
  import os
17
  import pytz
18
+ from currency_exchange import CurrencyExchange
19
 
20
 
21
  CACHE = {
 
482
 
483
  @app.get("/palladium_price")
484
  def get_palladium_historial_price():
485
+ return CACHE['palladium_price']
486
+
487
+
488
+ @app.get("/get_all_currency")
489
+ def get_all_currency():
490
+ currencyExchange = CurrencyExchange()
491
+
492
+ response = currencyExchange.get_all_currency()
493
+
494
+ return response
currency_exchange.py ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import re
2
+ from pydantic import main
3
+ from models import CountryName , CurrencyCountryResponse, CurrencyResponse
4
+ import requests
5
+
6
+
7
+ class CurrencyExchange:
8
+
9
+ def get_all_currency(self) -> CurrencyCountryResponse:
10
+
11
+ country_response = requests.get('https://cdn.jsdelivr.net/npm/@fawazahmed0/currency-api@latest/v1/currencies.json')
12
+ currency_names = country_response.json()
13
+
14
+ rates_response = requests.get('https://cdn.jsdelivr.net/npm/@fawazahmed0/currency-api@latest/v1/currencies/pkr.json')
15
+ pkr_rates = rates_response.json().get('pkr', {})
16
+
17
+ # Only include currencies that exist in both datasets
18
+ currency_list = []
19
+ for currency_code in currency_names:
20
+ if currency_code in pkr_rates:
21
+ currency_list.append(
22
+ CurrencyResponse(
23
+ country=currency_names[currency_code],
24
+ currency= (1 / pkr_rates[currency_code])
25
+ )
26
+ )
27
+
28
+ return CurrencyCountryResponse(response=currency_list)
29
+
30
+
31
+ if __name__ == "__main__":
32
+ currencyExchange = CurrencyExchange()
33
+
34
+ response = currencyExchange.get_all_currency()
35
+ print(response)
36
+
metals_price.py CHANGED
@@ -57,18 +57,18 @@ class MetalsPrice: # Fixed typo: "Metails" -> "Metals"
57
 
58
 
59
  # # ✅ Example Usage
60
- if __name__ == "__main__":
61
- BASE_URL = "https://api.gold-api.com/history"
62
 
63
- # Initialize the class
64
- metals_api = MetalsPrice(api_key="", base_url=BASE_URL)
65
 
66
- # Last 730 days (2 years)
67
- end = int(datetime.utcnow().timestamp())
68
- start = int((datetime.utcnow() - timedelta(days=30)).timestamp())
69
 
70
- data = metals_api.get_price_history("XAU", start, end)
71
 
72
- if data:
73
- print("Price History:")
74
- print(data)
 
57
 
58
 
59
  # # ✅ Example Usage
60
+ # if __name__ == "__main__":
61
+ # BASE_URL = "https://api.gold-api.com/history"
62
 
63
+ # # Initialize the class
64
+ # metals_api = MetalsPrice(api_key="", base_url=BASE_URL)
65
 
66
+ # # Last 730 days (2 years)
67
+ # end = int(datetime.utcnow().timestamp())
68
+ # start = int((datetime.utcnow() - timedelta(days=30)).timestamp())
69
 
70
+ # data = metals_api.get_price_history("XAU", start, end)
71
 
72
+ # if data:
73
+ # print("Price History:")
74
+ # print(data)
models.py CHANGED
@@ -136,4 +136,679 @@ class CircuitBreakerRow(BaseModel):
136
  @field_validator("volume", mode="before")
137
  @classmethod
138
  def parse_int(cls, v):
139
- return int(v.replace(",", ""))
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
136
  @field_validator("volume", mode="before")
137
  @classmethod
138
  def parse_int(cls, v):
139
+ return int(v.replace(",", ""))
140
+
141
+
142
+
143
+ ## Currency Model
144
+
145
+
146
+ from typing import Optional
147
+ from pydantic import BaseModel
148
+
149
+
150
+
151
+ class CountryName(BaseModel):
152
+ field_1inch: str = Field(..., alias='1inch')
153
+ aave: str
154
+ ada: str
155
+ aed: str
156
+ afn: str
157
+ agix: str
158
+ akt: str
159
+ algo: str
160
+ all: str
161
+ amd: str
162
+ amp: str
163
+ ang: str
164
+ aoa: str
165
+ ape: str
166
+ apt: str
167
+ ar: str
168
+ arb: str
169
+ ars: str
170
+ atom: str
171
+ aud: str
172
+ avax: str
173
+ awg: str
174
+ axs: str
175
+ azn: str
176
+ bake: str
177
+ bam: str
178
+ bat: str
179
+ bbd: str
180
+ bch: str
181
+ bdt: str
182
+ bgn: str
183
+ bhd: str
184
+ bif: str
185
+ bmd: str
186
+ bnb: str
187
+ bnd: str
188
+ bob: str
189
+ brl: str
190
+ bsd: str
191
+ bsv: str
192
+ bsw: str
193
+ btc: str
194
+ btg: str
195
+ btn: str
196
+ btt: str
197
+ busd: str
198
+ bwp: str
199
+ byn: str
200
+ byr: str
201
+ bzd: str
202
+ cad: str
203
+ cake: str
204
+ cdf: str
205
+ celo: str
206
+ cfx: str
207
+ chf: str
208
+ chz: str
209
+ clp: str
210
+ cnh: str
211
+ cny: str
212
+ comp: str
213
+ cop: str
214
+ crc: str
215
+ cro: str
216
+ crv: str
217
+ cspr: str
218
+ cuc: str
219
+ cup: str
220
+ cve: str
221
+ cvx: str
222
+ czk: str
223
+ dai: str
224
+ dash: str
225
+ dcr: str
226
+ dfi: str
227
+ djf: str
228
+ dkk: str
229
+ doge: str
230
+ dop: str
231
+ dot: str
232
+ dydx: str
233
+ dzd: str
234
+ egld: str
235
+ egp: str
236
+ enj: str
237
+ eos: str
238
+ ern: str
239
+ etb: str
240
+ etc: str
241
+ eth: str
242
+ eur: str
243
+ fei: str
244
+ fil: str
245
+ fjd: str
246
+ fkp: str
247
+ flow: str
248
+ flr: str
249
+ frax: str
250
+ ftt: str
251
+ gala: str
252
+ gbp: str
253
+ gel: str
254
+ ggp: str
255
+ ghs: str
256
+ gip: str
257
+ gmd: str
258
+ gmx: str
259
+ gnf: str
260
+ gno: str
261
+ grt: str
262
+ gt: str
263
+ gtq: str
264
+ gusd: str
265
+ gyd: str
266
+ hbar: str
267
+ hkd: str
268
+ hnl: str
269
+ hnt: str
270
+ hot: str
271
+ hrk: str
272
+ ht: str
273
+ htg: str
274
+ huf: str
275
+ icp: str
276
+ idr: str
277
+ ils: str
278
+ imp: str
279
+ imx: str
280
+ inj: str
281
+ inr: str
282
+ iqd: str
283
+ irr: str
284
+ isk: str
285
+ jep: str
286
+ jmd: str
287
+ jod: str
288
+ jpy: str
289
+ kas: str
290
+ kava: str
291
+ kcs: str
292
+ kda: str
293
+ kes: str
294
+ kgs: str
295
+ khr: str
296
+ kmf: str
297
+ knc: str
298
+ kpw: str
299
+ krw: str
300
+ ksm: str
301
+ kwd: str
302
+ kyd: str
303
+ kzt: str
304
+ lak: str
305
+ lbp: str
306
+ ldo: str
307
+ leo: str
308
+ link: str
309
+ lkr: str
310
+ lrc: str
311
+ lrd: str
312
+ lsl: str
313
+ ltc: str
314
+ ltl: str
315
+ luna: str
316
+ lunc: str
317
+ lvl: str
318
+ lyd: str
319
+ mad: str
320
+ mana: str
321
+ mbx: str
322
+ mdl: str
323
+ mga: str
324
+ mina: str
325
+ mkd: str
326
+ mkr: str
327
+ mmk: str
328
+ mnt: str
329
+ mop: str
330
+ mru: str
331
+ mur: str
332
+ mvr: str
333
+ mwk: str
334
+ mxn: str
335
+ myr: str
336
+ mzn: str
337
+ nad: str
338
+ near: str
339
+ neo: str
340
+ nexo: str
341
+ nft: str
342
+ ngn: str
343
+ nio: str
344
+ nok: str
345
+ npr: str
346
+ nzd: str
347
+ okb: str
348
+ omr: str
349
+ one: str
350
+ op: str
351
+ ordi: str
352
+ pab: str
353
+ paxg: str
354
+ pen: str
355
+ pepe: str
356
+ pgk: str
357
+ php: str
358
+ pi: str
359
+ pkr: str
360
+ pln: str
361
+ pol: str
362
+ pyg: str
363
+ qar: str
364
+ qnt: str
365
+ qtum: str
366
+ ron: str
367
+ rpl: str
368
+ rsd: str
369
+ rub: str
370
+ rune: str
371
+ rvn: str
372
+ rwf: str
373
+ sand: str
374
+ sar: str
375
+ sbd: str
376
+ scr: str
377
+ sdg: str
378
+ sek: str
379
+ sgd: str
380
+ shib: str
381
+ shp: str
382
+ sle: str
383
+ sll: str
384
+ snx: str
385
+ sol: str
386
+ sos: str
387
+ srd: str
388
+ std: str
389
+ stn: str
390
+ stx: str
391
+ sui: str
392
+ svc: str
393
+ syp: str
394
+ szl: str
395
+ thb: str
396
+ theta: str
397
+ tjs: str
398
+ tmt: str
399
+ tnd: str
400
+ ton: str
401
+ top: str
402
+ trx: str
403
+ try_: str = Field(..., alias='try')
404
+ ttd: str
405
+ tusd: str
406
+ twd: str
407
+ twt: str
408
+ tzs: str
409
+ uah: str
410
+ ugx: str
411
+ uni: str
412
+ usd: str
413
+ usdc: str
414
+ usdd: str
415
+ usdp: str
416
+ usdt: str
417
+ uyu: str
418
+ uzs: str
419
+ ves: str
420
+ vet: str
421
+ vnd: str
422
+ vuv: str
423
+ waves: str
424
+ wemix: str
425
+ woo: str
426
+ wst: str
427
+ xaf: str
428
+ xag: str
429
+ xau: str
430
+ xaut: str
431
+ xcd: str
432
+ xcg: str
433
+ xch: str
434
+ xdc: str
435
+ xdr: str
436
+ xec: str
437
+ xem: str
438
+ xlm: str
439
+ xmr: str
440
+ xof: str
441
+ xpf: str
442
+ xrp: str
443
+ xtz: str
444
+ yer: str
445
+ zar: str
446
+ zec: str
447
+ zil: str
448
+ zmk: str
449
+ zmw: str
450
+ zwl: str
451
+
452
+
453
+
454
+ class PkrRates(BaseModel):
455
+ """Model for PKR exchange rates against various currencies"""
456
+
457
+ inch: float = Field(..., alias='1inch')
458
+ aave: Optional[float] = 0.000027870604
459
+ ada: Optional[float] = 0.01212527
460
+ aed: Optional[float] = 0.013141508
461
+ afn: Optional[float] = 0.22735161
462
+ agix: Optional[float] = 0.046521451
463
+ akt: Optional[float] = 0.010385581
464
+ algo: Optional[float] = 0.036216193
465
+ all: Optional[float] = 0.29080989
466
+ amd: Optional[float] = 1.36284581
467
+ amp: Optional[float] = 2.24984732
468
+ ang: Optional[float] = 0.0064189272
469
+ aoa: Optional[float] = 3.27135551
470
+ ape: Optional[float] = 0.026637767
471
+ apt: Optional[float] = 0.0036678014
472
+ ar: Optional[float] = 0.0017025592
473
+ arb: Optional[float] = 0.02994547
474
+ ars: Optional[float] = 4.99480145
475
+ atom: Optional[float] = 0.0016563239
476
+ ats: Optional[float] = 0.041480256
477
+ aud: Optional[float] = 0.0050590778
478
+ avax: Optional[float] = 0.00037492198
479
+ awg: Optional[float] = 0.0064052552
480
+ axs: Optional[float] = 0.0024467576
481
+ azm: Optional[float] = 30.44265554
482
+ azn: Optional[float] = 0.0060885311
483
+ bake: Optional[float] = 1.34151212
484
+ bam: Optional[float] = 0.0058958256
485
+ bat: Optional[float] = 0.026497622
486
+ bbd: Optional[float] = 0.0071567097
487
+ bch: Optional[float] = 0.000006389789
488
+ bdt: Optional[float] = 0.43772915
489
+ bef: Optional[float] = 0.12160414
490
+ bgn: Optional[float] = 0.0058958256
491
+ bhd: Optional[float] = 0.0013454614
492
+ bif: Optional[float] = 10.57869332
493
+ bmd: Optional[float] = 0.0035783548
494
+ bnb: Optional[float] = 0.0000056818118
495
+ bnd: Optional[float] = 0.0045205631
496
+ bob: Optional[float] = 0.024734743
497
+ brl: Optional[float] = 0.018678264
498
+ bsd: Optional[float] = 0.0035783548
499
+ bsv: Optional[float] = 0.00020956946
500
+ bsw: Optional[float] = 1.81327133
501
+ btc: Optional[float] = 0.000000051457291 # 5.1457291e-8
502
+ btg: Optional[float] = 0.0041817238
503
+ btn: Optional[float] = 0.32404079
504
+ btt: Optional[float] = 10075.74928564
505
+ busd: Optional[float] = 0.0035764397
506
+ bwp: Optional[float] = 0.046911298
507
+ byn: Optional[float] = 0.010237608
508
+ byr: Optional[float] = 102.37607704
509
+ bzd: Optional[float] = 0.0071995125
510
+ cad: Optional[float] = 0.0048731761
511
+ cake: Optional[float] = 0.0026684964
512
+ cdf: Optional[float] = 8.1224622
513
+ celo: Optional[float] = 0.039886713
514
+ cfx: Optional[float] = 0.062977778
515
+ chf: Optional[float] = 0.0027485132
516
+ chz: Optional[float] = 0.084007786
517
+ clp: Optional[float] = 3.08238532
518
+ cnh: Optional[float] = 0.024695302
519
+ cny: Optional[float] = 0.024721696
520
+ comp: Optional[float] = 0.00017687447
521
+ cop: Optional[float] = 13.09720649
522
+ crc: Optional[float] = 1.72893021
523
+ cro: Optional[float] = 0.043457367
524
+ crv: Optional[float] = 0.013495293
525
+ cspr: Optional[float] = 0.99753074
526
+ cuc: Optional[float] = 0.0035783548
527
+ cup: Optional[float] = 0.085787938
528
+ cve: Optional[float] = 0.33240757
529
+ cvx: Optional[float] = 0.001812335
530
+ cyp: Optional[float] = 0.0017643013
531
+ czk: Optional[float] = 0.073152658
532
+ dai: Optional[float] = 0.0035784301
533
+ dash: Optional[float] = 0.000088593379
534
+ dcr: Optional[float] = 0.00014578477
535
+ dem: Optional[float] = 0.0058958256
536
+ dfi: Optional[float] = 5.35164713
537
+ djf: Optional[float] = 0.63819024
538
+ dkk: Optional[float] = 0.022531693
539
+ doge: Optional[float] = 0.03161875
540
+ dop: Optional[float] = 0.2223377
541
+ dot: Optional[float] = 0.0025389979
542
+ dydx: Optional[float] = 0.031888397
543
+ dzd: Optional[float] = 0.46388719
544
+ eek: Optional[float] = 0.047166605
545
+ egld: Optional[float] = 0.00068601026
546
+ egp: Optional[float] = 0.16730156
547
+ enj: Optional[float] = 0.15902853
548
+ eos: Optional[float] = 0.040239152
549
+ ern: Optional[float] = 0.053675323
550
+ esp: Optional[float] = 0.50156856
551
+ etb: Optional[float] = 0.55621057
552
+ etc: Optional[float] = 0.0003995226
553
+ eth: Optional[float] = 0.0000017365799
554
+ eur: Optional[float] = 0.0030144878
555
+ eurc: Optional[float] = 0.0030166921
556
+ fei: Optional[float] = 0.0035090934
557
+ fil: Optional[float] = 0.0035277925
558
+ fim: Optional[float] = 0.01792333
559
+ fjd: Optional[float] = 0.0078727543
560
+ fkp: Optional[float] = 0.0026213082
561
+ flow: Optional[float] = 0.07995228
562
+ flr: Optional[float] = 0.36052625
563
+ frax: Optional[float] = 0.0036090592
564
+ frf: Optional[float] = 0.019773744
565
+ ftt: Optional[float] = 0.010051534
566
+ gala: Optional[float] = 0.83330051
567
+ gbp: Optional[float] = 0.0026213082
568
+ gel: Optional[float] = 0.009591452
569
+ ggp: Optional[float] = 0.0026213082
570
+ ghc: Optional[float] = 393.42404137
571
+ ghs: Optional[float] = 0.039342404
572
+ gip: Optional[float] = 0.0026213082
573
+ gmd: Optional[float] = 0.26411095
574
+ gmx: Optional[float] = 0.00054220394
575
+ gnf: Optional[float] = 31.40305737
576
+ gno: Optional[float] = 0.000027069202
577
+ grd: Optional[float] = 1.02718671
578
+ grt: Optional[float] = 0.12436019
579
+ gt: Optional[float] = 0.0004932477
580
+ gtq: Optional[float] = 0.027422428
581
+ gusd: Optional[float] = 0.0035820834
582
+ gyd: Optional[float] = 0.74824559
583
+ hbar: Optional[float] = 0.03468262
584
+ hkd: Optional[float] = 0.02797238
585
+ hnl: Optional[float] = 0.094857481
586
+ hnt: Optional[float] = 0.0031545799
587
+ hot: Optional[float] = 8.77272144
588
+ hrk: Optional[float] = 0.022712658
589
+ ht: Optional[float] = 0.014406174
590
+ htg: Optional[float] = 0.46996889
591
+ huf: Optional[float] = 1.14312086
592
+ icp: Optional[float] = 0.0014210805
593
+ idr: Optional[float] = 60.2210084
594
+ iep: Optional[float] = 0.002374102
595
+ ils: Optional[float] = 0.011043883
596
+ imp: Optional[float] = 0.0026213082
597
+ imx: Optional[float] = 0.020578292
598
+ inj: Optional[float] = 0.0010994197
599
+ inr: Optional[float] = 0.32404079
600
+ iqd: Optional[float] = 4.68801963
601
+ irr: Optional[float] = 4575.15188598
602
+ isk: Optional[float] = 0.43718127
603
+ itl: Optional[float] = 5.83686224
604
+ jep: Optional[float] = 0.0026213082
605
+ jmd: Optional[float] = 0.55854612
606
+ jod: Optional[float] = 0.0025370536
607
+ jpy: Optional[float] = 0.5464799
608
+ kas: Optional[float] = 0.10824109
609
+ kava: Optional[float] = 0.061803407
610
+ kcs: Optional[float] = 0.00041413697
611
+ kda: Optional[float] = 0.44424418
612
+ kes: Optional[float] = 0.46130149
613
+ kgs: Optional[float] = 0.31295651
614
+ khr: Optional[float] = 14.37682204
615
+ klay: Optional[float] = 0.05966859
616
+ kmf: Optional[float] = 1.48303077
617
+ knc: Optional[float] = 0.023756734
618
+ kpw: Optional[float] = 3.22057115
619
+ krw: Optional[float] = 5.15615217
620
+ ksm: Optional[float] = 0.00074242121
621
+ kwd: Optional[float] = 0.0010966712
622
+ kyd: Optional[float] = 0.0029556765
623
+ kzt: Optional[float] = 1.77225517
624
+ lak: Optional[float] = 76.63134176
625
+ lbp: Optional[float] = 321.24646567
626
+ ldo: Optional[float] = 0.010060335
627
+ leo: Optional[float] = 0.00040689885
628
+ link: Optional[float] = 0.00039577489
629
+ lkr: Optional[float] = 1.10636398
630
+ lrc: Optional[float] = 0.10452585
631
+ lrd: Optional[float] = 0.6665422
632
+ lsl: Optional[float] = 0.057056562
633
+ ltc: Optional[float] = 0.000064180737
634
+ ltl: Optional[float] = 0.010408423
635
+ luf: Optional[float] = 0.12160414
636
+ luna: Optional[float] = 0.055650373
637
+ lunc: Optional[float] = 103.17056374
638
+ lvl: Optional[float] = 0.002118582
639
+ lyd: Optional[float] = 0.022530779
640
+ mad: Optional[float] = 0.032674995
641
+ mana: Optional[float] = 0.033309473
642
+ mbx: Optional[float] = 0.067994222
643
+ mdl: Optional[float] = 0.060616726
644
+ mga: Optional[float] = 15.70701508
645
+ mgf: Optional[float] = 78.53507542
646
+ mina: Optional[float] = 0.052000424
647
+ mkd: Optional[float] = 0.18573365
648
+ mkr: Optional[float] = 0.0000021884969
649
+ mmk: Optional[float] = 7.5133109
650
+ mnt: Optional[float] = 12.76193802
651
+ mop: Optional[float] = 0.028811551
652
+ mro: Optional[float] = 1.42969127
653
+ mru: Optional[float] = 0.14296913
654
+ mtl: Optional[float] = 0.0012941196
655
+ mur: Optional[float] = 0.16422284
656
+ mvr: Optional[float] = 0.05529167
657
+ mwk: Optional[float] = 6.20471537
658
+ mxn: Optional[float] = 0.061423027
659
+ mxv: Optional[float] = 0.0070874814
660
+ myr: Optional[float] = 0.013980479
661
+ mzm: Optional[float] = 228.55055252
662
+ mzn: Optional[float] = 0.22855055
663
+ nad: Optional[float] = 0.057056562
664
+ near: Optional[float] = 0.0033478921
665
+ neo: Optional[float] = 0.0012221448
666
+ nexo: Optional[float] = 0.0041653116
667
+ nft: Optional[float] = 10324.6074446
668
+ ngn: Optional[float] = 4.85024477
669
+ nio: Optional[float] = 0.13151867
670
+ nlg: Optional[float] = 0.0066430568
671
+ nok: Optional[float] = 0.034016339
672
+ npr: Optional[float] = 0.51870829
673
+ nzd: Optional[float] = 0.0059255473
674
+ okb: Optional[float] = 0.000044555727
675
+ omr: Optional[float] = 0.0013744249
676
+ one: Optional[float] = 1.34065259
677
+ op: Optional[float] = 0.018308592
678
+ ordi: Optional[float] = 0.0012187735
679
+ pab: Optional[float] = 0.0035783548
680
+ paxg: Optional[float] = 0.0000007115336 # 7.115336e-7
681
+ pen: Optional[float] = 0.011999961
682
+ pepe: Optional[float] = 737.8067472
683
+ pgk: Optional[float] = 0.015333169
684
+ php: Optional[float] = 0.20716718
685
+ pi: Optional[float] = 0.018629944
686
+ pkr: Optional[float] = 1.0
687
+ pln: Optional[float] = 0.012697271
688
+ pol: Optional[float] = 0.033052428
689
+ pte: Optional[float] = 0.60435054
690
+ pyg: Optional[float] = 23.44895477
691
+ qar: Optional[float] = 0.013025212
692
+ qnt: Optional[float] = 0.000048647043
693
+ qtum: Optional[float] = 0.0034882245
694
+ rol: Optional[float] = 153.53159924
695
+ ron: Optional[float] = 0.01535316
696
+ rpl: Optional[float] = 0.0020615425
697
+ rsd: Optional[float] = 0.35404644
698
+ rub: Optional[float] = 0.27456613
699
+ rune: Optional[float] = 0.0085832862
700
+ rvn: Optional[float] = 0.56276866
701
+ rwf: Optional[float] = 5.21546965
702
+ sand: Optional[float] = 0.038975081
703
+ sar: Optional[float] = 0.013418831
704
+ sbd: Optional[float] = 0.028782375
705
+ scr: Optional[float] = 0.052206617
706
+ sdd: Optional[float] = 214.75529922
707
+ sdg: Optional[float] = 2.14755299
708
+ sek: Optional[float] = 0.031929605
709
+ sgd: Optional[float] = 0.0045205631
710
+ shib: Optional[float] = 518.99655842
711
+ shp: Optional[float] = 0.0026213082
712
+ sit: Optional[float] = 0.72239185
713
+ skk: Optional[float] = 0.090814459
714
+ sle: Optional[float] = 0.081765145
715
+ sll: Optional[float] = 81.76514481
716
+ snx: Optional[float] = 0.011623316
717
+ sol: Optional[float] = 0.000040638459
718
+ sos: Optional[float] = 2.04303502
719
+ spl: Optional[float] = 0.00059639247
720
+ srd: Optional[float] = 0.13559105
721
+ srg: Optional[float] = 135.59105178
722
+ ssp: Optional[float] = 16.29194282
723
+ std: Optional[float] = 74.1291884
724
+ stn: Optional[float] = 0.074129188
725
+ stx: Optional[float] = 0.012988158
726
+ sui: Optional[float] = 0.0034980047
727
+ svc: Optional[float] = 0.031310605
728
+ syp: Optional[float] = 0.3957423
729
+ szl: Optional[float] = 0.057056562
730
+ thb: Optional[float] = 0.11116065
731
+ theta: Optional[float] = 0.016388406
732
+ tjs: Optional[float] = 0.033782985
733
+ tmm: Optional[float] = 62.54995053
734
+ tmt: Optional[float] = 0.01250999
735
+ tnd: Optional[float] = 0.010272105
736
+ ton: Optional[float] = 0.0024115185
737
+ top: Optional[float] = 0.0084204575
738
+ trl: Optional[float] = 156077.25045115
739
+ trx: Optional[float] = 0.012694543
740
+ try_: float = Field(..., alias='try')
741
+ ttd: Optional[float] = 0.024142566
742
+ tusd: Optional[float] = 0.0035839966
743
+ tvd: Optional[float] = 0.0050590778
744
+ twd: Optional[float] = 0.11230099
745
+ twt: Optional[float] = 0.0068069886
746
+ tzs: Optional[float] = 9.23521055
747
+ uah: Optional[float] = 0.15408012
748
+ ugx: Optional[float] = 12.66715156
749
+ uni: Optional[float] = 0.00098728734
750
+ usd: Optional[float] = 0.0035783548
751
+ usdc: Optional[float] = 0.0035786866
752
+ usdd: Optional[float] = 0.0035802976
753
+ usdp: Optional[float] = 0.0035803197
754
+ usdt: Optional[float] = 0.003579871
755
+ uyu: Optional[float] = 0.13856147
756
+ uzs: Optional[float] = 43.73539013
757
+ val: Optional[float] = 5.83686224
758
+ veb: Optional[float] = 140480603.3195581
759
+ ved: Optional[float] = 1.40480603
760
+ vef: Optional[float] = 140480.60331956
761
+ ves: Optional[float] = 1.40480603
762
+ vet: Optional[float] = 0.40967996
763
+ vnd: Optional[float] = 92.87837846
764
+ vuv: Optional[float] = 0.42560658
765
+ waves: Optional[float] = 0.0063235068
766
+ wemix: Optional[float] = 0.011294285
767
+ woo: Optional[float] = 0.19966932
768
+ wst: Optional[float] = 0.0097052715
769
+ xaf: Optional[float] = 1.97737435
770
+ xag: Optional[float] = 0.000046224216
771
+ xau: Optional[float] = 0.00000070955592 # 7.0955592e-7
772
+ xaut: Optional[float] = 0.0000007159874 # 7.159874e-7
773
+ xbt: Optional[float] = 0.000000051485012 # 5.1485012e-8
774
+ xcd: Optional[float] = 0.0096659557
775
+ xcg: Optional[float] = 0.0064189272
776
+ xch: Optional[float] = 0.0011740879
777
+ xdc: Optional[float] = 0.095836852
778
+ xdr: Optional[float] = 0.0026022409
779
+ xec: Optional[float] = 417.58644553
780
+ xem: Optional[float] = 4.50114505
781
+ xlm: Optional[float] = 0.020355646
782
+ xmr: Optional[float] = 0.000010185332
783
+ xof: Optional[float] = 1.97737435
784
+ xpd: Optional[float] = 0.0000020938589
785
+ xpf: Optional[float] = 0.35972408
786
+ xpt: Optional[float] = 0.0000017299438
787
+ xrp: Optional[float] = 0.0023407297
788
+ xtz: Optional[float] = 0.0085248659
789
+ yer: Optional[float] = 0.85292226
790
+ zar: Optional[float] = 0.057056562
791
+ zec: Optional[float] = 0.000010949103
792
+ zil: Optional[float] = 0.79280654
793
+ zmk: Optional[float] = 65.25187985
794
+ zmw: Optional[float] = 0.06525188
795
+ zwd: Optional[float] = 1.29500661
796
+ zwg: Optional[float] = 0.091476953
797
+ zwl: Optional[float] = 228.57567566
798
+
799
+
800
+ class ExchangeRateResponse(BaseModel):
801
+ """Main model for exchange rate data"""
802
+ date: datetime
803
+ pkr: PkrRates
804
+
805
+
806
+
807
+ class CurrencyResponse(BaseModel):
808
+ country: str
809
+ currency: float
810
+
811
+ class CurrencyCountryResponse(BaseModel):
812
+ response: List[CurrencyResponse]
813
+
814
+