eulerpool 1.0.0__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.
- eulerpool/__init__.py +281 -0
- eulerpool/_client.py +250 -0
- eulerpool/_version.py +3 -0
- eulerpool/errors.py +46 -0
- eulerpool/py.typed +0 -0
- eulerpool/resources/__init__.py +0 -0
- eulerpool/resources/_base.py +34 -0
- eulerpool/resources/aaq.py +18 -0
- eulerpool/resources/alternative.py +116 -0
- eulerpool/resources/analytics.py +50 -0
- eulerpool/resources/backtest.py +66 -0
- eulerpool/resources/bonds.py +36 -0
- eulerpool/resources/calendar.py +78 -0
- eulerpool/resources/certificates.py +30 -0
- eulerpool/resources/charting.py +42 -0
- eulerpool/resources/commodity.py +64 -0
- eulerpool/resources/crypto.py +30 -0
- eulerpool/resources/crypto_extended.py +246 -0
- eulerpool/resources/data.py +24 -0
- eulerpool/resources/datasets.py +100 -0
- eulerpool/resources/deals.py +28 -0
- eulerpool/resources/derivatives.py +68 -0
- eulerpool/resources/dex.py +54 -0
- eulerpool/resources/earning_calls.py +24 -0
- eulerpool/resources/ecb.py +34 -0
- eulerpool/resources/economic_forecasts.py +28 -0
- eulerpool/resources/energy.py +94 -0
- eulerpool/resources/equity.py +420 -0
- eulerpool/resources/equity_extended.py +150 -0
- eulerpool/resources/etf.py +60 -0
- eulerpool/resources/fair_value.py +18 -0
- eulerpool/resources/fixed_income.py +46 -0
- eulerpool/resources/forex.py +24 -0
- eulerpool/resources/fundamentals.py +60 -0
- eulerpool/resources/funds.py +32 -0
- eulerpool/resources/government.py +42 -0
- eulerpool/resources/ice_swap.py +18 -0
- eulerpool/resources/index.py +34 -0
- eulerpool/resources/institutional.py +60 -0
- eulerpool/resources/interest_rates.py +34 -0
- eulerpool/resources/macro.py +156 -0
- eulerpool/resources/market.py +214 -0
- eulerpool/resources/mutual_fund.py +42 -0
- eulerpool/resources/news.py +18 -0
- eulerpool/resources/nft.py +42 -0
- eulerpool/resources/partner.py +18 -0
- eulerpool/resources/patents.py +24 -0
- eulerpool/resources/peer_comparison.py +58 -0
- eulerpool/resources/portfolio.py +96 -0
- eulerpool/resources/portfolio_risk.py +58 -0
- eulerpool/resources/private_markets.py +24 -0
- eulerpool/resources/research.py +30 -0
- eulerpool/resources/risk_models.py +52 -0
- eulerpool/resources/screener.py +46 -0
- eulerpool/resources/sentiment.py +60 -0
- eulerpool/resources/shipping.py +58 -0
- eulerpool/resources/singapore.py +82 -0
- eulerpool/resources/transcripts.py +40 -0
- eulerpool/resources/trends.py +18 -0
- eulerpool/resources/vendor.py +28 -0
- eulerpool-1.0.0.dist-info/METADATA +146 -0
- eulerpool-1.0.0.dist-info/RECORD +64 -0
- eulerpool-1.0.0.dist-info/WHEEL +4 -0
- eulerpool-1.0.0.dist-info/licenses/LICENSE +21 -0
|
@@ -0,0 +1,246 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from typing import Any, Optional
|
|
4
|
+
from urllib.parse import quote
|
|
5
|
+
|
|
6
|
+
from ._base import AsyncResource, SyncResource
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class CryptoExtended(SyncResource):
|
|
10
|
+
def analysis(self, symbol: str, **params: Any) -> Any:
|
|
11
|
+
"""Crypto Analysis Summary API"""
|
|
12
|
+
return self._get(f"/crypto-extended/analysis/{quote(str(symbol))}", params)
|
|
13
|
+
def asset_platforms(self, **params: Any) -> Any:
|
|
14
|
+
"""Asset Platforms (Blockchains) API"""
|
|
15
|
+
return self._get("/crypto-extended/asset-platforms", params)
|
|
16
|
+
def bridge_volumes(self, **params: Any) -> Any:
|
|
17
|
+
"""Bridge Volumes API"""
|
|
18
|
+
return self._get("/crypto-extended/bridge-volumes", params)
|
|
19
|
+
def btc_exchange_rates(self, **params: Any) -> Any:
|
|
20
|
+
"""BTC Exchange Rates API"""
|
|
21
|
+
return self._get("/crypto-extended/btc-exchange-rates", params)
|
|
22
|
+
def candles(self, symbol: str, **params: Any) -> Any:
|
|
23
|
+
"""Crypto OHLCV Candles API"""
|
|
24
|
+
return self._get(f"/crypto-extended/candles/{quote(str(symbol))}", params)
|
|
25
|
+
def categories(self, **params: Any) -> Any:
|
|
26
|
+
"""Crypto Categories API"""
|
|
27
|
+
return self._get("/crypto-extended/categories", params)
|
|
28
|
+
def chain_tvl(self, **params: Any) -> Any:
|
|
29
|
+
"""Chain TVL API"""
|
|
30
|
+
return self._get("/crypto-extended/chain-tvl", params)
|
|
31
|
+
def coin_tickers(self, coinId: str, **params: Any) -> Any:
|
|
32
|
+
"""Coin Tickers API"""
|
|
33
|
+
return self._get(f"/crypto-extended/coin-tickers/{quote(str(coinId))}", params)
|
|
34
|
+
def defi(self, symbol: str, **params: Any) -> Any:
|
|
35
|
+
"""DeFi Protocol Stats API"""
|
|
36
|
+
return self._get(f"/crypto-extended/defi/{quote(str(symbol))}", params)
|
|
37
|
+
def defi_fees(self, **params: Any) -> Any:
|
|
38
|
+
"""DeFi Fees & Revenue API"""
|
|
39
|
+
return self._get("/crypto-extended/defi-fees", params)
|
|
40
|
+
def defi_protocols(self, **params: Any) -> Any:
|
|
41
|
+
"""DeFi Protocols List API"""
|
|
42
|
+
return self._get("/crypto-extended/defi-protocols", params)
|
|
43
|
+
def defi_yields(self, **params: Any) -> Any:
|
|
44
|
+
"""DeFi Yields API"""
|
|
45
|
+
return self._get("/crypto-extended/defi-yields", params)
|
|
46
|
+
def derivatives(self, symbol: str, **params: Any) -> Any:
|
|
47
|
+
"""Crypto Derivatives API"""
|
|
48
|
+
return self._get(f"/crypto-extended/derivatives/{quote(str(symbol))}", params)
|
|
49
|
+
def derivatives_exchanges(self, **params: Any) -> Any:
|
|
50
|
+
"""Derivatives Exchanges API"""
|
|
51
|
+
return self._get("/crypto-extended/derivatives-exchanges", params)
|
|
52
|
+
def derivatives_tickers(self, **params: Any) -> Any:
|
|
53
|
+
"""Derivatives Tickers API"""
|
|
54
|
+
return self._get("/crypto-extended/derivatives-tickers", params)
|
|
55
|
+
def dex_volumes(self, **params: Any) -> Any:
|
|
56
|
+
"""DEX Volumes API"""
|
|
57
|
+
return self._get("/crypto-extended/dex-volumes", params)
|
|
58
|
+
def exchange_listings(self, symbol: str, **params: Any) -> Any:
|
|
59
|
+
"""Exchange Listings for a Coin"""
|
|
60
|
+
return self._get(f"/crypto-extended/exchange-listings/{quote(str(symbol))}", params)
|
|
61
|
+
def exchange_tickers(self, exchangeId: str, **params: Any) -> Any:
|
|
62
|
+
"""Exchange Trading Pairs"""
|
|
63
|
+
return self._get(f"/crypto-extended/exchange-tickers/{quote(str(exchangeId))}", params)
|
|
64
|
+
def exchange_volume(self, exchangeId: str, **params: Any) -> Any:
|
|
65
|
+
"""Exchange Volume History API"""
|
|
66
|
+
return self._get(f"/crypto-extended/exchange-volume/{quote(str(exchangeId))}", params)
|
|
67
|
+
def exchanges(self, **params: Any) -> Any:
|
|
68
|
+
"""Crypto Exchanges Directory"""
|
|
69
|
+
return self._get("/crypto-extended/exchanges", params)
|
|
70
|
+
def faq(self, symbol: str, **params: Any) -> Any:
|
|
71
|
+
"""Crypto FAQ Content"""
|
|
72
|
+
return self._get(f"/crypto-extended/faq/{quote(str(symbol))}", params)
|
|
73
|
+
def fear_greed_history(self, **params: Any) -> Any:
|
|
74
|
+
"""Crypto Fear & Greed History API"""
|
|
75
|
+
return self._get("/crypto-extended/fear-greed-history", params)
|
|
76
|
+
def funding_rates(self, symbol: str, **params: Any) -> Any:
|
|
77
|
+
"""Crypto Funding Rates API"""
|
|
78
|
+
return self._get(f"/crypto-extended/funding-rates/{quote(str(symbol))}", params)
|
|
79
|
+
def global_(self, **params: Any) -> Any:
|
|
80
|
+
"""Global Crypto Market Data API"""
|
|
81
|
+
return self._get("/crypto-extended/global", params)
|
|
82
|
+
def intraday(self, symbol: str, **params: Any) -> Any:
|
|
83
|
+
"""Crypto Intraday Quotes API"""
|
|
84
|
+
return self._get(f"/crypto-extended/intraday/{quote(str(symbol))}", params)
|
|
85
|
+
def liquidations(self, symbol: str, **params: Any) -> Any:
|
|
86
|
+
"""Crypto Liquidation Events"""
|
|
87
|
+
return self._get(f"/crypto-extended/liquidations/{quote(str(symbol))}", params)
|
|
88
|
+
def market_overview(self, **params: Any) -> Any:
|
|
89
|
+
"""Crypto Market Overview API"""
|
|
90
|
+
return self._get("/crypto-extended/market-overview", params)
|
|
91
|
+
def newly_listed(self, **params: Any) -> Any:
|
|
92
|
+
"""Newly Listed Cryptocurrencies API"""
|
|
93
|
+
return self._get("/crypto-extended/newly-listed", params)
|
|
94
|
+
def news_feed(self, **params: Any) -> Any:
|
|
95
|
+
"""Crypto News Feed"""
|
|
96
|
+
return self._get("/crypto-extended/news-feed", params)
|
|
97
|
+
def onchain(self, symbol: str, **params: Any) -> Any:
|
|
98
|
+
"""On-Chain Metrics API"""
|
|
99
|
+
return self._get(f"/crypto-extended/onchain/{quote(str(symbol))}", params)
|
|
100
|
+
def open_interest(self, symbol: str, **params: Any) -> Any:
|
|
101
|
+
"""Crypto Open Interest API"""
|
|
102
|
+
return self._get(f"/crypto-extended/open-interest/{quote(str(symbol))}", params)
|
|
103
|
+
def public_treasury(self, **params: Any) -> Any:
|
|
104
|
+
"""Public Treasury Holdings API"""
|
|
105
|
+
return self._get("/crypto-extended/public-treasury", params)
|
|
106
|
+
def stablecoin_supply(self, **params: Any) -> Any:
|
|
107
|
+
"""Stablecoin Supply History API"""
|
|
108
|
+
return self._get("/crypto-extended/stablecoin-supply", params)
|
|
109
|
+
def stablecoins(self, **params: Any) -> Any:
|
|
110
|
+
"""Stablecoin Market Caps API"""
|
|
111
|
+
return self._get("/crypto-extended/stablecoins", params)
|
|
112
|
+
def supply_breakdown(self, symbol: str, **params: Any) -> Any:
|
|
113
|
+
"""Crypto Supply Breakdown"""
|
|
114
|
+
return self._get(f"/crypto-extended/supply-breakdown/{quote(str(symbol))}", params)
|
|
115
|
+
def symbol_map(self, **params: Any) -> Any:
|
|
116
|
+
"""Binance Symbol Map API"""
|
|
117
|
+
return self._get("/crypto-extended/symbol-map", params)
|
|
118
|
+
def top_coins(self, **params: Any) -> Any:
|
|
119
|
+
"""Top Cryptocurrencies API"""
|
|
120
|
+
return self._get("/crypto-extended/top-coins", params)
|
|
121
|
+
def top_movers(self, **params: Any) -> Any:
|
|
122
|
+
"""Crypto Top Movers API"""
|
|
123
|
+
return self._get("/crypto-extended/top-movers", params)
|
|
124
|
+
def trending(self, **params: Any) -> Any:
|
|
125
|
+
"""Trending Cryptocurrencies API"""
|
|
126
|
+
return self._get("/crypto-extended/trending", params)
|
|
127
|
+
|
|
128
|
+
|
|
129
|
+
class AsyncCryptoExtended(AsyncResource):
|
|
130
|
+
async def analysis(self, symbol: str, **params: Any) -> Any:
|
|
131
|
+
"""Crypto Analysis Summary API"""
|
|
132
|
+
return await self._get(f"/crypto-extended/analysis/{quote(str(symbol))}", params)
|
|
133
|
+
async def asset_platforms(self, **params: Any) -> Any:
|
|
134
|
+
"""Asset Platforms (Blockchains) API"""
|
|
135
|
+
return await self._get("/crypto-extended/asset-platforms", params)
|
|
136
|
+
async def bridge_volumes(self, **params: Any) -> Any:
|
|
137
|
+
"""Bridge Volumes API"""
|
|
138
|
+
return await self._get("/crypto-extended/bridge-volumes", params)
|
|
139
|
+
async def btc_exchange_rates(self, **params: Any) -> Any:
|
|
140
|
+
"""BTC Exchange Rates API"""
|
|
141
|
+
return await self._get("/crypto-extended/btc-exchange-rates", params)
|
|
142
|
+
async def candles(self, symbol: str, **params: Any) -> Any:
|
|
143
|
+
"""Crypto OHLCV Candles API"""
|
|
144
|
+
return await self._get(f"/crypto-extended/candles/{quote(str(symbol))}", params)
|
|
145
|
+
async def categories(self, **params: Any) -> Any:
|
|
146
|
+
"""Crypto Categories API"""
|
|
147
|
+
return await self._get("/crypto-extended/categories", params)
|
|
148
|
+
async def chain_tvl(self, **params: Any) -> Any:
|
|
149
|
+
"""Chain TVL API"""
|
|
150
|
+
return await self._get("/crypto-extended/chain-tvl", params)
|
|
151
|
+
async def coin_tickers(self, coinId: str, **params: Any) -> Any:
|
|
152
|
+
"""Coin Tickers API"""
|
|
153
|
+
return await self._get(f"/crypto-extended/coin-tickers/{quote(str(coinId))}", params)
|
|
154
|
+
async def defi(self, symbol: str, **params: Any) -> Any:
|
|
155
|
+
"""DeFi Protocol Stats API"""
|
|
156
|
+
return await self._get(f"/crypto-extended/defi/{quote(str(symbol))}", params)
|
|
157
|
+
async def defi_fees(self, **params: Any) -> Any:
|
|
158
|
+
"""DeFi Fees & Revenue API"""
|
|
159
|
+
return await self._get("/crypto-extended/defi-fees", params)
|
|
160
|
+
async def defi_protocols(self, **params: Any) -> Any:
|
|
161
|
+
"""DeFi Protocols List API"""
|
|
162
|
+
return await self._get("/crypto-extended/defi-protocols", params)
|
|
163
|
+
async def defi_yields(self, **params: Any) -> Any:
|
|
164
|
+
"""DeFi Yields API"""
|
|
165
|
+
return await self._get("/crypto-extended/defi-yields", params)
|
|
166
|
+
async def derivatives(self, symbol: str, **params: Any) -> Any:
|
|
167
|
+
"""Crypto Derivatives API"""
|
|
168
|
+
return await self._get(f"/crypto-extended/derivatives/{quote(str(symbol))}", params)
|
|
169
|
+
async def derivatives_exchanges(self, **params: Any) -> Any:
|
|
170
|
+
"""Derivatives Exchanges API"""
|
|
171
|
+
return await self._get("/crypto-extended/derivatives-exchanges", params)
|
|
172
|
+
async def derivatives_tickers(self, **params: Any) -> Any:
|
|
173
|
+
"""Derivatives Tickers API"""
|
|
174
|
+
return await self._get("/crypto-extended/derivatives-tickers", params)
|
|
175
|
+
async def dex_volumes(self, **params: Any) -> Any:
|
|
176
|
+
"""DEX Volumes API"""
|
|
177
|
+
return await self._get("/crypto-extended/dex-volumes", params)
|
|
178
|
+
async def exchange_listings(self, symbol: str, **params: Any) -> Any:
|
|
179
|
+
"""Exchange Listings for a Coin"""
|
|
180
|
+
return await self._get(f"/crypto-extended/exchange-listings/{quote(str(symbol))}", params)
|
|
181
|
+
async def exchange_tickers(self, exchangeId: str, **params: Any) -> Any:
|
|
182
|
+
"""Exchange Trading Pairs"""
|
|
183
|
+
return await self._get(f"/crypto-extended/exchange-tickers/{quote(str(exchangeId))}", params)
|
|
184
|
+
async def exchange_volume(self, exchangeId: str, **params: Any) -> Any:
|
|
185
|
+
"""Exchange Volume History API"""
|
|
186
|
+
return await self._get(f"/crypto-extended/exchange-volume/{quote(str(exchangeId))}", params)
|
|
187
|
+
async def exchanges(self, **params: Any) -> Any:
|
|
188
|
+
"""Crypto Exchanges Directory"""
|
|
189
|
+
return await self._get("/crypto-extended/exchanges", params)
|
|
190
|
+
async def faq(self, symbol: str, **params: Any) -> Any:
|
|
191
|
+
"""Crypto FAQ Content"""
|
|
192
|
+
return await self._get(f"/crypto-extended/faq/{quote(str(symbol))}", params)
|
|
193
|
+
async def fear_greed_history(self, **params: Any) -> Any:
|
|
194
|
+
"""Crypto Fear & Greed History API"""
|
|
195
|
+
return await self._get("/crypto-extended/fear-greed-history", params)
|
|
196
|
+
async def funding_rates(self, symbol: str, **params: Any) -> Any:
|
|
197
|
+
"""Crypto Funding Rates API"""
|
|
198
|
+
return await self._get(f"/crypto-extended/funding-rates/{quote(str(symbol))}", params)
|
|
199
|
+
async def global_(self, **params: Any) -> Any:
|
|
200
|
+
"""Global Crypto Market Data API"""
|
|
201
|
+
return await self._get("/crypto-extended/global", params)
|
|
202
|
+
async def intraday(self, symbol: str, **params: Any) -> Any:
|
|
203
|
+
"""Crypto Intraday Quotes API"""
|
|
204
|
+
return await self._get(f"/crypto-extended/intraday/{quote(str(symbol))}", params)
|
|
205
|
+
async def liquidations(self, symbol: str, **params: Any) -> Any:
|
|
206
|
+
"""Crypto Liquidation Events"""
|
|
207
|
+
return await self._get(f"/crypto-extended/liquidations/{quote(str(symbol))}", params)
|
|
208
|
+
async def market_overview(self, **params: Any) -> Any:
|
|
209
|
+
"""Crypto Market Overview API"""
|
|
210
|
+
return await self._get("/crypto-extended/market-overview", params)
|
|
211
|
+
async def newly_listed(self, **params: Any) -> Any:
|
|
212
|
+
"""Newly Listed Cryptocurrencies API"""
|
|
213
|
+
return await self._get("/crypto-extended/newly-listed", params)
|
|
214
|
+
async def news_feed(self, **params: Any) -> Any:
|
|
215
|
+
"""Crypto News Feed"""
|
|
216
|
+
return await self._get("/crypto-extended/news-feed", params)
|
|
217
|
+
async def onchain(self, symbol: str, **params: Any) -> Any:
|
|
218
|
+
"""On-Chain Metrics API"""
|
|
219
|
+
return await self._get(f"/crypto-extended/onchain/{quote(str(symbol))}", params)
|
|
220
|
+
async def open_interest(self, symbol: str, **params: Any) -> Any:
|
|
221
|
+
"""Crypto Open Interest API"""
|
|
222
|
+
return await self._get(f"/crypto-extended/open-interest/{quote(str(symbol))}", params)
|
|
223
|
+
async def public_treasury(self, **params: Any) -> Any:
|
|
224
|
+
"""Public Treasury Holdings API"""
|
|
225
|
+
return await self._get("/crypto-extended/public-treasury", params)
|
|
226
|
+
async def stablecoin_supply(self, **params: Any) -> Any:
|
|
227
|
+
"""Stablecoin Supply History API"""
|
|
228
|
+
return await self._get("/crypto-extended/stablecoin-supply", params)
|
|
229
|
+
async def stablecoins(self, **params: Any) -> Any:
|
|
230
|
+
"""Stablecoin Market Caps API"""
|
|
231
|
+
return await self._get("/crypto-extended/stablecoins", params)
|
|
232
|
+
async def supply_breakdown(self, symbol: str, **params: Any) -> Any:
|
|
233
|
+
"""Crypto Supply Breakdown"""
|
|
234
|
+
return await self._get(f"/crypto-extended/supply-breakdown/{quote(str(symbol))}", params)
|
|
235
|
+
async def symbol_map(self, **params: Any) -> Any:
|
|
236
|
+
"""Binance Symbol Map API"""
|
|
237
|
+
return await self._get("/crypto-extended/symbol-map", params)
|
|
238
|
+
async def top_coins(self, **params: Any) -> Any:
|
|
239
|
+
"""Top Cryptocurrencies API"""
|
|
240
|
+
return await self._get("/crypto-extended/top-coins", params)
|
|
241
|
+
async def top_movers(self, **params: Any) -> Any:
|
|
242
|
+
"""Crypto Top Movers API"""
|
|
243
|
+
return await self._get("/crypto-extended/top-movers", params)
|
|
244
|
+
async def trending(self, **params: Any) -> Any:
|
|
245
|
+
"""Trending Cryptocurrencies API"""
|
|
246
|
+
return await self._get("/crypto-extended/trending", params)
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from typing import Any, Optional
|
|
4
|
+
from urllib.parse import quote
|
|
5
|
+
|
|
6
|
+
from ._base import AsyncResource, SyncResource
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class Data(SyncResource):
|
|
10
|
+
def catalog(self, **params: Any) -> Any:
|
|
11
|
+
"""Data catalog"""
|
|
12
|
+
return self._get("/data/catalog", params)
|
|
13
|
+
def health(self, **params: Any) -> Any:
|
|
14
|
+
"""Data health"""
|
|
15
|
+
return self._get("/data/health", params)
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
class AsyncData(AsyncResource):
|
|
19
|
+
async def catalog(self, **params: Any) -> Any:
|
|
20
|
+
"""Data catalog"""
|
|
21
|
+
return await self._get("/data/catalog", params)
|
|
22
|
+
async def health(self, **params: Any) -> Any:
|
|
23
|
+
"""Data health"""
|
|
24
|
+
return await self._get("/data/health", params)
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from typing import Any, Optional
|
|
4
|
+
from urllib.parse import quote
|
|
5
|
+
|
|
6
|
+
from ._base import AsyncResource, SyncResource
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class Datasets(SyncResource):
|
|
10
|
+
def catalog(self, **params: Any) -> Any:
|
|
11
|
+
"""Dataset Catalog"""
|
|
12
|
+
return self._get("/datasets/catalog", params)
|
|
13
|
+
def dcf(self, identifier: str, **params: Any) -> Any:
|
|
14
|
+
"""Discounted Cash Flow Valuation"""
|
|
15
|
+
return self._get(f"/datasets/dcf/{quote(str(identifier))}", params)
|
|
16
|
+
def eod(self, identifier: str, **params: Any) -> Any:
|
|
17
|
+
"""End-of-Day Quote"""
|
|
18
|
+
return self._get(f"/datasets/eod/{quote(str(identifier))}", params)
|
|
19
|
+
def gainers(self, **params: Any) -> Any:
|
|
20
|
+
"""Biggest Gainers"""
|
|
21
|
+
return self._get("/datasets/gainers", params)
|
|
22
|
+
def get(self, dataset: str, identifier: Optional[str] = None, **params: Any) -> Any:
|
|
23
|
+
"""Company Dataset"""
|
|
24
|
+
if identifier is not None:
|
|
25
|
+
return self._get(f"/datasets/{quote(str(dataset))}/{quote(str(identifier))}", params)
|
|
26
|
+
return self._get(f"/datasets/{quote(str(dataset))}", params)
|
|
27
|
+
def industry_pe(self, **params: Any) -> Any:
|
|
28
|
+
"""Industry PE Snapshots"""
|
|
29
|
+
return self._get("/datasets/industry-pe", params)
|
|
30
|
+
def key_metrics(self, identifier: str, **params: Any) -> Any:
|
|
31
|
+
"""Key Metrics (TTM)"""
|
|
32
|
+
return self._get(f"/datasets/key-metrics/{quote(str(identifier))}", params)
|
|
33
|
+
def losers(self, **params: Any) -> Any:
|
|
34
|
+
"""Biggest Losers"""
|
|
35
|
+
return self._get("/datasets/losers", params)
|
|
36
|
+
def most_active(self, **params: Any) -> Any:
|
|
37
|
+
"""Most Active Stocks"""
|
|
38
|
+
return self._get("/datasets/most-active", params)
|
|
39
|
+
def news(self, **params: Any) -> Any:
|
|
40
|
+
"""Market News Feed"""
|
|
41
|
+
return self._get("/datasets/news", params)
|
|
42
|
+
def rating(self, identifier: str, **params: Any) -> Any:
|
|
43
|
+
"""Company Rating"""
|
|
44
|
+
return self._get(f"/datasets/rating/{quote(str(identifier))}", params)
|
|
45
|
+
def ratios(self, identifier: str, **params: Any) -> Any:
|
|
46
|
+
"""Financial Ratios (TTM)"""
|
|
47
|
+
return self._get(f"/datasets/ratios/{quote(str(identifier))}", params)
|
|
48
|
+
def scores(self, identifier: str, **params: Any) -> Any:
|
|
49
|
+
"""Financial Scores"""
|
|
50
|
+
return self._get(f"/datasets/scores/{quote(str(identifier))}", params)
|
|
51
|
+
def sector_pe(self, **params: Any) -> Any:
|
|
52
|
+
"""Sector PE Snapshots"""
|
|
53
|
+
return self._get("/datasets/sector-pe", params)
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
class AsyncDatasets(AsyncResource):
|
|
57
|
+
async def catalog(self, **params: Any) -> Any:
|
|
58
|
+
"""Dataset Catalog"""
|
|
59
|
+
return await self._get("/datasets/catalog", params)
|
|
60
|
+
async def dcf(self, identifier: str, **params: Any) -> Any:
|
|
61
|
+
"""Discounted Cash Flow Valuation"""
|
|
62
|
+
return await self._get(f"/datasets/dcf/{quote(str(identifier))}", params)
|
|
63
|
+
async def eod(self, identifier: str, **params: Any) -> Any:
|
|
64
|
+
"""End-of-Day Quote"""
|
|
65
|
+
return await self._get(f"/datasets/eod/{quote(str(identifier))}", params)
|
|
66
|
+
async def gainers(self, **params: Any) -> Any:
|
|
67
|
+
"""Biggest Gainers"""
|
|
68
|
+
return await self._get("/datasets/gainers", params)
|
|
69
|
+
async def get(self, dataset: str, identifier: Optional[str] = None, **params: Any) -> Any:
|
|
70
|
+
"""Company Dataset"""
|
|
71
|
+
if identifier is not None:
|
|
72
|
+
return await self._get(f"/datasets/{quote(str(dataset))}/{quote(str(identifier))}", params)
|
|
73
|
+
return await self._get(f"/datasets/{quote(str(dataset))}", params)
|
|
74
|
+
async def industry_pe(self, **params: Any) -> Any:
|
|
75
|
+
"""Industry PE Snapshots"""
|
|
76
|
+
return await self._get("/datasets/industry-pe", params)
|
|
77
|
+
async def key_metrics(self, identifier: str, **params: Any) -> Any:
|
|
78
|
+
"""Key Metrics (TTM)"""
|
|
79
|
+
return await self._get(f"/datasets/key-metrics/{quote(str(identifier))}", params)
|
|
80
|
+
async def losers(self, **params: Any) -> Any:
|
|
81
|
+
"""Biggest Losers"""
|
|
82
|
+
return await self._get("/datasets/losers", params)
|
|
83
|
+
async def most_active(self, **params: Any) -> Any:
|
|
84
|
+
"""Most Active Stocks"""
|
|
85
|
+
return await self._get("/datasets/most-active", params)
|
|
86
|
+
async def news(self, **params: Any) -> Any:
|
|
87
|
+
"""Market News Feed"""
|
|
88
|
+
return await self._get("/datasets/news", params)
|
|
89
|
+
async def rating(self, identifier: str, **params: Any) -> Any:
|
|
90
|
+
"""Company Rating"""
|
|
91
|
+
return await self._get(f"/datasets/rating/{quote(str(identifier))}", params)
|
|
92
|
+
async def ratios(self, identifier: str, **params: Any) -> Any:
|
|
93
|
+
"""Financial Ratios (TTM)"""
|
|
94
|
+
return await self._get(f"/datasets/ratios/{quote(str(identifier))}", params)
|
|
95
|
+
async def scores(self, identifier: str, **params: Any) -> Any:
|
|
96
|
+
"""Financial Scores"""
|
|
97
|
+
return await self._get(f"/datasets/scores/{quote(str(identifier))}", params)
|
|
98
|
+
async def sector_pe(self, **params: Any) -> Any:
|
|
99
|
+
"""Sector PE Snapshots"""
|
|
100
|
+
return await self._get("/datasets/sector-pe", params)
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from typing import Any, Optional
|
|
4
|
+
from urllib.parse import quote
|
|
5
|
+
|
|
6
|
+
from ._base import AsyncResource, SyncResource
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class Deals(SyncResource):
|
|
10
|
+
def ma(self, ticker: Optional[str] = None, **params: Any) -> Any:
|
|
11
|
+
"""M&A Deals by Ticker"""
|
|
12
|
+
if ticker is not None:
|
|
13
|
+
return self._get(f"/deals/ma/{quote(str(ticker))}", params)
|
|
14
|
+
return self._get("/deals/ma", params)
|
|
15
|
+
def ma_stats_monthly(self, **params: Any) -> Any:
|
|
16
|
+
"""M&A Monthly Activity"""
|
|
17
|
+
return self._get("/deals/ma/stats/monthly", params)
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
class AsyncDeals(AsyncResource):
|
|
21
|
+
async def ma(self, ticker: Optional[str] = None, **params: Any) -> Any:
|
|
22
|
+
"""M&A Deals by Ticker"""
|
|
23
|
+
if ticker is not None:
|
|
24
|
+
return await self._get(f"/deals/ma/{quote(str(ticker))}", params)
|
|
25
|
+
return await self._get("/deals/ma", params)
|
|
26
|
+
async def ma_stats_monthly(self, **params: Any) -> Any:
|
|
27
|
+
"""M&A Monthly Activity"""
|
|
28
|
+
return await self._get("/deals/ma/stats/monthly", params)
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from typing import Any, Optional
|
|
4
|
+
from urllib.parse import quote
|
|
5
|
+
|
|
6
|
+
from ._base import AsyncResource, SyncResource
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class Derivatives(SyncResource):
|
|
10
|
+
def options_flow(self, identifier: str, **params: Any) -> Any:
|
|
11
|
+
"""Options Flow"""
|
|
12
|
+
return self._get(f"/derivatives/options/flow/{quote(str(identifier))}", params)
|
|
13
|
+
def options_greeks(self, identifier: str, **params: Any) -> Any:
|
|
14
|
+
"""Options Greeks"""
|
|
15
|
+
return self._get(f"/derivatives/options/greeks/{quote(str(identifier))}", params)
|
|
16
|
+
def options_iv_surface(self, identifier: str, **params: Any) -> Any:
|
|
17
|
+
"""IV Surface"""
|
|
18
|
+
return self._get(f"/derivatives/options/iv-surface/{quote(str(identifier))}", params)
|
|
19
|
+
def options_price(self, body: Any = None, **params: Any) -> Any:
|
|
20
|
+
"""Price Option"""
|
|
21
|
+
if body is None and params:
|
|
22
|
+
body, params = params, None
|
|
23
|
+
elif isinstance(body, dict) and params:
|
|
24
|
+
body = {**body, **params}
|
|
25
|
+
params = None
|
|
26
|
+
return self._post("/derivatives/options/price", body, params)
|
|
27
|
+
def options_strategy(self, body: Any = None, **params: Any) -> Any:
|
|
28
|
+
"""Strategy Analysis"""
|
|
29
|
+
if body is None and params:
|
|
30
|
+
body, params = params, None
|
|
31
|
+
elif isinstance(body, dict) and params:
|
|
32
|
+
body = {**body, **params}
|
|
33
|
+
params = None
|
|
34
|
+
return self._post("/derivatives/options/strategy", body, params)
|
|
35
|
+
def options_unusual_activity(self, **params: Any) -> Any:
|
|
36
|
+
"""Unusual Options Activity"""
|
|
37
|
+
return self._get("/derivatives/options/unusual-activity", params)
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
class AsyncDerivatives(AsyncResource):
|
|
41
|
+
async def options_flow(self, identifier: str, **params: Any) -> Any:
|
|
42
|
+
"""Options Flow"""
|
|
43
|
+
return await self._get(f"/derivatives/options/flow/{quote(str(identifier))}", params)
|
|
44
|
+
async def options_greeks(self, identifier: str, **params: Any) -> Any:
|
|
45
|
+
"""Options Greeks"""
|
|
46
|
+
return await self._get(f"/derivatives/options/greeks/{quote(str(identifier))}", params)
|
|
47
|
+
async def options_iv_surface(self, identifier: str, **params: Any) -> Any:
|
|
48
|
+
"""IV Surface"""
|
|
49
|
+
return await self._get(f"/derivatives/options/iv-surface/{quote(str(identifier))}", params)
|
|
50
|
+
async def options_price(self, body: Any = None, **params: Any) -> Any:
|
|
51
|
+
"""Price Option"""
|
|
52
|
+
if body is None and params:
|
|
53
|
+
body, params = params, None
|
|
54
|
+
elif isinstance(body, dict) and params:
|
|
55
|
+
body = {**body, **params}
|
|
56
|
+
params = None
|
|
57
|
+
return await self._post("/derivatives/options/price", body, params)
|
|
58
|
+
async def options_strategy(self, body: Any = None, **params: Any) -> Any:
|
|
59
|
+
"""Strategy Analysis"""
|
|
60
|
+
if body is None and params:
|
|
61
|
+
body, params = params, None
|
|
62
|
+
elif isinstance(body, dict) and params:
|
|
63
|
+
body = {**body, **params}
|
|
64
|
+
params = None
|
|
65
|
+
return await self._post("/derivatives/options/strategy", body, params)
|
|
66
|
+
async def options_unusual_activity(self, **params: Any) -> Any:
|
|
67
|
+
"""Unusual Options Activity"""
|
|
68
|
+
return await self._get("/derivatives/options/unusual-activity", params)
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from typing import Any, Optional
|
|
4
|
+
from urllib.parse import quote
|
|
5
|
+
|
|
6
|
+
from ._base import AsyncResource, SyncResource
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class Dex(SyncResource):
|
|
10
|
+
def categories(self, **params: Any) -> Any:
|
|
11
|
+
"""Onchain Token Categories"""
|
|
12
|
+
return self._get("/dex/categories", params)
|
|
13
|
+
def dexes(self, network: str, **params: Any) -> Any:
|
|
14
|
+
"""DEXes on a Network"""
|
|
15
|
+
return self._get(f"/dex/dexes/{quote(str(network))}", params)
|
|
16
|
+
def networks(self, **params: Any) -> Any:
|
|
17
|
+
"""Onchain DEX Networks"""
|
|
18
|
+
return self._get("/dex/networks", params)
|
|
19
|
+
def new_pools(self, **params: Any) -> Any:
|
|
20
|
+
"""Newly Created DEX Pools"""
|
|
21
|
+
return self._get("/dex/new-pools", params)
|
|
22
|
+
def pool_ohlcv(self, network: str, address: str, **params: Any) -> Any:
|
|
23
|
+
"""DEX Pool OHLCV"""
|
|
24
|
+
return self._get(f"/dex/pool-ohlcv/{quote(str(network))}/{quote(str(address))}", params)
|
|
25
|
+
def pools(self, network: str, **params: Any) -> Any:
|
|
26
|
+
"""Top DEX Pools by Network"""
|
|
27
|
+
return self._get(f"/dex/pools/{quote(str(network))}", params)
|
|
28
|
+
def trending_pools(self, **params: Any) -> Any:
|
|
29
|
+
"""Trending DEX Pools"""
|
|
30
|
+
return self._get("/dex/trending-pools", params)
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
class AsyncDex(AsyncResource):
|
|
34
|
+
async def categories(self, **params: Any) -> Any:
|
|
35
|
+
"""Onchain Token Categories"""
|
|
36
|
+
return await self._get("/dex/categories", params)
|
|
37
|
+
async def dexes(self, network: str, **params: Any) -> Any:
|
|
38
|
+
"""DEXes on a Network"""
|
|
39
|
+
return await self._get(f"/dex/dexes/{quote(str(network))}", params)
|
|
40
|
+
async def networks(self, **params: Any) -> Any:
|
|
41
|
+
"""Onchain DEX Networks"""
|
|
42
|
+
return await self._get("/dex/networks", params)
|
|
43
|
+
async def new_pools(self, **params: Any) -> Any:
|
|
44
|
+
"""Newly Created DEX Pools"""
|
|
45
|
+
return await self._get("/dex/new-pools", params)
|
|
46
|
+
async def pool_ohlcv(self, network: str, address: str, **params: Any) -> Any:
|
|
47
|
+
"""DEX Pool OHLCV"""
|
|
48
|
+
return await self._get(f"/dex/pool-ohlcv/{quote(str(network))}/{quote(str(address))}", params)
|
|
49
|
+
async def pools(self, network: str, **params: Any) -> Any:
|
|
50
|
+
"""Top DEX Pools by Network"""
|
|
51
|
+
return await self._get(f"/dex/pools/{quote(str(network))}", params)
|
|
52
|
+
async def trending_pools(self, **params: Any) -> Any:
|
|
53
|
+
"""Trending DEX Pools"""
|
|
54
|
+
return await self._get("/dex/trending-pools", params)
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from typing import Any, Optional
|
|
4
|
+
from urllib.parse import quote
|
|
5
|
+
|
|
6
|
+
from ._base import AsyncResource, SyncResource
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class EarningCalls(SyncResource):
|
|
10
|
+
def list(self, ticker: str, **params: Any) -> Any:
|
|
11
|
+
"""List earning call transcripts by ticker"""
|
|
12
|
+
return self._get(f"/earning-calls/list/{quote(str(ticker))}", params)
|
|
13
|
+
def transcript(self, id: str, **params: Any) -> Any:
|
|
14
|
+
"""Get earning call transcript by ID"""
|
|
15
|
+
return self._get(f"/earning-calls/transcript/{quote(str(id))}", params)
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
class AsyncEarningCalls(AsyncResource):
|
|
19
|
+
async def list(self, ticker: str, **params: Any) -> Any:
|
|
20
|
+
"""List earning call transcripts by ticker"""
|
|
21
|
+
return await self._get(f"/earning-calls/list/{quote(str(ticker))}", params)
|
|
22
|
+
async def transcript(self, id: str, **params: Any) -> Any:
|
|
23
|
+
"""Get earning call transcript by ID"""
|
|
24
|
+
return await self._get(f"/earning-calls/transcript/{quote(str(id))}", params)
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from typing import Any, Optional
|
|
4
|
+
from urllib.parse import quote
|
|
5
|
+
|
|
6
|
+
from ._base import AsyncResource, SyncResource
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class Ecb(SyncResource):
|
|
10
|
+
def exchange_rates(self, currency: Optional[str] = None, **params: Any) -> Any:
|
|
11
|
+
"""ECB exchange rate history"""
|
|
12
|
+
if currency is not None:
|
|
13
|
+
return self._get(f"/ecb/exchange-rates/{quote(str(currency))}", params)
|
|
14
|
+
return self._get("/ecb/exchange-rates", params)
|
|
15
|
+
def key_rates(self, **params: Any) -> Any:
|
|
16
|
+
"""ECB key interest rates"""
|
|
17
|
+
return self._get("/ecb/key-rates", params)
|
|
18
|
+
def yield_curves(self, **params: Any) -> Any:
|
|
19
|
+
"""ECB euro area yield curves"""
|
|
20
|
+
return self._get("/ecb/yield-curves", params)
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
class AsyncEcb(AsyncResource):
|
|
24
|
+
async def exchange_rates(self, currency: Optional[str] = None, **params: Any) -> Any:
|
|
25
|
+
"""ECB exchange rate history"""
|
|
26
|
+
if currency is not None:
|
|
27
|
+
return await self._get(f"/ecb/exchange-rates/{quote(str(currency))}", params)
|
|
28
|
+
return await self._get("/ecb/exchange-rates", params)
|
|
29
|
+
async def key_rates(self, **params: Any) -> Any:
|
|
30
|
+
"""ECB key interest rates"""
|
|
31
|
+
return await self._get("/ecb/key-rates", params)
|
|
32
|
+
async def yield_curves(self, **params: Any) -> Any:
|
|
33
|
+
"""ECB euro area yield curves"""
|
|
34
|
+
return await self._get("/ecb/yield-curves", params)
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from typing import Any, Optional
|
|
4
|
+
from urllib.parse import quote
|
|
5
|
+
|
|
6
|
+
from ._base import AsyncResource, SyncResource
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class EconomicForecasts(SyncResource):
|
|
10
|
+
def get(self, country: str, indicator: Optional[str] = None, **params: Any) -> Any:
|
|
11
|
+
"""Country Indicator Forecast"""
|
|
12
|
+
if indicator is not None:
|
|
13
|
+
return self._get(f"/economic-forecasts/{quote(str(country))}/{quote(str(indicator))}", params)
|
|
14
|
+
return self._get(f"/economic-forecasts/{quote(str(country))}", params)
|
|
15
|
+
def indicators(self, **params: Any) -> Any:
|
|
16
|
+
"""Forecast Indicators"""
|
|
17
|
+
return self._get("/economic-forecasts/indicators", params)
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
class AsyncEconomicForecasts(AsyncResource):
|
|
21
|
+
async def get(self, country: str, indicator: Optional[str] = None, **params: Any) -> Any:
|
|
22
|
+
"""Country Indicator Forecast"""
|
|
23
|
+
if indicator is not None:
|
|
24
|
+
return await self._get(f"/economic-forecasts/{quote(str(country))}/{quote(str(indicator))}", params)
|
|
25
|
+
return await self._get(f"/economic-forecasts/{quote(str(country))}", params)
|
|
26
|
+
async def indicators(self, **params: Any) -> Any:
|
|
27
|
+
"""Forecast Indicators"""
|
|
28
|
+
return await self._get("/economic-forecasts/indicators", params)
|