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.
Files changed (64) hide show
  1. eulerpool/__init__.py +281 -0
  2. eulerpool/_client.py +250 -0
  3. eulerpool/_version.py +3 -0
  4. eulerpool/errors.py +46 -0
  5. eulerpool/py.typed +0 -0
  6. eulerpool/resources/__init__.py +0 -0
  7. eulerpool/resources/_base.py +34 -0
  8. eulerpool/resources/aaq.py +18 -0
  9. eulerpool/resources/alternative.py +116 -0
  10. eulerpool/resources/analytics.py +50 -0
  11. eulerpool/resources/backtest.py +66 -0
  12. eulerpool/resources/bonds.py +36 -0
  13. eulerpool/resources/calendar.py +78 -0
  14. eulerpool/resources/certificates.py +30 -0
  15. eulerpool/resources/charting.py +42 -0
  16. eulerpool/resources/commodity.py +64 -0
  17. eulerpool/resources/crypto.py +30 -0
  18. eulerpool/resources/crypto_extended.py +246 -0
  19. eulerpool/resources/data.py +24 -0
  20. eulerpool/resources/datasets.py +100 -0
  21. eulerpool/resources/deals.py +28 -0
  22. eulerpool/resources/derivatives.py +68 -0
  23. eulerpool/resources/dex.py +54 -0
  24. eulerpool/resources/earning_calls.py +24 -0
  25. eulerpool/resources/ecb.py +34 -0
  26. eulerpool/resources/economic_forecasts.py +28 -0
  27. eulerpool/resources/energy.py +94 -0
  28. eulerpool/resources/equity.py +420 -0
  29. eulerpool/resources/equity_extended.py +150 -0
  30. eulerpool/resources/etf.py +60 -0
  31. eulerpool/resources/fair_value.py +18 -0
  32. eulerpool/resources/fixed_income.py +46 -0
  33. eulerpool/resources/forex.py +24 -0
  34. eulerpool/resources/fundamentals.py +60 -0
  35. eulerpool/resources/funds.py +32 -0
  36. eulerpool/resources/government.py +42 -0
  37. eulerpool/resources/ice_swap.py +18 -0
  38. eulerpool/resources/index.py +34 -0
  39. eulerpool/resources/institutional.py +60 -0
  40. eulerpool/resources/interest_rates.py +34 -0
  41. eulerpool/resources/macro.py +156 -0
  42. eulerpool/resources/market.py +214 -0
  43. eulerpool/resources/mutual_fund.py +42 -0
  44. eulerpool/resources/news.py +18 -0
  45. eulerpool/resources/nft.py +42 -0
  46. eulerpool/resources/partner.py +18 -0
  47. eulerpool/resources/patents.py +24 -0
  48. eulerpool/resources/peer_comparison.py +58 -0
  49. eulerpool/resources/portfolio.py +96 -0
  50. eulerpool/resources/portfolio_risk.py +58 -0
  51. eulerpool/resources/private_markets.py +24 -0
  52. eulerpool/resources/research.py +30 -0
  53. eulerpool/resources/risk_models.py +52 -0
  54. eulerpool/resources/screener.py +46 -0
  55. eulerpool/resources/sentiment.py +60 -0
  56. eulerpool/resources/shipping.py +58 -0
  57. eulerpool/resources/singapore.py +82 -0
  58. eulerpool/resources/transcripts.py +40 -0
  59. eulerpool/resources/trends.py +18 -0
  60. eulerpool/resources/vendor.py +28 -0
  61. eulerpool-1.0.0.dist-info/METADATA +146 -0
  62. eulerpool-1.0.0.dist-info/RECORD +64 -0
  63. eulerpool-1.0.0.dist-info/WHEEL +4 -0
  64. eulerpool-1.0.0.dist-info/licenses/LICENSE +21 -0
@@ -0,0 +1,146 @@
1
+ Metadata-Version: 2.5
2
+ Name: eulerpool
3
+ Version: 1.0.0
4
+ Summary: Financial Data API for stocks, ETFs, forex, crypto, bonds, and macro. Official Python SDK from Eulerpool, The Financial Data Company. 100,000+ securities, 375+ endpoints, 100,000 free API calls/month.
5
+ Project-URL: Homepage, https://eulerpool.com/financial-data-api
6
+ Project-URL: Documentation, https://eulerpool.com/financial-data-api/sdks/python
7
+ Project-URL: Repository, https://github.com/eulerpool/eulerpool-python
8
+ Project-URL: Issues, https://github.com/eulerpool/eulerpool-python/issues
9
+ Project-URL: Get API Key, https://eulerpool.com/developers/register
10
+ Author-email: Eulerpool Research Systems <api@eulerpool.com>
11
+ License-Expression: MIT
12
+ License-File: LICENSE
13
+ Keywords: bonds,crypto,etf,eulerpool,financial-data-api,forex,fundamentals,macro,market-data,sdk,stock-api,stock-market-api,stocks
14
+ Classifier: Development Status :: 5 - Production/Stable
15
+ Classifier: Intended Audience :: Developers
16
+ Classifier: Intended Audience :: Financial and Insurance Industry
17
+ Classifier: License :: OSI Approved :: MIT License
18
+ Classifier: Programming Language :: Python :: 3
19
+ Classifier: Programming Language :: Python :: 3.9
20
+ Classifier: Programming Language :: Python :: 3.10
21
+ Classifier: Programming Language :: Python :: 3.11
22
+ Classifier: Programming Language :: Python :: 3.12
23
+ Classifier: Programming Language :: Python :: 3.13
24
+ Classifier: Topic :: Office/Business :: Financial
25
+ Classifier: Typing :: Typed
26
+ Requires-Python: >=3.9
27
+ Requires-Dist: httpx>=0.24.0
28
+ Description-Content-Type: text/markdown
29
+
30
+ # Eulerpool SDK for Python
31
+
32
+ Official Python SDK for the [Eulerpool Financial Data API](https://eulerpool.com/developers).
33
+
34
+ ## Installation
35
+
36
+ ```bash
37
+ pip install eulerpool
38
+ ```
39
+
40
+ ## Quick Start
41
+
42
+ ```python
43
+ import eulerpool
44
+
45
+ client = eulerpool.Eulerpool("YOUR_API_KEY")
46
+
47
+ # Get a company profile
48
+ profile = client.equity.profile("US0378331005")
49
+ print(profile)
50
+
51
+ # Get income statement
52
+ income = client.equity.income_statement("US0378331005")
53
+
54
+ # Get ETF holdings
55
+ holdings = client.etf.holdings("IE00B4L5Y983")
56
+
57
+ # Get forex rates
58
+ rates = client.forex.rates("EUR")
59
+
60
+ # Get macro calendar
61
+ calendar = client.macro.calendar()
62
+
63
+ client.close()
64
+ ```
65
+
66
+ ## Context Manager
67
+
68
+ ```python
69
+ with eulerpool.Eulerpool("YOUR_API_KEY") as client:
70
+ profile = client.equity.profile("US0378331005")
71
+ ```
72
+
73
+ ## Async Support
74
+
75
+ ```python
76
+ import asyncio
77
+ import eulerpool
78
+
79
+ async def main():
80
+ async with eulerpool.AsyncEulerpool("YOUR_API_KEY") as client:
81
+ profile = await client.equity.profile("US0378331005")
82
+ income = await client.equity.income_statement("US0378331005")
83
+ print(profile)
84
+
85
+ asyncio.run(main())
86
+ ```
87
+
88
+ ## Authentication
89
+
90
+ Pass your API key when creating the client, or set `EULERPOOL_API_KEY`. By default it is sent as a `?token=` query parameter. To use the `Authorization: Bearer` header instead:
91
+
92
+ ```python
93
+ client = eulerpool.Eulerpool("YOUR_API_KEY", use_auth_header=True)
94
+ ```
95
+
96
+ Get your free API key at [eulerpool.com/developers/register](https://eulerpool.com/developers/register).
97
+
98
+ ## Configuration
99
+
100
+ ```python
101
+ client = eulerpool.Eulerpool(
102
+ "YOUR_API_KEY",
103
+ base_url="https://api.eulerpool.com/api/1", # default
104
+ use_auth_header=False, # default: use ?token= query param
105
+ max_retries=2, # default
106
+ timeout=30.0, # default: 30s
107
+ )
108
+ ```
109
+
110
+ ## Available Resources
111
+
112
+ 53 resources / 400+ methods, generated from the public OpenAPI spec. Common accessors:
113
+
114
+ `equity` `equity_extended` `etf` `macro` `forex` `bonds` `crypto` `crypto_extended` `market` `alternative` `sentiment` `research` `calendar` `screener` `mutual_fund` `commodity` `institutional` `certificates` `earning_calls` `index` `news` `trends` `ice_swap` `fair_value` `aaq` `analytics` `calendar` `charting` `energy` `fundamentals` `government` `shipping` `singapore` `transcripts`
115
+
116
+ Any path also works without a typed method:
117
+
118
+ ```python
119
+ client.get("/equity/profile/AAPL", language="en")
120
+ ```
121
+
122
+ ## Error Handling
123
+
124
+ ```python
125
+ from eulerpool import Eulerpool, AuthenticationError, RateLimitError
126
+
127
+ client = Eulerpool("YOUR_API_KEY")
128
+
129
+ try:
130
+ data = client.equity.profile("US0378331005")
131
+ except AuthenticationError:
132
+ print("Invalid API key")
133
+ except RateLimitError as e:
134
+ print(f"Rate limited. Retry after {e.retry_after}s")
135
+ ```
136
+
137
+ ## Requirements
138
+
139
+ - Python >= 3.9
140
+ - httpx >= 0.24.0
141
+
142
+ Pass the key explicitly or set `EULERPOOL_API_KEY`. Any undocumented path still works via `client.get("/path", **params)`.
143
+
144
+ ## License
145
+
146
+ MIT
@@ -0,0 +1,64 @@
1
+ eulerpool/__init__.py,sha256=aT_jsLj0_ldmjmugeZTmHOXkqf6f9arQ-p2gzwECQ7s,11713
2
+ eulerpool/_client.py,sha256=oXWYatd8oBgbI9VA8neyrEAxb2Zy4PkVC8j99UfdI4g,7877
3
+ eulerpool/_version.py,sha256=ivTlNxPFWHtga29-l48RAVm6Ay2vZNO0xhSuUk1Yr2U,52
4
+ eulerpool/errors.py,sha256=ChU3u9WfwGjSnSFsykh-y1cGEUAeuGvxnetVxpNPuK8,1501
5
+ eulerpool/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
6
+ eulerpool/resources/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
7
+ eulerpool/resources/_base.py,sha256=9rLQXwJ4IWtdGGjGmkcitUy8Y-l_LwBVcM4zOGXa1sw,1237
8
+ eulerpool/resources/aaq.py,sha256=oo7a-YHFTDThzHxH-9k0gm27SIjJPxMVa_pyN2gXzsA,546
9
+ eulerpool/resources/alternative.py,sha256=nCw0bwa9slJatuv7dPeKv12ae71uZQJY5QbH1WV9OSw,6380
10
+ eulerpool/resources/analytics.py,sha256=yvwxnTtg62-ZuSgpHIVGHHgRnQ9JLKRbACzSO2AmFd0,2346
11
+ eulerpool/resources/backtest.py,sha256=dBOS7wwGL-U6m6TdGfTjxV5MRnRojzSwOKBbb23dNqY,2608
12
+ eulerpool/resources/bonds.py,sha256=phHAQRReIwp71GrGe7UCYopK35TaWbQcW3tjyiuWkc8,1648
13
+ eulerpool/resources/calendar.py,sha256=1B87nCYvqwcykQzrmWSP3G1pRk-9WFicCZ5baBkHmSY,3784
14
+ eulerpool/resources/certificates.py,sha256=blHaTTslFo9yGt8d_HKfT5ZLuuCQpziVI-Cu8EhJ7Qk,1256
15
+ eulerpool/resources/charting.py,sha256=RenxH9BrevL62_Su4caq_JQrEjzW_47QKNaH2fJ-4zU,1944
16
+ eulerpool/resources/commodity.py,sha256=OuzeGPfcdbc2DyIo82LoWYpLIdqMjbpol2XYAybv8RQ,3208
17
+ eulerpool/resources/crypto.py,sha256=kzLplgCbsUKwQ6af9JIwq5tG0C48gAbvhw8UPIqm_sU,1308
18
+ eulerpool/resources/crypto_extended.py,sha256=Angfmr70bYYzv22kPmMOHg2ttM1oQIoSGf9E3IApV3E,13816
19
+ eulerpool/resources/data.py,sha256=VY2gQH4nBuD6DjIHed6WzOoOfOSrBhSq1OCmEukfNwM,716
20
+ eulerpool/resources/datasets.py,sha256=lQnuz9iYUx8catm88CUdh_eUa4hn6st7ypmDqOYX7xM,4976
21
+ eulerpool/resources/deals.py,sha256=Jf9_k82K8PwevhDoBy5MwKFVtk1h31FfXt4p7WbDsT4,1046
22
+ eulerpool/resources/derivatives.py,sha256=vFTNzZ9yo7qMPSxcHORaXA-JcHQIBOJ2KBbU5S_TvxU,3208
23
+ eulerpool/resources/dex.py,sha256=pNns7Ph7RuRLxWKq1KopsT2YujuVhkAu-b6JhwM7qZE,2442
24
+ eulerpool/resources/earning_calls.py,sha256=lG446H0njHtIYxEKZ3gjVPFqjQCmiMWER6ONw1z6Z7o,994
25
+ eulerpool/resources/ecb.py,sha256=lWLHC-XykfFjxllRlpS6FY1HG-kRFTEYFKva0fBrBzI,1404
26
+ eulerpool/resources/economic_forecasts.py,sha256=uMhEUPEMS5D5-8ezE6Gp0zyx_7RJGstXx9LyL1AYBd0,1262
27
+ eulerpool/resources/energy.py,sha256=FRbneZ_JyZoFAYPLg4f_Rbrsvpg3MSfOFqsPiICsPho,4566
28
+ eulerpool/resources/equity.py,sha256=eEI9_0UP_wO85V2yn-XsHxF-_7bbXB_8gzACEYkEtVY,25878
29
+ eulerpool/resources/equity_extended.py,sha256=HlM5JoGIfEv6Hwvf4ZQoZ2p9FQ8OmtHanPqQKU9RFLM,9392
30
+ eulerpool/resources/etf.py,sha256=5B3GylJ97eufKauYMswL4ZrJKPRfZmGgVG-IVawX7jU,3002
31
+ eulerpool/resources/fair_value.py,sha256=q043z4PnFe3qrGsMX3sZ0FocsmxwSrfuGm7hf8Csrq8,570
32
+ eulerpool/resources/fixed_income.py,sha256=L-t6AJl0g1Si-x5EDAi1er6I7n6hkWPBNEsvxXyQJNE,1874
33
+ eulerpool/resources/forex.py,sha256=8Yiyp_5O4wyvDFCzdlBn5PfE4NbOTmGGVQJojdsT14I,812
34
+ eulerpool/resources/fundamentals.py,sha256=Bd78_QteUrVsYhLZRw0XjGGANKY6hwpmO4yTlOjuVbo,3388
35
+ eulerpool/resources/funds.py,sha256=kIVQMNhCa9o6sJxtQFXr9CHmDIfaslA3iCc810xeMkw,1276
36
+ eulerpool/resources/government.py,sha256=P8ubVTeZo4xe4Yv_9ueeObhZASYUiWApwMcUKTeF_kU,1950
37
+ eulerpool/resources/ice_swap.py,sha256=V2auML97rpiNmZps-0bqA95Vk6GV1cb1uihF1dej8xo,530
38
+ eulerpool/resources/index.py,sha256=72LM72JEq8p4o2nAT8gLg7JelH1yW1Mx2f09_ZPYlyI,1254
39
+ eulerpool/resources/institutional.py,sha256=-X9A82sGsY3joqtp6Vtg-i0hdP2TljlXMStwhLpk6Is,3196
40
+ eulerpool/resources/interest_rates.py,sha256=QIb9tSOCJopMxnPr9K-sdU0FbO1JmTkbqkOzvp4D7-M,1478
41
+ eulerpool/resources/macro.py,sha256=hm4Qf3UlXAZ-ehpiiVvECql4g_73Qhaybpv3xQw9zUs,8048
42
+ eulerpool/resources/market.py,sha256=2si43VTdCreatkQi0_LgfEti-blnrN5fONCZmM7RIaM,11214
43
+ eulerpool/resources/mutual_fund.py,sha256=xl-RNT8gDj6TC2IiL-uknESzd-eHDwLXh1-c-WH5VT4,2054
44
+ eulerpool/resources/news.py,sha256=0elZCzGMgsd_RvAXYbZu-fCATrHSXJCAyuQZ2YfD-FA,472
45
+ eulerpool/resources/nft.py,sha256=usN_hDFcSJ_WKu-AmXgyM7Gj9OhiOlbu-lnXeOlHkXA,1780
46
+ eulerpool/resources/partner.py,sha256=Wf6B8_WJMW6cprgm9s0o18sDYpgbh8bpHxuXWrYsQcc,564
47
+ eulerpool/resources/patents.py,sha256=1aaC0c8SobCTFo6dX0AOh84vvviPbHm0zmz8TRKIEus,892
48
+ eulerpool/resources/peer_comparison.py,sha256=mPEPn-UuWEptDIjESlIBWh6izmSB_VGb7FKJfGrg_tU,2750
49
+ eulerpool/resources/portfolio.py,sha256=BZrrdcNXMz9nhdibGrDwe4_BaTvaKu07w5FRQRagiwY,4736
50
+ eulerpool/resources/portfolio_risk.py,sha256=UiLAesrT063jzsaD2QAWw1-QfiJ0dkQBY4Gj2bKyyzM,2936
51
+ eulerpool/resources/private_markets.py,sha256=rS-_2x1Kxqz8iVQDHMCWkpTPMFxTIOdFtCuQbMXHyP8,882
52
+ eulerpool/resources/research.py,sha256=pX5BzK6sGfs1w0BPlSeSqkS3x_3kSX99yrPgIasoMhw,1294
53
+ eulerpool/resources/risk_models.py,sha256=W5CQM7tgHE2sFZYp_wi2HPW7-o-lRpVUWvumoviA4wk,2242
54
+ eulerpool/resources/screener.py,sha256=-wZ8bB6kUKennN_VtmY7pfoQ0iXMWyNiby_U5t2WMIU,1792
55
+ eulerpool/resources/sentiment.py,sha256=7wrhG279OtxC_FQ8q3HUw0kH1XPiXlL7cJaCsuqF_Tw,3318
56
+ eulerpool/resources/shipping.py,sha256=cED3ejCnI5cUjWElsjCj5zVymR-QvpJxtJsc1mQqlO8,2512
57
+ eulerpool/resources/singapore.py,sha256=0A8HshWWUasMk7-eN1zHVR63TyW9YVXi32cRZdiXQrU,3952
58
+ eulerpool/resources/transcripts.py,sha256=mK_Wi5Yl6jNjOPWxGg54UTVfJUCikKZIwyExVs9zuc0,2044
59
+ eulerpool/resources/trends.py,sha256=V3AxkPw1x9OyplJuGY_H4ASLLu5yVoYGMU0AwW93XVg,586
60
+ eulerpool/resources/vendor.py,sha256=jv7iSveZEH4RtdVtcrz7boVr4cCUkT223W8cJdvgl0k,1230
61
+ eulerpool-1.0.0.dist-info/METADATA,sha256=XzXtZuDGsJF8zSE-kubZdMLURhr4OPhGHXl4f-dnaKA,4525
62
+ eulerpool-1.0.0.dist-info/WHEEL,sha256=zOwg4jB6zX2kU910N-cMawjivD6tO8NEWvE12je1bVk,87
63
+ eulerpool-1.0.0.dist-info/licenses/LICENSE,sha256=C9AiaisEIih0dLTFet7YDP_UhistaZj2XDXvG-YISk8,1083
64
+ eulerpool-1.0.0.dist-info/RECORD,,
@@ -0,0 +1,4 @@
1
+ Wheel-Version: 1.0
2
+ Generator: hatchling 1.32.0
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Eulerpool Research Systems
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.