HedgeTech 0.0.0__py3-none-any.whl → 0.1.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.
- HedgeTech/Auth/__AuthAsyncClient.py +150 -0
- HedgeTech/Auth/__AuthSyncClient.py +153 -0
- HedgeTech/Auth/__init__.py +2 -0
- HedgeTech/DataEngine/__init__.py +4 -0
- HedgeTech/DataEngine/__tse_ifb/__AsyncClient.py +1588 -0
- HedgeTech/DataEngine/__tse_ifb/__SyncClient.py +1542 -0
- HedgeTech/DataEngine/__tse_ifb/__init__.py +2 -0
- HedgeTech/DataEngine/__tse_ifb/__io_types/__init__.py +39 -0
- HedgeTech/DataEngine/__tse_ifb/__io_types/__requests.py +47 -0
- HedgeTech/DataEngine/__tse_ifb/__io_types/__response.py +1921 -0
- {hedgetech-0.0.0.dist-info → hedgetech-0.1.0.dist-info}/METADATA +170 -8
- hedgetech-0.1.0.dist-info/RECORD +16 -0
- HedgeTech/__init__.py +0 -0
- hedgetech-0.0.0.dist-info/RECORD +0 -7
- {hedgetech-0.0.0.dist-info → hedgetech-0.1.0.dist-info}/WHEEL +0 -0
- {hedgetech-0.0.0.dist-info → hedgetech-0.1.0.dist-info}/licenses/LICENSE +0 -0
- {hedgetech-0.0.0.dist-info → hedgetech-0.1.0.dist-info}/licenses/NOTICE +0 -0
- {hedgetech-0.0.0.dist-info → hedgetech-0.1.0.dist-info}/top_level.txt +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: HedgeTech
|
|
3
|
-
Version: 0.
|
|
4
|
-
Summary:
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: A unified, high-performance API layer that powers all trading infrastructure across the HedgeTech ecosystem, providing modular, scalable, and real-time interfaces for market data, order management, and execution systems.
|
|
5
5
|
Author-email: "hedgetech.ir" <info@hedgetech.ir>
|
|
6
6
|
License: Apache License
|
|
7
7
|
Version 2.0, January 2004
|
|
@@ -182,22 +182,184 @@ License: Apache License
|
|
|
182
182
|
|
|
183
183
|
Copyright 2025 HedgeTech
|
|
184
184
|
Licensed under the Apache License, Version 2.0
|
|
185
|
-
Project-URL: Homepage, https://
|
|
185
|
+
Project-URL: Homepage, https://hedgetech.ir/landing/
|
|
186
186
|
Project-URL: Documentation, https://github.com/HedgeTech-ir/HedgeTech/blob/main/README.md
|
|
187
187
|
Project-URL: Repository, https://github.com/HedgeTech-ir/HedgeTech
|
|
188
|
-
Keywords: hedge,finance,trading,
|
|
188
|
+
Keywords: hedge,finance,financial-markets,stocks,equities,trading,algo-trading,algorithmic-trading,automated-trading,oms,order-management-system,execution,orderbook,real-time,high-frequency,portfolio-management,risk-management,market-data,exchange-api,sdk,python,async,websocket
|
|
189
189
|
Classifier: Programming Language :: Python :: 3
|
|
190
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
191
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
192
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
193
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
190
194
|
Classifier: License :: OSI Approved :: Apache Software License
|
|
191
195
|
Classifier: Operating System :: OS Independent
|
|
192
|
-
Classifier: Development Status ::
|
|
196
|
+
Classifier: Development Status :: 4 - Beta
|
|
193
197
|
Classifier: Intended Audience :: Developers
|
|
194
198
|
Classifier: Intended Audience :: Financial and Insurance Industry
|
|
195
|
-
Classifier: Topic ::
|
|
199
|
+
Classifier: Topic :: Office/Business :: Financial
|
|
200
|
+
Classifier: Topic :: Scientific/Engineering :: Information Analysis
|
|
201
|
+
Classifier: Topic :: System :: Networking
|
|
202
|
+
Classifier: Topic :: Internet :: WWW/HTTP
|
|
203
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
204
|
+
Classifier: Framework :: AsyncIO
|
|
205
|
+
Classifier: Typing :: Typed
|
|
196
206
|
Requires-Python: >=3.10
|
|
197
207
|
Description-Content-Type: text/markdown
|
|
198
208
|
License-File: LICENSE
|
|
199
209
|
License-File: NOTICE
|
|
200
|
-
Requires-Dist: httpx[http2]
|
|
210
|
+
Requires-Dist: httpx[http2]<=0.28.1
|
|
211
|
+
Requires-Dist: brotli<=1.2.0
|
|
212
|
+
Requires-Dist: zstd<=1.5.7.2
|
|
213
|
+
Requires-Dist: PyJWT<=2.10.1
|
|
214
|
+
Requires-Dist: websockets<=15.0.1
|
|
201
215
|
Dynamic: license-file
|
|
202
216
|
|
|
203
|
-
HedgeTech
|
|
217
|
+
# HedgeTech Python SDK
|
|
218
|
+
|
|
219
|
+
HedgeTech Python SDK is a professional, lightweight, and modular Python package designed to provide seamless access to HedgeTech services. The SDK is crafted for developers, data analysts, and algorithmic traders who want to interact with the Tehran Stock Exchange (TSE & IFB) using a clean, reliable, and easy-to-use API. It supports both synchronous and asynchronous workflows, offering maximum flexibility and performance for different application scenarios.
|
|
220
|
+
|
|
221
|
+
> **Note:** This SDK requires Python >= 3.10 and is currently in Beta. Some APIs may change in future releases, but it is stable enough for daily use.
|
|
222
|
+
|
|
223
|
+
## Features
|
|
224
|
+
|
|
225
|
+
* Secure authentication with both async and sync clients.
|
|
226
|
+
* Real-time and historical market data retrieval from TSE & IFB.
|
|
227
|
+
* Modular and maintainable architecture, designed to support multiple engines (DataEngine engines, WebSocket clients, etc.).
|
|
228
|
+
* Structured request and response types for robust data handling.
|
|
229
|
+
* Fully asynchronous support for high-performance applications.
|
|
230
|
+
* Easy to integrate into trading bots, analytics pipelines, dashboards, or WebSocket feeds.
|
|
231
|
+
|
|
232
|
+
## Installation
|
|
233
|
+
|
|
234
|
+
Install HedgeTech SDK via PyPI:
|
|
235
|
+
|
|
236
|
+
```
|
|
237
|
+
pip install HedgeTech
|
|
238
|
+
```
|
|
239
|
+
|
|
240
|
+
### Updating the Package
|
|
241
|
+
|
|
242
|
+
To update HedgeTech SDK to the latest version in your environment, use:
|
|
243
|
+
|
|
244
|
+
```
|
|
245
|
+
pip install --upgrade HedgeTech
|
|
246
|
+
```
|
|
247
|
+
|
|
248
|
+
## Usage
|
|
249
|
+
|
|
250
|
+
The SDK exposes all major clients through the top-level modules, so you generally do **not** need to import internal implementation files directly.
|
|
251
|
+
|
|
252
|
+
### Authentication
|
|
253
|
+
|
|
254
|
+
> **Note:** Make sure to use the matching async or sync Auth client depending on your workflow.
|
|
255
|
+
|
|
256
|
+
#### Async Authentication
|
|
257
|
+
|
|
258
|
+
```python
|
|
259
|
+
from HedgeTech.Auth import AuthAsyncClient
|
|
260
|
+
|
|
261
|
+
auth_async_client = await AuthAsyncClient.login(
|
|
262
|
+
UserName_or_Email='<YOUR UserName_or_Email>',
|
|
263
|
+
Password='<YOUR Password>'
|
|
264
|
+
)
|
|
265
|
+
print(auth_async_client.token)
|
|
266
|
+
```
|
|
267
|
+
|
|
268
|
+
#### Sync Authentication
|
|
269
|
+
|
|
270
|
+
```python
|
|
271
|
+
from HedgeTech.Auth import AuthSyncClient
|
|
272
|
+
|
|
273
|
+
auth_sync_client = AuthSyncClient.login(
|
|
274
|
+
UserName_or_Email='<YOUR UserName_or_Email>',
|
|
275
|
+
Password='<YOUR Password>'
|
|
276
|
+
)
|
|
277
|
+
print(auth_sync_client.token)
|
|
278
|
+
```
|
|
279
|
+
|
|
280
|
+
### DataEngine / TSE IFB
|
|
281
|
+
|
|
282
|
+
The DataEngine is designed to support multiple engines in a modular way. Each engine provides its own async and sync clients, structured request and response types, and can be integrated with other engines such as WebSocket clients.
|
|
283
|
+
|
|
284
|
+
> **Important Note on Sync vs Async:** All clients have the **same method names and behavior** in both Sync and Async versions. The only difference is how they execute: Sync runs in a blocking manner, while Async requires `await` and an event loop. This design allows you to switch between Sync and Async without changing the logic or input/output of your code.
|
|
285
|
+
|
|
286
|
+
#### Async Data Client
|
|
287
|
+
|
|
288
|
+
```python
|
|
289
|
+
from HedgeTech.DataEngine import DataEngine_TseIfb_AsyncClient
|
|
290
|
+
|
|
291
|
+
client = DataEngine_TseIfb_AsyncClient(auth_async_client)
|
|
292
|
+
data = await client.live_best_limit_by_isin(
|
|
293
|
+
symbol_isins=['IRT1AHRM0001','IRO1IKCO0001']
|
|
294
|
+
)
|
|
295
|
+
print(data)
|
|
296
|
+
|
|
297
|
+
# websocket Example
|
|
298
|
+
|
|
299
|
+
async for update in client.websocket_by_name(
|
|
300
|
+
channels=["best-limit", "order-book"],
|
|
301
|
+
symbol_names=["فملی","اطلس"]
|
|
302
|
+
):
|
|
303
|
+
|
|
304
|
+
print(update["data"])
|
|
305
|
+
```
|
|
306
|
+
|
|
307
|
+
#### Sync Data Client
|
|
308
|
+
|
|
309
|
+
```python
|
|
310
|
+
from HedgeTech.DataEngine import DataEngine_TseIfb_SyncClient
|
|
311
|
+
|
|
312
|
+
client = DataEngine_TseIfb_SyncClient(auth_sync_client)
|
|
313
|
+
data = client.historical_ohlcv_by_name(
|
|
314
|
+
symbolName='مهرگان',
|
|
315
|
+
start_timestamp=0,
|
|
316
|
+
end_timestamp='1763411432',
|
|
317
|
+
AdjustedPrice=True,
|
|
318
|
+
Resolution='D'
|
|
319
|
+
)
|
|
320
|
+
print(data)
|
|
321
|
+
|
|
322
|
+
# websocket Example
|
|
323
|
+
|
|
324
|
+
for update in client.websocket_by_isin(
|
|
325
|
+
channels=["best-limit", "order-book"],
|
|
326
|
+
symbol_isins=["IR1234567890"]
|
|
327
|
+
):
|
|
328
|
+
|
|
329
|
+
print(update["data"])
|
|
330
|
+
```
|
|
331
|
+
|
|
332
|
+
## Important Notes for Users
|
|
333
|
+
|
|
334
|
+
* This SDK requires Python >=3.10.
|
|
335
|
+
* The SDK is currently in **Beta** — APIs may change in future releases, but it is usable for most workflows.
|
|
336
|
+
* Always install dependencies with the specified versions to avoid compatibility issues.
|
|
337
|
+
* Async clients require an asyncio event loop.
|
|
338
|
+
* All main clients are exposed through top-level modules; you do not need to access internal files.
|
|
339
|
+
* Keywords and classifiers are chosen to make the SDK easy to find for developers working in finance, trading, and data analysis.
|
|
340
|
+
|
|
341
|
+
## Modules Overview
|
|
342
|
+
|
|
343
|
+
### HedgeTech.Auth
|
|
344
|
+
|
|
345
|
+
Handles authentication for all HedgeTech clients. The async (`AuthAsyncClient`) and sync (`AuthSyncClient`) clients are exposed through the top-level Auth module.
|
|
346
|
+
|
|
347
|
+
### HedgeTech.DataEngine
|
|
348
|
+
|
|
349
|
+
Handles interactions with the Tehran Stock Exchange IFB and other engines. Provides:
|
|
350
|
+
|
|
351
|
+
* Async and sync clients for fetching market data.
|
|
352
|
+
* Structured request and response types for predictable and robust data handling.
|
|
353
|
+
* Modular design that allows integration of additional engines, such as WebSocket clients or future data engines, without modifying the main interface.
|
|
354
|
+
|
|
355
|
+
## Contributing
|
|
356
|
+
|
|
357
|
+
We welcome contributions from the community! Please follow standard Python coding conventions, write clear documentation for any new features, and submit pull requests for improvements or bug fixes.
|
|
358
|
+
|
|
359
|
+
## License
|
|
360
|
+
|
|
361
|
+
This project is licensed under the **Apache License 2.0**. See the LICENSE file for full details.
|
|
362
|
+
|
|
363
|
+
## Support
|
|
364
|
+
|
|
365
|
+
For questions or issues, please open a GitHub issue or contact the HedgeTech team directly. We aim to provide timely support and guidance for all developers using the SDK.
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
HedgeTech/Auth/__AuthAsyncClient.py,sha256=ZWYTxg-idzFxOChbVvHbEmfZRMyiinI-yzPuWZGQeag,4850
|
|
2
|
+
HedgeTech/Auth/__AuthSyncClient.py,sha256=e5KiQ9aQD-_ztUrLr_GP3EcCzCeS6_wLkdRzl_nQ8Y8,4804
|
|
3
|
+
HedgeTech/Auth/__init__.py,sha256=2Ek8ZkhrRi0D7ewhMH4pyK0iqxe_FfpGBSEIu3-tsik,91
|
|
4
|
+
HedgeTech/DataEngine/__init__.py,sha256=qoIZgB8J3UFDDGr0-ViiyEirTzcOy0hhL4a6E6rl2d8,94
|
|
5
|
+
HedgeTech/DataEngine/__tse_ifb/__AsyncClient.py,sha256=8cBF_f5ekKyH9Xceb0fMdUK1sWyLQQlfp_LB1rMyrl0,60357
|
|
6
|
+
HedgeTech/DataEngine/__tse_ifb/__SyncClient.py,sha256=84yexoW7Vb_sMlT3VnXTDPA7HGEfmkiC7AEYbryJF4Y,58431
|
|
7
|
+
HedgeTech/DataEngine/__tse_ifb/__init__.py,sha256=fNfmOjNXiOYTAcOgIzSXP5J1XzyX4v5urviCSwYpoyY,111
|
|
8
|
+
HedgeTech/DataEngine/__tse_ifb/__io_types/__init__.py,sha256=MRShofLnx6Qm0-olFt5CrJjjoNk-785BxUnO8VC1Clo,895
|
|
9
|
+
HedgeTech/DataEngine/__tse_ifb/__io_types/__requests.py,sha256=x_Rc7afQahJpIq4beKctmmqRmTvipnViHICUZRj0Z-I,1601
|
|
10
|
+
HedgeTech/DataEngine/__tse_ifb/__io_types/__response.py,sha256=pMzjM8biVuEya62MHGU4guUCqNmhOHOToGXLS21uxc0,70442
|
|
11
|
+
hedgetech-0.1.0.dist-info/licenses/LICENSE,sha256=RzVH4fFelGlKDPcfQUnkbkri8Xu-bsauTM5FpraQ4NM,10251
|
|
12
|
+
hedgetech-0.1.0.dist-info/licenses/NOTICE,sha256=as8VRMsbPsDe5W_cX1xPxPVHPDL8PqGGzHgn5IZF26U,171
|
|
13
|
+
hedgetech-0.1.0.dist-info/METADATA,sha256=RCgXBFSp729u9TpsOsOHNoJ3LgKWnfL741iOKMiGnHo,18993
|
|
14
|
+
hedgetech-0.1.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
15
|
+
hedgetech-0.1.0.dist-info/top_level.txt,sha256=dlpgpN4ktclL9B5cS_dchuncCOf5JYPs_bobRAw3-ng,10
|
|
16
|
+
hedgetech-0.1.0.dist-info/RECORD,,
|
HedgeTech/__init__.py
DELETED
|
File without changes
|
hedgetech-0.0.0.dist-info/RECORD
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
HedgeTech/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
2
|
-
hedgetech-0.0.0.dist-info/licenses/LICENSE,sha256=RzVH4fFelGlKDPcfQUnkbkri8Xu-bsauTM5FpraQ4NM,10251
|
|
3
|
-
hedgetech-0.0.0.dist-info/licenses/NOTICE,sha256=as8VRMsbPsDe5W_cX1xPxPVHPDL8PqGGzHgn5IZF26U,171
|
|
4
|
-
hedgetech-0.0.0.dist-info/METADATA,sha256=qdCMsmkrWF4ASLXE3CyZmYHcTpdRQjwixqvfxR5Tujg,12725
|
|
5
|
-
hedgetech-0.0.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
6
|
-
hedgetech-0.0.0.dist-info/top_level.txt,sha256=dlpgpN4ktclL9B5cS_dchuncCOf5JYPs_bobRAw3-ng,10
|
|
7
|
-
hedgetech-0.0.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|