cryptodatapy 0.2.12__py3-none-any.whl → 0.2.13__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.
@@ -549,7 +549,7 @@ class Tiingo(DataVendor):
549
549
  df = pd.concat([df, df0])
550
550
 
551
551
  else:
552
- for ticker in self.data_req.tickers:
552
+ for ticker in self.data_req.source_tickers:
553
553
  try:
554
554
  df0 = self.get_tidy_data(self.data_req, data_type, ticker)
555
555
  except Exception as e:
@@ -679,7 +679,7 @@ class Tiingo(DataVendor):
679
679
  """
680
680
  self.data_req = ConvertParams(data_req).to_tiingo()
681
681
 
682
- # get metada
682
+ # get metadata
683
683
  self.get_assets_info(as_list=True)
684
684
  self.get_fields_info()
685
685
 
@@ -690,11 +690,16 @@ class Tiingo(DataVendor):
690
690
  )
691
691
 
692
692
  # check assets
693
- if not any([ticker.upper() in self.assets[self.data_req.cat] for ticker in self.data_req.tickers]) and \
694
- data_req.cat != 'fx':
695
- raise ValueError(
696
- f"Selected tickers are not available. Use assets attribute to see available tickers."
697
- )
693
+ if self.data_req.cat == 'eqty':
694
+ if not any([ticker.upper() in self.assets[self.data_req.cat] for ticker in self.data_req.source_tickers]):
695
+ raise ValueError(
696
+ f"Selected eqty tickers are not available. Use assets attribute to see available eqty tickers."
697
+ )
698
+ elif self.data_req.cat == 'crypto':
699
+ if not any([ticker in self.assets[self.data_req.cat] for ticker in self.data_req.source_markets]):
700
+ raise ValueError(
701
+ f"Selected crypto tickers are not available. Use assets attribute to see available crypto tickers."
702
+ )
698
703
 
699
704
  # check fields
700
705
  if not any([field in self.fields[data_req.cat] for field in self.data_req.fields]):
@@ -1483,6 +1483,8 @@ class CCXT(Library):
1483
1483
  df: pd.DataFrame - MultiIndex
1484
1484
  DataFrame with DatetimeIndex (level 0), ticker (level 1), and values for selected fields (cols).
1485
1485
  """
1486
+ logging.info("Retrieving data request from CCXT...")
1487
+
1486
1488
  # get OHLCV
1487
1489
  if any([field in ["open", "high", "low", "close", "volume"] for field in data_req.fields]):
1488
1490
  df = await self.fetch_tidy_ohlcv_async(data_req)
@@ -1523,6 +1525,8 @@ class CCXT(Library):
1523
1525
  df: pd.DataFrame - MultiIndex
1524
1526
  DataFrame with DatetimeIndex (level 0), ticker (level 1), and values for selected fields (cols).
1525
1527
  """
1528
+ logging.info("Retrieving data request from CCXT...")
1529
+
1526
1530
  # get OHLCV
1527
1531
  if any([field in ["open", "high", "low", "close", "volume"] for field in data_req.fields]):
1528
1532
  df = self.fetch_tidy_ohlcv(data_req)
@@ -344,8 +344,20 @@ class ConvertParams:
344
344
  Convert tickers from CryptoDataPy to Tiingo format.
345
345
  """
346
346
  # tickers
347
- if self.data_req.source_tickers is None:
348
- self.data_req.source_tickers = [ticker.lower() for ticker in self.data_req.tickers]
347
+ with resources.path("cryptodatapy.conf", "tickers.csv") as f:
348
+ tickers_path = f
349
+ tickers_df = pd.read_csv(tickers_path, index_col=0, encoding="latin1")
350
+
351
+ if self.data_req.source_tickers is None and self.data_req.cat == 'eqty':
352
+ self.data_req.source_tickers = []
353
+ for ticker in self.data_req.tickers:
354
+ try:
355
+ self.data_req.source_tickers.append(tickers_df.loc[ticker, "tiingo_id"])
356
+ except KeyError:
357
+ logging.warning(
358
+ f"{ticker} not found for Tiingo source. Check tickers in"
359
+ f" data catalog and try again."
360
+ )
349
361
 
350
362
  # freq
351
363
  if self.data_req.source_freq is None:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: cryptodatapy
3
- Version: 0.2.12
3
+ Version: 0.2.13
4
4
  Summary: Cryptoasset data library
5
5
  License: Apache-2.0
6
6
  Author: Systamental
@@ -31,14 +31,14 @@ cryptodatapy/extract/data_vendors/coinmetrics_api.py,sha256=2fnsgKkBWjzMa1jzfVa7
31
31
  cryptodatapy/extract/data_vendors/cryptocompare_api.py,sha256=3oBfQioBz1vrs9JNtwE0hBLI4BTtpFBBEEsDawmobE8,28872
32
32
  cryptodatapy/extract/data_vendors/datavendor.py,sha256=kGKxHcPng6JiGGhcuPx87ij0DXl4E-OSqxlvxhJ1HQo,12642
33
33
  cryptodatapy/extract/data_vendors/glassnode_api.py,sha256=PuuJOjHztoJyFijb5XU1zm1S_2NAj7MX-wC89DL_bWQ,13103
34
- cryptodatapy/extract/data_vendors/tiingo_api.py,sha256=aS7SzWjaPcWcSp7MMm329jW0_ukV5Bkr-WH7RWOG0P8,25047
34
+ cryptodatapy/extract/data_vendors/tiingo_api.py,sha256=kcrDZ3ndG-E6M8L9qnXYShgCdXDLWnq4npX2QAGmcgM,25413
35
35
  cryptodatapy/extract/datarequest.py,sha256=Yi1pVe-ljv_su6kwEw5uylhG3XtneujBaNS2pmAIyk0,25879
36
36
  cryptodatapy/extract/exchanges/__init__.py,sha256=VKTNzrbe-wltGHWH9lK5RLZoXCGHp-UGGZ4gMVHJXrQ,113
37
37
  cryptodatapy/extract/exchanges/dydx.py,sha256=Oifb4sKbPRKArdZBx9q5ob4yTFkd65n0zXiS7hga0mk,4199
38
38
  cryptodatapy/extract/exchanges/exchange.py,sha256=Cicj3KS4zLbwmXX5fu89byXNwqqU4TH31GFv0zj3D4s,13010
39
39
  cryptodatapy/extract/getdata.py,sha256=BQ-OCfoQqPTYN1GtSI8t93iPpCUbtwiXC0BDxbrdKKM,11477
40
40
  cryptodatapy/extract/libraries/__init__.py,sha256=9rJ_hFHWlvkPwyIkNG5bqH6HTY2jQNPIKQjzYEsVSDo,319
41
- cryptodatapy/extract/libraries/ccxt_api.py,sha256=bYQxmOHdw3uCYf8jUb3Nzng30lypYX7lemfxjqSLzd4,56642
41
+ cryptodatapy/extract/libraries/ccxt_api.py,sha256=5aPGuZFQ1HwKCxE9Y5UlapNK77lMfnsWEi64HpSkK44,56766
42
42
  cryptodatapy/extract/libraries/dbnomics_api.py,sha256=M6kPIH-hKqkmeBQb-g56dY9jatqLCtSl_MnvPblHtAc,9421
43
43
  cryptodatapy/extract/libraries/investpy_api.py,sha256=qtGm3LDluXxJorvFv0w1bm1oBrcZIfE5cZSYzNYvttY,18409
44
44
  cryptodatapy/extract/libraries/library.py,sha256=eU8NnQZ9luLGdIF5hms6j8VPCWc50evkREc4xdh-g1I,12301
@@ -48,7 +48,7 @@ cryptodatapy/extract/web/aqr.py,sha256=LS1D7QzG6UWkLUfDMgBFtiHpznnnAUOpec5Sx3vRG
48
48
  cryptodatapy/extract/web/web.py,sha256=R1xEnHE1McxSWxp4vrTfgh9gW6FF6XDlp0gmp2NmWOM,12126
49
49
  cryptodatapy/transform/__init__.py,sha256=Spb5cGJ3V_o8hgSWOSrF8J_vsSZpFk0uzW7RpkgfbFE,131
50
50
  cryptodatapy/transform/clean.py,sha256=C9VypQOjdJ987TcD-qAHh7qYaoJBotvp3cWTr3ttSGM,12807
51
- cryptodatapy/transform/convertparams.py,sha256=P1ZOtbUf-2po0oerQvL0BIZekMD0zK6ujSvQI6nUbRQ,43319
51
+ cryptodatapy/transform/convertparams.py,sha256=xYSZAO7n7BSv4Gh8HaeJfKfTGS5HuZuL3GKo4jiW7So,43873
52
52
  cryptodatapy/transform/filter.py,sha256=KYYyta0uREAjBkYTVyvhOCCLSKR_qPSlqj5Nl7l4iBk,9064
53
53
  cryptodatapy/transform/impute.py,sha256=8vfmWLN--6MUOv3zrflfE_dM6f11GZQR_le2xzJHCnU,5482
54
54
  cryptodatapy/transform/od.py,sha256=z__CWiN70f1leqx12SS9pIvTggxpUPrg1falJIKMZCc,31031
@@ -56,7 +56,7 @@ cryptodatapy/transform/wrangle.py,sha256=nBtUvqY0MOYC-KuNTH_78yCFfYaJRrSIgybPTu7
56
56
  cryptodatapy/util/__init__.py,sha256=zSQ2HU2QIXzCuptJjknmrClwtQKCvIj4aNysZljIgrU,116
57
57
  cryptodatapy/util/datacatalog.py,sha256=qCCX6srXvaAbVAKuA0M2y5IK_2OEx5xA3yRahDZlC-g,13157
58
58
  cryptodatapy/util/datacredentials.py,sha256=fXuGgI2NKCLlcnK8M37CtdyAc3O_YCV23x3KTlfakjA,2160
59
- cryptodatapy-0.2.12.dist-info/LICENSE,sha256=sw4oVq8bDjT3uMtaFebQ-xeIVP4H-bXldTs9q-Jjeks,11344
60
- cryptodatapy-0.2.12.dist-info/METADATA,sha256=8y7UYpoTVqDUtDAC-n0uvJmBsyZIkcFdmEwDH7FryxI,6428
61
- cryptodatapy-0.2.12.dist-info/WHEEL,sha256=IYZQI976HJqqOpQU6PHkJ8fb3tMNBFjg-Cn-pwAbaFM,88
62
- cryptodatapy-0.2.12.dist-info/RECORD,,
59
+ cryptodatapy-0.2.13.dist-info/LICENSE,sha256=sw4oVq8bDjT3uMtaFebQ-xeIVP4H-bXldTs9q-Jjeks,11344
60
+ cryptodatapy-0.2.13.dist-info/METADATA,sha256=J3an2KeXs9grNpJE61_DGY-isNf_Sj4bD3kND3hNPG8,6428
61
+ cryptodatapy-0.2.13.dist-info/WHEEL,sha256=IYZQI976HJqqOpQU6PHkJ8fb3tMNBFjg-Cn-pwAbaFM,88
62
+ cryptodatapy-0.2.13.dist-info/RECORD,,