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.
- cryptodatapy/extract/data_vendors/tiingo_api.py +12 -7
- cryptodatapy/extract/libraries/ccxt_api.py +4 -0
- cryptodatapy/transform/convertparams.py +14 -2
- {cryptodatapy-0.2.12.dist-info → cryptodatapy-0.2.13.dist-info}/METADATA +1 -1
- {cryptodatapy-0.2.12.dist-info → cryptodatapy-0.2.13.dist-info}/RECORD +7 -7
- {cryptodatapy-0.2.12.dist-info → cryptodatapy-0.2.13.dist-info}/LICENSE +0 -0
- {cryptodatapy-0.2.12.dist-info → cryptodatapy-0.2.13.dist-info}/WHEEL +0 -0
@@ -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.
|
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
|
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
|
694
|
-
|
695
|
-
|
696
|
-
|
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
|
-
|
348
|
-
|
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:
|
@@ -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=
|
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=
|
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=
|
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.
|
60
|
-
cryptodatapy-0.2.
|
61
|
-
cryptodatapy-0.2.
|
62
|
-
cryptodatapy-0.2.
|
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,,
|
File without changes
|
File without changes
|