finatic-server-python 0.1.2__py3-none-any.whl → 0.9.5__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 (199) hide show
  1. finatic_server_python/__init__.py +26 -0
  2. finatic_server_python-0.9.5.dist-info/METADATA +356 -0
  3. finatic_server_python-0.9.5.dist-info/RECORD +184 -0
  4. {finatic_server_python-0.1.2.dist-info → finatic_server_python-0.9.5.dist-info}/WHEEL +1 -2
  5. finatic_server_python-0.9.5.dist-info/licenses/LICENSE +39 -0
  6. src/.openapi-generator-ignore +23 -0
  7. src/__init__.py +14 -0
  8. src/custom/FinaticServer.py +31 -0
  9. src/custom/__init__.py +15 -0
  10. src/custom/wrappers/brokers.py +21 -0
  11. src/custom/wrappers/company.py +19 -0
  12. src/custom/wrappers/session.py +23 -0
  13. src/generated/FinaticServer.py +2854 -0
  14. src/generated/__init__.py +336 -0
  15. src/generated/api/__init__.py +7 -0
  16. src/generated/api/brokers_api.py +4553 -0
  17. src/generated/api/company_api.py +302 -0
  18. src/generated/api/session_api.py +1233 -0
  19. src/generated/api_client.py +807 -0
  20. src/generated/api_response.py +21 -0
  21. src/generated/config.py +111 -0
  22. src/generated/configuration.py +582 -0
  23. src/generated/exceptions.py +219 -0
  24. src/generated/models/__init__.py +158 -0
  25. src/generated/models/accounts.py +276 -0
  26. src/generated/models/accountstatus.py +142 -0
  27. src/generated/models/accounttype.py +142 -0
  28. src/generated/models/assettype.py +136 -0
  29. src/generated/models/availablebalance.py +144 -0
  30. src/generated/models/availabletowithdraw.py +144 -0
  31. src/generated/models/averagebuyprice.py +144 -0
  32. src/generated/models/averagefillprice.py +144 -0
  33. src/generated/models/averagesellprice.py +144 -0
  34. src/generated/models/balancetype.py +136 -0
  35. src/generated/models/broker_data_account_type_enum.py +38 -0
  36. src/generated/models/broker_data_asset_type_enum.py +41 -0
  37. src/generated/models/broker_data_order_side_enum.py +37 -0
  38. src/generated/models/broker_data_position_status_enum.py +38 -0
  39. src/generated/models/broker_info.py +127 -0
  40. src/generated/models/buyingpower.py +144 -0
  41. src/generated/models/cashbalance.py +144 -0
  42. src/generated/models/closedquantity.py +138 -0
  43. src/generated/models/closepriceavg.py +144 -0
  44. src/generated/models/commission.py +144 -0
  45. src/generated/models/commissionshare.py +144 -0
  46. src/generated/models/costbasis.py +144 -0
  47. src/generated/models/costbasis1.py +138 -0
  48. src/generated/models/costbasiswithcommission.py +144 -0
  49. src/generated/models/costbasiswithcommission1.py +138 -0
  50. src/generated/models/currentbalance.py +144 -0
  51. src/generated/models/currentprice.py +144 -0
  52. src/generated/models/disconnect_company_from_broker_connection_result.py +102 -0
  53. src/generated/models/eventtype.py +136 -0
  54. src/generated/models/fdx_account_status.py +40 -0
  55. src/generated/models/fdx_account_type.py +46 -0
  56. src/generated/models/fdx_asset_type.py +41 -0
  57. src/generated/models/fdx_balance_type.py +46 -0
  58. src/generated/models/fdx_broker_account.py +255 -0
  59. src/generated/models/fdx_broker_balance.py +281 -0
  60. src/generated/models/fdx_broker_order.py +231 -0
  61. src/generated/models/fdx_broker_order_event.py +206 -0
  62. src/generated/models/fdx_broker_order_fill.py +185 -0
  63. src/generated/models/fdx_broker_order_group.py +161 -0
  64. src/generated/models/fdx_broker_position.py +340 -0
  65. src/generated/models/fdx_broker_position_lot.py +230 -0
  66. src/generated/models/fdx_broker_position_lot_fill.py +139 -0
  67. src/generated/models/fdx_order_class.py +41 -0
  68. src/generated/models/fdx_order_event_type.py +53 -0
  69. src/generated/models/fdx_order_group_order.py +133 -0
  70. src/generated/models/fdx_order_group_type.py +40 -0
  71. src/generated/models/fdx_order_leg.py +253 -0
  72. src/generated/models/fdx_order_side.py +37 -0
  73. src/generated/models/fdx_order_status.py +45 -0
  74. src/generated/models/fdx_order_type.py +40 -0
  75. src/generated/models/fdx_position_side.py +37 -0
  76. src/generated/models/fdx_position_status.py +37 -0
  77. src/generated/models/fdx_security_id_type.py +39 -0
  78. src/generated/models/fdx_time_in_force.py +40 -0
  79. src/generated/models/filledquantity.py +144 -0
  80. src/generated/models/fillprice.py +138 -0
  81. src/generated/models/fillquantity.py +138 -0
  82. src/generated/models/finatic_api_error_response.py +104 -0
  83. src/generated/models/finatic_response_accounts.py +120 -0
  84. src/generated/models/finatic_response_disconnect_company_from_broker_connection_result.py +120 -0
  85. src/generated/models/finatic_response_list_broker_info.py +120 -0
  86. src/generated/models/finatic_response_list_fdx_broker_account.py +120 -0
  87. src/generated/models/finatic_response_list_fdx_broker_balance.py +120 -0
  88. src/generated/models/finatic_response_list_fdx_broker_order.py +120 -0
  89. src/generated/models/finatic_response_list_fdx_broker_order_event.py +120 -0
  90. src/generated/models/finatic_response_list_fdx_broker_order_fill.py +120 -0
  91. src/generated/models/finatic_response_list_fdx_broker_order_group.py +120 -0
  92. src/generated/models/finatic_response_list_fdx_broker_position.py +120 -0
  93. src/generated/models/finatic_response_list_fdx_broker_position_lot.py +120 -0
  94. src/generated/models/finatic_response_list_fdx_broker_position_lot_fill.py +120 -0
  95. src/generated/models/finatic_response_list_user_broker_connection_with_permissions.py +120 -0
  96. src/generated/models/finatic_response_portal_url_response.py +120 -0
  97. src/generated/models/finatic_response_session_response_data.py +120 -0
  98. src/generated/models/finatic_response_session_user_response.py +120 -0
  99. src/generated/models/finatic_response_token_response_data.py +120 -0
  100. src/generated/models/futureunderlyingassettype.py +142 -0
  101. src/generated/models/grouptype.py +142 -0
  102. src/generated/models/http_validation_error.py +108 -0
  103. src/generated/models/initialmargin.py +144 -0
  104. src/generated/models/limitprice.py +144 -0
  105. src/generated/models/maintenancemargin.py +144 -0
  106. src/generated/models/marketvalue.py +144 -0
  107. src/generated/models/netliquidationvalue.py +144 -0
  108. src/generated/models/openprice.py +138 -0
  109. src/generated/models/openquantity.py +138 -0
  110. src/generated/models/orderclass.py +142 -0
  111. src/generated/models/orderstatus.py +142 -0
  112. src/generated/models/ordertype.py +142 -0
  113. src/generated/models/pendingbalance.py +144 -0
  114. src/generated/models/portal_url_response.py +100 -0
  115. src/generated/models/previousstatus.py +142 -0
  116. src/generated/models/price.py +138 -0
  117. src/generated/models/quantity.py +138 -0
  118. src/generated/models/quantity1.py +138 -0
  119. src/generated/models/quantity2.py +138 -0
  120. src/generated/models/realizedprofitloss.py +144 -0
  121. src/generated/models/realizedprofitloss1.py +138 -0
  122. src/generated/models/realizedprofitlosspercent.py +144 -0
  123. src/generated/models/realizedprofitlosswithcommission.py +144 -0
  124. src/generated/models/realizedprofitlosswithcommission1.py +138 -0
  125. src/generated/models/remainingquantity.py +144 -0
  126. src/generated/models/remainingquantity1.py +138 -0
  127. src/generated/models/securityidtype.py +136 -0
  128. src/generated/models/session_response_data.py +115 -0
  129. src/generated/models/session_start_request.py +105 -0
  130. src/generated/models/session_status.py +40 -0
  131. src/generated/models/session_user_response.py +100 -0
  132. src/generated/models/side.py +136 -0
  133. src/generated/models/side1.py +142 -0
  134. src/generated/models/side2.py +136 -0
  135. src/generated/models/side3.py +142 -0
  136. src/generated/models/status.py +136 -0
  137. src/generated/models/status1.py +142 -0
  138. src/generated/models/stopprice.py +144 -0
  139. src/generated/models/strikeprice.py +144 -0
  140. src/generated/models/success_payload_accounts.py +118 -0
  141. src/generated/models/success_payload_disconnect_company_from_broker_connection_result.py +118 -0
  142. src/generated/models/success_payload_list_broker_info.py +122 -0
  143. src/generated/models/success_payload_list_fdx_broker_account.py +122 -0
  144. src/generated/models/success_payload_list_fdx_broker_balance.py +122 -0
  145. src/generated/models/success_payload_list_fdx_broker_order.py +122 -0
  146. src/generated/models/success_payload_list_fdx_broker_order_event.py +122 -0
  147. src/generated/models/success_payload_list_fdx_broker_order_fill.py +122 -0
  148. src/generated/models/success_payload_list_fdx_broker_order_group.py +122 -0
  149. src/generated/models/success_payload_list_fdx_broker_position.py +122 -0
  150. src/generated/models/success_payload_list_fdx_broker_position_lot.py +122 -0
  151. src/generated/models/success_payload_list_fdx_broker_position_lot_fill.py +122 -0
  152. src/generated/models/success_payload_list_user_broker_connection_with_permissions.py +122 -0
  153. src/generated/models/success_payload_portal_url_response.py +118 -0
  154. src/generated/models/success_payload_session_response_data.py +118 -0
  155. src/generated/models/success_payload_session_user_response.py +118 -0
  156. src/generated/models/success_payload_token_response_data.py +118 -0
  157. src/generated/models/timeinforce.py +142 -0
  158. src/generated/models/token_response_data.py +103 -0
  159. src/generated/models/totalcashvalue.py +144 -0
  160. src/generated/models/totalrealizedpnl.py +144 -0
  161. src/generated/models/units.py +144 -0
  162. src/generated/models/unrealizedprofitloss.py +144 -0
  163. src/generated/models/unrealizedprofitlosspercent.py +144 -0
  164. src/generated/models/user_broker_connection_with_permissions.py +143 -0
  165. src/generated/models/validation_error.py +112 -0
  166. src/generated/models/validation_error_loc_inner.py +138 -0
  167. src/generated/rest.py +218 -0
  168. src/generated/types.py +22 -0
  169. src/generated/utils/__init__.py +48 -0
  170. src/generated/utils/cache.py +72 -0
  171. src/generated/utils/enum_coercion.py +63 -0
  172. src/generated/utils/error_handling.py +129 -0
  173. src/generated/utils/interceptors.py +102 -0
  174. src/generated/utils/logger.py +69 -0
  175. src/generated/utils/pagination.py +308 -0
  176. src/generated/utils/plain_object.py +74 -0
  177. src/generated/utils/request_id.py +12 -0
  178. src/generated/utils/retry.py +99 -0
  179. src/generated/utils/url_utils.py +74 -0
  180. src/generated/utils/validation.py +46 -0
  181. src/generated/wrappers/__init__.py +15 -0
  182. src/generated/wrappers/brokers.py +3393 -0
  183. src/generated/wrappers/company.py +297 -0
  184. src/generated/wrappers/session.py +1024 -0
  185. finatic_server/__init__.py +0 -133
  186. finatic_server/core/__init__.py +0 -6
  187. finatic_server/core/api_client.py +0 -1627
  188. finatic_server/core/client.py +0 -952
  189. finatic_server/types/__init__.py +0 -103
  190. finatic_server/types/auth.py +0 -142
  191. finatic_server/types/broker.py +0 -147
  192. finatic_server/types/common.py +0 -177
  193. finatic_server/types/orders.py +0 -77
  194. finatic_server/types/portfolio.py +0 -61
  195. finatic_server/utils/__init__.py +0 -17
  196. finatic_server/utils/errors.py +0 -86
  197. finatic_server_python-0.1.2.dist-info/METADATA +0 -330
  198. finatic_server_python-0.1.2.dist-info/RECORD +0 -16
  199. finatic_server_python-0.1.2.dist-info/top_level.txt +0 -1
@@ -0,0 +1,26 @@
1
+ """
2
+ Finatic Server Python SDK
3
+
4
+ This package re-exports everything from src to provide a clean import path:
5
+ from finatic_server_python import FinaticServer
6
+
7
+ This matches the pattern used by:
8
+ - Node.js: import { FinaticServer } from '@finatic/server-node'
9
+ - TypeScript: import { FinaticConnect } from '@finatic/client'
10
+
11
+ Package name: finatic-server-python (pip install finatic-server-python)
12
+ Import name: finatic_server_python (from finatic_server_python import ...)
13
+ """
14
+
15
+ # Re-export all from src
16
+ # When installed via pip, both src and finatic_server_python are in the same namespace
17
+ # In development, ensure src is importable by adding parent to path if needed
18
+ import sys
19
+ from pathlib import Path
20
+
21
+ # Add parent directory to path if src is not importable (development mode)
22
+ parent_dir = str(Path(__file__).parent.parent)
23
+ if parent_dir not in sys.path:
24
+ sys.path.insert(0, parent_dir)
25
+
26
+ from src import * # noqa: F403, F401
@@ -0,0 +1,356 @@
1
+ Metadata-Version: 2.4
2
+ Name: finatic-server-python
3
+ Version: 0.9.5
4
+ Summary: Python SDK for Finatic Server API
5
+ Project-URL: Homepage, https://github.com/FinaticORG/FinaticServerSDK-Python
6
+ Project-URL: Documentation, https://docs.finatic.com/python
7
+ Project-URL: Repository, https://github.com/FinaticORG/FinaticServerSDK-Python
8
+ Project-URL: Issues, https://github.com/FinaticORG/FinaticServerSDK-Python/issues
9
+ Author-email: Finatic <support@finatic.dev>
10
+ License: PROPRIETARY
11
+ License-File: LICENSE
12
+ Keywords: api,finance,finatic,sdk,trading
13
+ Classifier: Development Status :: 3 - Alpha
14
+ Classifier: Intended Audience :: Developers
15
+ Classifier: License :: Other/Proprietary License
16
+ Classifier: Programming Language :: Python :: 3
17
+ Classifier: Programming Language :: Python :: 3.8
18
+ Classifier: Programming Language :: Python :: 3.9
19
+ Classifier: Programming Language :: Python :: 3.10
20
+ Classifier: Programming Language :: Python :: 3.11
21
+ Classifier: Programming Language :: Python :: 3.12
22
+ Classifier: Topic :: Office/Business :: Financial
23
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
24
+ Requires-Python: >=3.9
25
+ Requires-Dist: aiohttp-retry>=2.9.1
26
+ Requires-Dist: aiohttp>=3.13.2
27
+ Requires-Dist: cachetools>=6.2.2
28
+ Requires-Dist: pydantic>=2.12.5
29
+ Requires-Dist: python-dateutil>=2.9.0.post0
30
+ Requires-Dist: structlog>=25.5.0
31
+ Requires-Dist: tenacity>=9.1.2
32
+ Requires-Dist: typing-extensions>=4.15.0
33
+ Requires-Dist: urllib3>=2.6.1
34
+ Provides-Extra: dev
35
+ Requires-Dist: black>=23.0.0; extra == 'dev'
36
+ Requires-Dist: flake8>=6.0.0; extra == 'dev'
37
+ Requires-Dist: isort>=5.12.0; extra == 'dev'
38
+ Requires-Dist: mypy>=1.0.0; extra == 'dev'
39
+ Requires-Dist: pre-commit>=3.0.0; extra == 'dev'
40
+ Requires-Dist: pytest-asyncio>=0.21.0; extra == 'dev'
41
+ Requires-Dist: pytest-cov>=4.0.0; extra == 'dev'
42
+ Requires-Dist: pytest>=7.0.0; extra == 'dev'
43
+ Requires-Dist: types-cachetools>=5.3.0; extra == 'dev'
44
+ Requires-Dist: types-python-dateutil>=2.8.0; extra == 'dev'
45
+ Description-Content-Type: text/markdown
46
+
47
+ # Finatic Python Server SDK
48
+
49
+ Python SDK for the Finatic Server API. Connect your Python applications to multiple brokerages through a unified, standardized interface.
50
+
51
+ **Finatic is a brokerage first aggregator. We simplify, standardize and enhance broker data.**
52
+
53
+ ## Installation
54
+
55
+ ```bash
56
+ pip install finatic-server-python
57
+ ```
58
+
59
+ Or using uv:
60
+
61
+ ```bash
62
+ uv pip install finatic-server-python
63
+ ```
64
+
65
+ ## Quick Start (5 Minutes)
66
+
67
+ ### 1. Initialize the SDK
68
+
69
+ ```python
70
+ from finatic_server_python import FinaticServer
71
+
72
+ # Initialize with your API key
73
+ finatic = await FinaticServer.init(
74
+ api_key='your-api-key',
75
+ user_id=None, # Optional user ID
76
+ sdk_config={
77
+ 'base_url': 'https://api.finatic.dev', # Optional, defaults to production
78
+ 'log_level': 'debug', # Optional: 'debug' | 'info' | 'warn' | 'error'
79
+ 'structured_logging': True, # Optional: Enable structured JSON logging
80
+ }
81
+ )
82
+ ```
83
+
84
+ **Note:** The `init()` method automatically starts a session, so you're ready to use the SDK immediately.
85
+
86
+ ### 2. Get Portal URL for Authentication
87
+
88
+ The portal allows users to connect their broker accounts. Get the URL and redirect users to it:
89
+
90
+ ```python
91
+ # Get portal URL
92
+ portal_url = await finatic.get_portal_url(
93
+ theme='dark', # Theme: 'light' | 'dark' | theme dict
94
+ brokers=['alpaca', 'tradier'], # Optional: Filter specific brokers
95
+ email='user@example.com', # Optional: Pre-fill email
96
+ mode='dark' # Mode: 'light' | 'dark'
97
+ )
98
+
99
+ print(f'Portal URL: {portal_url}')
100
+ # Redirect user to this URL for authentication
101
+ ```
102
+
103
+ ### 3. Check Authentication Status
104
+
105
+ ```python
106
+ # Check if user is authenticated
107
+ is_authenticated = finatic.is_authed()
108
+
109
+ # Get current user ID
110
+ user_id = finatic.get_user_id()
111
+
112
+ # Get session user details
113
+ session_user = await finatic.get_session_user()
114
+ ```
115
+
116
+ ### 4. Fetch Data
117
+
118
+ Once users have authenticated via the portal, you can fetch broker data:
119
+
120
+ ```python
121
+ # Get all orders (automatically paginates through all pages)
122
+ all_orders = await finatic.get_all_orders()
123
+
124
+ # Get orders with filters (single page)
125
+ orders = await finatic.get_orders(
126
+ broker_id='alpaca',
127
+ account_id='123456789',
128
+ order_status='filled',
129
+ limit=100,
130
+ offset=0
131
+ )
132
+
133
+ # Get all positions
134
+ all_positions = await finatic.get_all_positions()
135
+
136
+ # Get positions with filters
137
+ positions = await finatic.get_positions(
138
+ broker_id='alpaca',
139
+ symbol='AAPL',
140
+ limit=50
141
+ )
142
+
143
+ # Get all accounts
144
+ all_accounts = await finatic.get_all_accounts()
145
+
146
+ # Get balances
147
+ balances = await finatic.get_balances(
148
+ broker_id='alpaca',
149
+ account_id='123456789'
150
+ )
151
+ ```
152
+
153
+ ## Complete Example
154
+
155
+ ```python
156
+ import asyncio
157
+ import os
158
+ from finatic_server_python import FinaticServer
159
+
160
+ async def main():
161
+ # 1. Initialize SDK
162
+ finatic = await FinaticServer.init(
163
+ api_key=os.getenv('FINATIC_API_KEY'),
164
+ user_id=None, # Optional user ID
165
+ sdk_config={
166
+ 'base_url': os.getenv('FINATIC_API_URL', 'https://api.finatic.dev'),
167
+ 'log_level': 'info',
168
+ }
169
+ )
170
+
171
+ # 2. Get portal URL for user authentication
172
+ portal_url = await finatic.get_portal_url('dark')
173
+ print('Please visit this URL to authenticate:')
174
+ print(portal_url)
175
+
176
+ # Wait for user to authenticate (in a real app, you'd handle this via webhook or polling)
177
+ # For demo purposes, we'll assume authentication is complete
178
+
179
+ # 3. Fetch data
180
+ orders = await finatic.get_all_orders()
181
+ positions = await finatic.get_all_positions()
182
+ accounts = await finatic.get_all_accounts()
183
+
184
+ print('Orders:', orders.success.data if orders.success else None)
185
+ print('Positions:', positions.success.data if positions.success else None)
186
+ print('Accounts:', accounts.success.data if accounts.success else None)
187
+
188
+ if __name__ == '__main__':
189
+ asyncio.run(main())
190
+ ```
191
+
192
+ ## Generate One-Time Tokens for Client SDK
193
+
194
+ If you need to generate tokens for the Client SDK:
195
+
196
+ ```python
197
+ # Get a one-time token (useful for passing to client-side applications)
198
+ token = await finatic.get_token()
199
+
200
+ # Or with a custom API key
201
+ token = await finatic.get_token(api_key='custom-api-key')
202
+ ```
203
+
204
+ ## Available Data Methods
205
+
206
+ ### Orders
207
+
208
+ - `get_orders(**params)` - Get single page of orders
209
+ - `get_all_orders(**params)` - Get all orders (auto-paginated)
210
+ - `get_order_fills(order_id, **params)` - Get fills for a specific order
211
+ - `get_all_order_fills(order_id, **params)` - Get all fills (auto-paginated)
212
+ - `get_order_events(order_id, **params)` - Get events for a specific order
213
+ - `get_all_order_events(order_id, **params)` - Get all events (auto-paginated)
214
+ - `get_order_groups(**params)` - Get order groups
215
+ - `get_all_order_groups(**params)` - Get all order groups (auto-paginated)
216
+
217
+ ### Positions
218
+
219
+ - `get_positions(**params)` - Get single page of positions
220
+ - `get_all_positions(**params)` - Get all positions (auto-paginated)
221
+ - `get_position_lots(**params)` - Get position lots
222
+ - `get_all_position_lots(**params)` - Get all position lots (auto-paginated)
223
+ - `get_position_lot_fills(lot_id, **params)` - Get fills for a specific lot
224
+ - `get_all_position_lot_fills(lot_id, **params)` - Get all fills (auto-paginated)
225
+
226
+ ### Accounts & Balances
227
+
228
+ - `get_accounts(**params)` - Get single page of accounts
229
+ - `get_all_accounts(**params)` - Get all accounts (auto-paginated)
230
+ - `get_balances(**params)` - Get balances
231
+ - `get_all_balances(**params)` - Get all balances (auto-paginated)
232
+
233
+ ### Broker Management
234
+
235
+ - `get_brokers()` - Get available brokers
236
+ - `get_broker_connections()` - Get connected broker accounts
237
+ - `disconnect_company_from_broker(connection_id)` - Disconnect a broker
238
+
239
+ ### Company
240
+
241
+ - `get_company(company_id)` - Get company information
242
+
243
+ ## Method Parameters
244
+
245
+ Most data methods accept optional keyword arguments:
246
+
247
+ ```python
248
+ {
249
+ 'broker_id': 'alpaca', # Filter by broker (e.g., 'alpaca', 'tradier')
250
+ 'connection_id': 'uuid', # Filter by connection ID
251
+ 'account_id': '123456789', # Filter by account ID
252
+ 'symbol': 'AAPL', # Filter by symbol
253
+ 'order_status': 'filled', # Filter by order status
254
+ 'side': 'buy', # Filter by side ('buy' | 'sell')
255
+ 'asset_type': 'equity', # Filter by asset type
256
+ 'limit': 100, # Page size (default: varies by endpoint)
257
+ 'offset': 0, # Pagination offset (default: 0)
258
+ 'include_metadata': True, # Include metadata in response
259
+ # ... other filters specific to each method
260
+ }
261
+ ```
262
+
263
+ ## Response Format
264
+
265
+ All data methods return a `FinaticResponse` object:
266
+
267
+ ```python
268
+ {
269
+ 'success': {
270
+ 'data': [...], # List of data items
271
+ # ... other metadata
272
+ },
273
+ 'error': {
274
+ 'message': 'Error message',
275
+ 'code': 'ERROR_CODE'
276
+ },
277
+ 'warning': [...]
278
+ }
279
+ ```
280
+
281
+ Access the data:
282
+
283
+ ```python
284
+ result = await finatic.get_orders()
285
+ if result.success:
286
+ orders = result.success.data
287
+ # Use orders...
288
+ else:
289
+ print(f'Error: {result.error.message}')
290
+ ```
291
+
292
+ ## Session Management
293
+
294
+ ```python
295
+ # Start a new session (usually done automatically in init())
296
+ session_result = await finatic.start_session()
297
+
298
+ # Get session user
299
+ session_user = await finatic.get_session_user()
300
+
301
+ # Get session ID
302
+ session_id = finatic.get_session_id()
303
+
304
+ # Get company ID
305
+ company_id = finatic.get_company_id()
306
+ ```
307
+
308
+ ## Configuration Options
309
+
310
+ ```python
311
+ finatic = await FinaticServer.init(
312
+ api_key='your-api-key',
313
+ user_id=None,
314
+ sdk_config={
315
+ 'base_url': 'https://api.finatic.dev', # API base URL
316
+ 'log_level': 'info', # 'debug' | 'info' | 'warn' | 'error'
317
+ 'structured_logging': False, # Enable structured JSON logging
318
+ # ... other options
319
+ }
320
+ )
321
+ ```
322
+
323
+ ## Development
324
+
325
+ ```bash
326
+ # Install dependencies
327
+ uv pip install -e .
328
+
329
+ # Build
330
+ python -m build
331
+
332
+ # Run tests
333
+ pytest
334
+
335
+ # Lint
336
+ ruff check .
337
+
338
+ # Format
339
+ ruff format .
340
+ ```
341
+
342
+ ## Documentation
343
+
344
+ Full API documentation is available at [docs.finatic.com/server/python](https://docs.finatic.com/server/python).
345
+
346
+ ## License
347
+
348
+ MIT
349
+
350
+ ## Copyright
351
+
352
+ © Copyright 2025 Finatic. All Rights Reserved.
353
+
354
+ ---
355
+
356
+ **Finatic** - Fast. Secure. Standardized.
@@ -0,0 +1,184 @@
1
+ finatic_server_python/__init__.py,sha256=6vqY9TFywUSqPC0jyD8L-OAO9giYQkQUBlHu6cSxAgc,940
2
+ src/.openapi-generator-ignore,sha256=pu2PTide7pJtJ-DFLzDy0cTYQJRlrB-8RRH3zGLeUds,1040
3
+ src/__init__.py,sha256=mTJnLTD2H_zR97zXhXBduaFxNM9fLDG7XTVAHMMXvcE,421
4
+ src/custom/FinaticServer.py,sha256=LzpLDKNyb1s-rsnIy5Vt82qAr2_H3z19VhHsFhNsdkg,1241
5
+ src/custom/__init__.py,sha256=zdktVMzdVnAITwF7oaXnT2erkZ6a1_SntZpHx1S0kVM,346
6
+ src/custom/wrappers/brokers.py,sha256=2xiFeyzq8EMUjn8zwzWQAeb4Z4uaGUG_-Vw8TFz7Upc,701
7
+ src/custom/wrappers/company.py,sha256=1PJRPBlI4jEDYObdGDCTpx3UA8PGUeE_inj7fcKtguw,499
8
+ src/custom/wrappers/session.py,sha256=A0nxuheGAKRmKAo_hHApS3iImkV0dpu4JEKGh8zKUb8,742
9
+ src/generated/FinaticServer.py,sha256=z9v3o9FVnqFEn4GkU3hiwD19XWT84wzkJ5Hu-ZmjFw8,123228
10
+ src/generated/__init__.py,sha256=LiLGpcbBBGSqPcGRDXQkfDARWgfG8-V1ZUZmRv-nSck,17973
11
+ src/generated/api_client.py,sha256=LQbKDRhSlPR7Nvyi4D2u-F4A83prvqEbINTXkAkJURE,27747
12
+ src/generated/api_response.py,sha256=eMxw1mpmJcoGZ3gs9z6jM4oYoZ10Gjk333s9sKxGv7s,652
13
+ src/generated/config.py,sha256=nmod62NjWFM7PrWN_bkYDaQkK8fVlya4M8Vgn6XHzPQ,8527
14
+ src/generated/configuration.py,sha256=hr4tY22xaP-YCiGNR-b-hvBIEKotmtC29q6GCDovo-8,18074
15
+ src/generated/exceptions.py,sha256=KAFgnh1q_tawO_i2XDjP0y7SkMSH1qKYm1tNt3wUW34,6467
16
+ src/generated/rest.py,sha256=nScn5BZMu9vUIZSHo8iRraBjEOK6W1ruCJqDh6V9xfM,7400
17
+ src/generated/types.py,sha256=AmvnZJ1T4D4xLN6zt_9ogcPhE7KqkxF5fxANjb6IQGY,662
18
+ src/generated/api/__init__.py,sha256=OQ7i5hzANRJS0Qh-zpEeHgHtXXDIuiXZjXdzoXojX6Q,156
19
+ src/generated/api/brokers_api.py,sha256=9EPISWAhtj2Zu59AFXQlDgCaOX_XVCiPp9TMBLLX8Es,207325
20
+ src/generated/api/company_api.py,sha256=8_KCSE_-TfJSLbFVPKZO3PgddY9GUgoYUwdw0rVyqWE,11480
21
+ src/generated/api/session_api.py,sha256=l0hHdsmbVq-Oy23WswsNQQGVGkyYsYMMiV9Ibj2iXFM,52407
22
+ src/generated/models/__init__.py,sha256=ithIY800l6YLWCPdSRhrY5bomrHNz-6hGhhG8A6Ay6w,8486
23
+ src/generated/models/accounts.py,sha256=WRczsQfG-NmJ90vHUTGz90ZCe5WfOXPBIu4jrVJMR0k,12286
24
+ src/generated/models/accountstatus.py,sha256=vKlPl4DpKYyBP0iG14giI0NjlFOyExY3J17fFyIvFB8,4938
25
+ src/generated/models/accounttype.py,sha256=cqNr1iM7UoK5ZjDk9OM06ZQkz2N7W0D8mYfhHHwpzpY,4889
26
+ src/generated/models/assettype.py,sha256=wSYUbPl0TXQEnX9ehofjN3sj9-LCN9BrIfTQnyHt1_c,4719
27
+ src/generated/models/availablebalance.py,sha256=PrF0gyIzUtnFKtd64GOfGYxNOi3bKdWcpGrR7nVYbsc,4937
28
+ src/generated/models/availabletowithdraw.py,sha256=LJ9nG4jj1q118MiOb-NQYPXmb3Ycs2X4OfbDSkWiilA,4952
29
+ src/generated/models/averagebuyprice.py,sha256=FaFeqHtxXdJqYui6SSQD4LT2HU7-DF4yJg0sSZiliRU,4928
30
+ src/generated/models/averagefillprice.py,sha256=6WEK4xs--0-MHIIJ7GvQmDM8vuF9iycgWtNZrQWPkME,4941
31
+ src/generated/models/averagesellprice.py,sha256=xCj3JKyzPS1eZU5q5wfuFxpXggjd0sK1BwC0k3gS3jA,4934
32
+ src/generated/models/balancetype.py,sha256=NpMLcHTUYRegoQP7baMfBcT89O4I2-2HllFKZQpZxJg,4802
33
+ src/generated/models/broker_data_account_type_enum.py,sha256=8KSPHa6NXJeW8-pVPWJuRPoYs0s8nhMmru2WyVE-Zts,735
34
+ src/generated/models/broker_data_asset_type_enum.py,sha256=yJwgynojSowS35hMVzMaeRer5hDxoofeiDvqT5tiFfQ,825
35
+ src/generated/models/broker_data_order_side_enum.py,sha256=GvKuxANQ-Xe_4JRyy6Qw0UVGy-EO-WJTnie59tddwck,701
36
+ src/generated/models/broker_data_position_status_enum.py,sha256=p-ZAT-eGIr6FEFNlApB245aK9FOrDQ5f9mw_JuGP-G8,752
37
+ src/generated/models/broker_info.py,sha256=ZY_w535lAfM84hTrZsfQhVY1s3frKcR6zdKA6GA3UnA,8617
38
+ src/generated/models/buyingpower.py,sha256=r1xmqDRJGX0rMGtSck1UMGuQiPe_xLEj6XApkwqW2XM,4910
39
+ src/generated/models/cashbalance.py,sha256=vgKLoJfet4OEpI-xNwwtWtrtl4oTdlK5L9FyodXAMsU,4903
40
+ src/generated/models/closedquantity.py,sha256=3WlikPuJYxnjTTaWl_FNRs79aA6ZierZNnAh8P5XzEc,4819
41
+ src/generated/models/closepriceavg.py,sha256=iNwcPtg-vCcp_ZDbSrYWJssF1sKsImQzv4TIs7tcgmY,4920
42
+ src/generated/models/commission.py,sha256=zUdtIFXqdefvIQBsAI0EKsQ1AF6ZjKHyddWUDYn6HpU,4930
43
+ src/generated/models/commissionshare.py,sha256=ESyghsPK2q1BI0jast2KNplRyal_ozx7svXW6yKxeFU,4941
44
+ src/generated/models/costbasis.py,sha256=QLz5e4o4Z3ABMLj9Oba8v92_bMcN8cxE2soT_TwVHHk,4897
45
+ src/generated/models/costbasis1.py,sha256=uVMfu8DjP0fTD-S83gRHS6sd9OTIatZebUDNW0efFdg,4798
46
+ src/generated/models/costbasiswithcommission.py,sha256=t-njCJ-VDjwPGB600C_TJRkU4lbqtZcrzoR_kvnvkdg,4978
47
+ src/generated/models/costbasiswithcommission1.py,sha256=Sq_sZD1Beb0GAdezpa7Vlra3Bru8zPY6bA1gfoefZLU,4881
48
+ src/generated/models/currentbalance.py,sha256=bOPDPm5CaJc5G8cfwTtlH3nrqEfpDk8aYjXBRzC0_WA,4929
49
+ src/generated/models/currentprice.py,sha256=7s2UPpGbOgaP56IEQu52IqBEVVxRHpRRT0cTRTMTa7I,4916
50
+ src/generated/models/disconnect_company_from_broker_connection_result.py,sha256=KhnzX6Vdt-EbWIPnOgwf6z5RPAb0KoJVUTj1lizHm6g,5142
51
+ src/generated/models/eventtype.py,sha256=AkxgyXOxpBwyu-3Dc-ZQerGwlpzJ7sit4-lyNIN2rPE,4795
52
+ src/generated/models/fdx_account_status.py,sha256=6ElOulHYytJBwSCpIhFUhHaJ2i-Hl_24FB8Mj1yVfHw,780
53
+ src/generated/models/fdx_account_type.py,sha256=v0xXfSzruRboEEb2fihg8yg3CQZ-dhSlHc9jYT7eASU,925
54
+ src/generated/models/fdx_asset_type.py,sha256=gntKHooRgh5hsMaj4JW3Jfcb-hu7cTV29U18v2Po7_c,789
55
+ src/generated/models/fdx_balance_type.py,sha256=k1LmEd-ALnRuTAJMxYVTxa7q9HwzPGho4vXNbL56s7s,1007
56
+ src/generated/models/fdx_broker_account.py,sha256=Dj9CII5EbK4uMgiGQAY85kvM0e-5Eu18nZ2LjAhaZJk,12116
57
+ src/generated/models/fdx_broker_balance.py,sha256=EjGupeG3l5NJM_kNZ1589qyMNxsrVDGr9ogwe_WEbp0,14720
58
+ src/generated/models/fdx_broker_order.py,sha256=J0nllq9Oj58lhuJjuknikUBqbHjjh2g66KZOkn2XX0s,10529
59
+ src/generated/models/fdx_broker_order_event.py,sha256=3CpXKYHbfOtqNwxkhTa8SMG9Ae6tPmcmUi8vKRz6Ff0,9269
60
+ src/generated/models/fdx_broker_order_fill.py,sha256=j37YAo0M73FnpqwuXWpvIUdiCyH3312634qT2Fj3MGE,7788
61
+ src/generated/models/fdx_broker_order_group.py,sha256=jxYhoOMTV2VaL5XaLRhGDBprz9ifJXrAE1Dqp4C_o9w,6581
62
+ src/generated/models/fdx_broker_position.py,sha256=TO8CzBddaqt57ul_hYqJszI9An_CBrP6uNkksIUVFHk,18905
63
+ src/generated/models/fdx_broker_position_lot.py,sha256=W8r_Y5EvM8FSy9SjEa6fkAW20CsEmyLziyhni4CBDes,12062
64
+ src/generated/models/fdx_broker_position_lot_fill.py,sha256=Sfbbx8BcXQFkvS8AvqrhkESf9nwKM6AFSReRzPeyFX4,5700
65
+ src/generated/models/fdx_order_class.py,sha256=Zii0CAArj6yozA1C4CYXAFNSi6oJsA9NuaRlDlG8SaA,806
66
+ src/generated/models/fdx_order_event_type.py,sha256=BbilZYx4a-FDjC8mx0eFgRi13AJu_-e5ErydAnEZ6yo,1249
67
+ src/generated/models/fdx_order_group_order.py,sha256=114QcFQ3KRAdhdUQK17QvuupdZnS5SDFZkg9E0-_Abc,4842
68
+ src/generated/models/fdx_order_group_type.py,sha256=n-b7byIdhwtGID6zIudpvZ_gSOq3yIYv4_DpKvV6j_E,769
69
+ src/generated/models/fdx_order_leg.py,sha256=-SeMoosVacrq4T-oezW049VVi2EmveU1PrtxSGmwySg,12839
70
+ src/generated/models/fdx_order_side.py,sha256=VQSwFw9nTKSrRJQPk3iD8F_0pFWG9Zv-o52X5QTQMWc,678
71
+ src/generated/models/fdx_order_status.py,sha256=H-P40sHSG8xY40YQLLkgc4dMJFGIfDD_QcW1cbKERXQ,924
72
+ src/generated/models/fdx_order_type.py,sha256=vkejg-RZ8hXxEtyJw6b3XZrOfncyjpYOEJ2hTgp0Va8,771
73
+ src/generated/models/fdx_position_side.py,sha256=vSeb-_0pswClv62HpAY9IDJm00P2cbd1QYyV_lHFTzo,691
74
+ src/generated/models/fdx_position_status.py,sha256=lY_t9cjCDYfEiuLhLRyDBDmRBASIIi-FQ9P-tpaPjA8,699
75
+ src/generated/models/fdx_security_id_type.py,sha256=LWp0WE0GdZeQb2if4onMYeeFA4oXmvQ4AT8cCVxvIGM,758
76
+ src/generated/models/fdx_time_in_force.py,sha256=wOzSiAnEMJQQLXUs0eEkGsFFzeVd1o4WmI7aAFRLnGY,731
77
+ src/generated/models/filledquantity.py,sha256=UAPA4BVelLdjQGgjWsLGNAP_SmsDkZ891y-vCxN-plw,4921
78
+ src/generated/models/fillprice.py,sha256=4oQLnlwtYj2zajObaCdc8kqm1ep30KTv_1bHt0yzB3U,4789
79
+ src/generated/models/fillquantity.py,sha256=8ZBQ6YXXo6HbzP7rQveyaj-rULOnLDJGP4tefmLnpPw,4807
80
+ src/generated/models/finatic_api_error_response.py,sha256=NpH2Ha_gBGN53z-cAz07osiDnTgtKMS46Wqx1TFF_cs,3789
81
+ src/generated/models/finatic_response_accounts.py,sha256=wvgmxAKadBrsXBkuYECRcCw9Vr_3PKaYRlmfpsQnRQ0,4311
82
+ src/generated/models/finatic_response_disconnect_company_from_broker_connection_result.py,sha256=d-C5Hlx9v5u3Fg8nv1RLkFtgZBb5J6ExRrrsNH_rP0E,4596
83
+ src/generated/models/finatic_response_list_broker_info.py,sha256=G09xs1QI5nozi0BXBJiQ1JLIq8o0jD7yXDU2okKaomg,4361
84
+ src/generated/models/finatic_response_list_fdx_broker_account.py,sha256=-YjsnepsWmTlo7qrRV8UmeYsFFRHeheNYTcK0TeBQk0,4410
85
+ src/generated/models/finatic_response_list_fdx_broker_balance.py,sha256=s4AEjdGtdGLERTXLy_oSiMS9qoi9xzZ-XocTrVH4ja8,4410
86
+ src/generated/models/finatic_response_list_fdx_broker_order.py,sha256=6-LspnGl4N7VWZjfvR-OitPJaITKiYcE1bhHQKsVdsE,4394
87
+ src/generated/models/finatic_response_list_fdx_broker_order_event.py,sha256=prEDPDnDjDPrN_wOZckHb7Ypcc24Suvd4wo8KZvpBp0,4435
88
+ src/generated/models/finatic_response_list_fdx_broker_order_fill.py,sha256=_GOkTDThIzHedVJg9K7jR-fsH7g1v0Gxh9ihZOHy-UA,4427
89
+ src/generated/models/finatic_response_list_fdx_broker_order_group.py,sha256=rZ649te-1EgANkBnDJbwy_icXRdUVGukaFsR04OlMgk,4435
90
+ src/generated/models/finatic_response_list_fdx_broker_position.py,sha256=xhzedqYCT5tFiQEwL7twC0rwMIhuDBMzuk1r8Y_m73Q,4418
91
+ src/generated/models/finatic_response_list_fdx_broker_position_lot.py,sha256=YuwZWzEGIQZZb119Bo3AfwL8zfCL0N3etOGSyoTjCBU,4443
92
+ src/generated/models/finatic_response_list_fdx_broker_position_lot_fill.py,sha256=PnWSkSf33P9jGxCDAKaE7zXCFhZXvLqAJIYwtqPJpC0,4476
93
+ src/generated/models/finatic_response_list_user_broker_connection_with_permissions.py,sha256=PcMEfI_TFUJFBRIPLbvlrMNLejECJybPMwwgLAVDrsE,4564
94
+ src/generated/models/finatic_response_portal_url_response.py,sha256=u1qIC1wPIgj9ky4uG6-2Fw26jtavau_DZ61Vg4yhqOA,4385
95
+ src/generated/models/finatic_response_session_response_data.py,sha256=w8rFDxDZzJQNiHRpOsGzO7KPAyDGrsoyrpf1E_m9paI,4401
96
+ src/generated/models/finatic_response_session_user_response.py,sha256=Fl2ddMHdFs9U6zoSIVuDWSAKkDqIBgpyZF2H-M8ycfE,4401
97
+ src/generated/models/finatic_response_token_response_data.py,sha256=dPVDnvpZFNS4dnIfndOB2E8qnzKz-4znILzYgLOAsso,4385
98
+ src/generated/models/futureunderlyingassettype.py,sha256=AeY6q45CUMdRxngb5F0Xfp3gwJHO1Pq71B_Rue2J5pY,4919
99
+ src/generated/models/grouptype.py,sha256=wIOnqwcPej0cxIv6unOOvMRyJmzTZ--7GK9sSXXmcBk,4937
100
+ src/generated/models/http_validation_error.py,sha256=gXTpLSUy2TVIU0ucqNkCQnzFeu_sJ-MudIXcTk5Ev18,3507
101
+ src/generated/models/initialmargin.py,sha256=QRSssTieRZ12KMCu7OtoIFA1z1trsimOYDzavsivSh4,4927
102
+ src/generated/models/limitprice.py,sha256=Zxz66r_ttObIEKNMneCeAD_aaciRVWqN2wB7QWS_SLo,4897
103
+ src/generated/models/maintenancemargin.py,sha256=12j4mXUlWv31zTH8NIfJNRb9emY2RCc55qwZnrBQaeQ,4951
104
+ src/generated/models/marketvalue.py,sha256=AZl7K3jDP683MHQHOTIl7dNKdPTB8bZFNn6BqeSpYmE,4911
105
+ src/generated/models/netliquidationvalue.py,sha256=w_SAjrzVSulJheCAv9XrBpjO7kCiUS9ScuIQHle-h7c,4952
106
+ src/generated/models/openprice.py,sha256=QGUMs7fbiGgcPi8GG55YBk-Q9oGvLOontlmlFC2AiVk,4793
107
+ src/generated/models/openquantity.py,sha256=FYl5gfwUGHXWFpuTWl3GeIVsg9g1svoIxV2F1CvUrcA,4815
108
+ src/generated/models/orderclass.py,sha256=Yxf2CJYctouzAbPHpHAUZDgsRt4E64R7C7Jt2oXRKyY,4876
109
+ src/generated/models/orderstatus.py,sha256=OGfb68Ou40s1_PN0kSDbBmJNOt2r_p6FYxwEMiGQC4Q,4880
110
+ src/generated/models/ordertype.py,sha256=PoQqDT5n7KTQ80xplkrlyLdZOb4hpwnHUEYqAv7SQWs,4849
111
+ src/generated/models/pendingbalance.py,sha256=cTpfDTE2apbxxxJR-6x_FN7ZbHrxcVrFa0B-S54h9xc,4926
112
+ src/generated/models/portal_url_response.py,sha256=-31Jh5rxP-KSHdZ74nQ1JXqvu65SXuU8EpqgSuSjkIM,3097
113
+ src/generated/models/previousstatus.py,sha256=QJFu2VDm9HA4pAHW15Q1miIEytxfd0AjOP0R2Imru3g,4899
114
+ src/generated/models/price.py,sha256=Mqxe_HcbLTywIt2pIZP-3_FbBUnbbmhs7Ea8Al0hqmA,4774
115
+ src/generated/models/quantity.py,sha256=ppAzDUJUYRBZX25KFbdLstGoxm4GfRSi0aDllqqTeq0,4792
116
+ src/generated/models/quantity1.py,sha256=Lznv9WOgUtGhTtK0fj9vw7mjFQtTWevEXpmyKJJLmGs,4832
117
+ src/generated/models/quantity2.py,sha256=geoaNm_fVdkQDGLIfQ5CXmqygGGJO_rHsuGemzrTbCs,4794
118
+ src/generated/models/realizedprofitloss.py,sha256=r-md0E-5aoapIL3QAg7BpDpUCma_39qqB0kcX1wZrqY,4946
119
+ src/generated/models/realizedprofitloss1.py,sha256=yUZdnPP_KOkiMWZqAwHruJuLFjwwrjtOBv8k5G6t3Xc,4849
120
+ src/generated/models/realizedprofitlosspercent.py,sha256=zIMw46i2SNx5oCbuiGoKe5fp-2wqa8XJQBWMGLvWU9I,4984
121
+ src/generated/models/realizedprofitlosswithcommission.py,sha256=AGuqeGwVspQNKV7ByVIbpM0gIs-89JwWlERq7l0Qf5k,5025
122
+ src/generated/models/realizedprofitlosswithcommission1.py,sha256=tfs9IJUrQLFZpzxqLF8uQg9zsObFAo33ELFP6A31OXo,4928
123
+ src/generated/models/remainingquantity.py,sha256=T0-HBvlm_ULJz6ekbLreJ6PK0DbXFGhowad99qXgVzg,4944
124
+ src/generated/models/remainingquantity1.py,sha256=CQRl6gGb4eAE8BUxbQLOuwQj6AAkdry2iGX0V85LYyE,4847
125
+ src/generated/models/securityidtype.py,sha256=Yz9wxiVzZc2EuynHd6_YPUQ08u1WE8bFkC4p6ePU3ng,4854
126
+ src/generated/models/session_response_data.py,sha256=1ds2K5xszSDSQv7gukugAN0pkosw17kyM2kK9ecquWo,3859
127
+ src/generated/models/session_start_request.py,sha256=0H2UOCTUUthLjzW3KhN9kQat-frziRynCVBdtisKtTs,3279
128
+ src/generated/models/session_status.py,sha256=9dvNB5lrkzXVvgP8R7gxqTzBo9W3QRdWr4TffFRUJE8,780
129
+ src/generated/models/session_user_response.py,sha256=oANw_Mf_yP5UWGT311pBRmEmldy0gS0V8eBTM8csxpw,3091
130
+ src/generated/models/side.py,sha256=yrg2jGlI9BGa0P3jKr8S-airPFS0AoAML7SXg2Bp0Aw,4706
131
+ src/generated/models/side1.py,sha256=Lgm7eYIDyfUtRYMoinZ_NQdx2R9zhez5xgqHELBzE2s,4863
132
+ src/generated/models/side2.py,sha256=myEbmTDTJwJOs3dJ-bmIeTckSpr0uWYb_Nz8YD5d-E8,4715
133
+ src/generated/models/side3.py,sha256=86Cgi_aoQbkv7Bs7RuiPrNuNeqLDkaEzAacQgnpQH_s,4858
134
+ src/generated/models/status.py,sha256=3e8NIjMdonGyR1zhDqNW59Hj8ITTbJmDOKy0-5s0JqQ,4736
135
+ src/generated/models/status1.py,sha256=WGwUH8Ib5RtPR2kBslo-yaIn2JKEzAXSJIMqmnHAZ-8,4906
136
+ src/generated/models/stopprice.py,sha256=MoSR_IkyRG2ozxzVbrf-fJPD9G1fB5w8DvKVmt0Y-rg,4891
137
+ src/generated/models/strikeprice.py,sha256=ZUt5BrJ8VEI2Ecy3XsCfWYzg2QJy4Xi0ZPMGzma9Sgg,4903
138
+ src/generated/models/success_payload_accounts.py,sha256=5uLsJSsVQBIKVIZo2POFwn6vViaBTWCcgXVf-wzAYes,3892
139
+ src/generated/models/success_payload_disconnect_company_from_broker_connection_result.py,sha256=udQ0WRA4QRAAqQ_AyOUrFg0vstxMVMmyOEDMAwCRRjg,4177
140
+ src/generated/models/success_payload_list_broker_info.py,sha256=cqNP8r4HQXoH4ailLQZCNOBHsm18ID5MgC6jl5kwD9k,4107
141
+ src/generated/models/success_payload_list_fdx_broker_account.py,sha256=YwXtc1P3Cb-qIhEhfFaZxNVXtrRQLf7_4Zhikw-roV4,4156
142
+ src/generated/models/success_payload_list_fdx_broker_balance.py,sha256=67oNGFKQqOnST2TlfuQNWzF3Ah3uBxqk0KZfuCgnYXo,4156
143
+ src/generated/models/success_payload_list_fdx_broker_order.py,sha256=Y8WI_hLxQiupB5uOoCNOPFHZLhDqdczEM6STYqQ4VJM,4140
144
+ src/generated/models/success_payload_list_fdx_broker_order_event.py,sha256=p5guZPUuIYjSqTo3Hex9zctEno1cTXh4-dckr7SEA9k,4181
145
+ src/generated/models/success_payload_list_fdx_broker_order_fill.py,sha256=lHrvM1xwBZGAgL0kvhI1BDRzsZfNFB98SKO0Z7MxmOI,4173
146
+ src/generated/models/success_payload_list_fdx_broker_order_group.py,sha256=Pn8wwiJPbeFZPzaOZ09tVIJECz9Vf4jWeeEXFp9VRio,4181
147
+ src/generated/models/success_payload_list_fdx_broker_position.py,sha256=fuvYmccn2MkCF9PSFpnQlmhCSJjT2Tr_qdQkEfgSBIA,4164
148
+ src/generated/models/success_payload_list_fdx_broker_position_lot.py,sha256=QcwSah05fPROLPGrcPqbaB895cYfG-9OY6PNSajTW6M,4189
149
+ src/generated/models/success_payload_list_fdx_broker_position_lot_fill.py,sha256=xRanttKbqWlxbMZPB043l73yp6ADMrxOxHNWTSazUGQ,4222
150
+ src/generated/models/success_payload_list_user_broker_connection_with_permissions.py,sha256=1ijT1nzRNS3sMx6CUFXsz56zE4cq73IfaEKfvN2R0Dw,4310
151
+ src/generated/models/success_payload_portal_url_response.py,sha256=_LD7XBLFGDsT6253OR39ww688rVxZOcR6pNdrch0Dzk,3966
152
+ src/generated/models/success_payload_session_response_data.py,sha256=hCUpbG3q6ZUNcU0-3fRIJNxPOk3G2Y-oaDm1J3jnf7c,3982
153
+ src/generated/models/success_payload_session_user_response.py,sha256=v2Wjkqdfr9VnX7Rd4L_eVhH_TLGHNlDJP_O3uIhbrnE,3982
154
+ src/generated/models/success_payload_token_response_data.py,sha256=0U092YSRy6dJmYugkrlbheihHxk5WyA-kcMPvMFJVMo,3966
155
+ src/generated/models/timeinforce.py,sha256=AVBGvDv_gAbHn1PuDyXk8fW5UT-g4sAFkvdGYPd8UkE,4891
156
+ src/generated/models/token_response_data.py,sha256=Uw-JyYFH1-ZswQJx6sWSSCBbV5OeY8H55c4-mv3ZgoY,3278
157
+ src/generated/models/totalcashvalue.py,sha256=8Uk9c69AhPwIvfpljuyu0wN4x2MTIxFs87uwUX1_ONw,4922
158
+ src/generated/models/totalrealizedpnl.py,sha256=JALWAonYmPqLztOEfZX5LNsritguhylaJVDu8KJcRpI,4964
159
+ src/generated/models/units.py,sha256=OKnVZ3AfwQQUPe1HqNir8HjF1RM6vAHJ6T4futNJQ18,4890
160
+ src/generated/models/unrealizedprofitloss.py,sha256=Z9ERXFBo55Xx_r5bZNalTPy_bi8w7BVhra4kLZzKTUE,4958
161
+ src/generated/models/unrealizedprofitlosspercent.py,sha256=b3fnGrCu9I7ZXKBIc154_c42Y6i-S_ahrsL4_MVCBMo,4996
162
+ src/generated/models/user_broker_connection_with_permissions.py,sha256=pJFk6_wLz0324YXdlczdZVw62e9gRvF_6adT_jW5rYQ,9872
163
+ src/generated/models/validation_error.py,sha256=xRwAbOaDu6RlPc2r21icYpvlZoZ1m1Bdk55GdaB2zw4,3599
164
+ src/generated/models/validation_error_loc_inner.py,sha256=DDYQAlYzyN2AQogF9JI-9ylQ1xD5tewaP1RXMjrbgNU,4814
165
+ src/generated/utils/__init__.py,sha256=bV1jrD9d4qP9SERt7ftKWAgCz5l27PsJeyXss9KHJlM,1346
166
+ src/generated/utils/cache.py,sha256=Kdu3JOb0W6Qfl59rRUkOMPyYqi-DQu_QsozB5t7a50Y,1889
167
+ src/generated/utils/enum_coercion.py,sha256=jqY3zgA3irCjtlrERrRr9bXDqLvNBWlP26UtJBHkIgo,1965
168
+ src/generated/utils/error_handling.py,sha256=D5_6DqzPZ01xaeLdmLCTXHiKb5cXysBGI95rjtPKP2M,4168
169
+ src/generated/utils/interceptors.py,sha256=ZPO_Ib6JL9SGmxkfAn2GgVw-Me2cjEjfLw_DCjuGOkI,2709
170
+ src/generated/utils/logger.py,sha256=DWPzqeNwqdzAtJeq1jqduTiOXD4EPMlsrRWXgyRRuSM,2188
171
+ src/generated/utils/pagination.py,sha256=Cp0SOrpARoI4Qh3kAd_X-rDTPBYSocX3bYEf2TXj99w,10384
172
+ src/generated/utils/plain_object.py,sha256=eKfWNsrN6aybVlYpjF-GtaX5YJG01ZakkevqnP4NCI0,2935
173
+ src/generated/utils/request_id.py,sha256=O_d8WEQnaLJgaHbGR5HZhhdgQ0djMNpTIi7mBONfhpc,201
174
+ src/generated/utils/retry.py,sha256=eWAXk0Y2iZRuTyduzr2_no41LMJLMh0XGw10yZuMZKs,3785
175
+ src/generated/utils/url_utils.py,sha256=Twv4F604Fqvyvttqa9cnuSUwkHPNAFOijQdPFhbVCBw,2538
176
+ src/generated/utils/validation.py,sha256=EOyaIDyhI_CgQZe7-_h9SrBI8KPNyV1PTiy4JjZKnWU,1303
177
+ src/generated/wrappers/__init__.py,sha256=qKfVNJFWu3TWcsSHsBd4wT9_ayvjzh6sxshkvMtluF4,289
178
+ src/generated/wrappers/brokers.py,sha256=9SgNmQVMXJwd0MEMhojyowfyJ5wqd52B6lbn_v7Raow,176942
179
+ src/generated/wrappers/company.py,sha256=UTb97WqhRBCfbm_v0Yrq8QMEuwT5Ut1hRXSeHnzZFII,14314
180
+ src/generated/wrappers/session.py,sha256=oxs9I5LK3AojvFzbcbNvhmGGDS1QAWdeW38rhlTTPqY,52212
181
+ finatic_server_python-0.9.5.dist-info/METADATA,sha256=8HMSe8J15BbuKZOYum9TnAB-X5iFPyqu0zkk54FAjvc,10010
182
+ finatic_server_python-0.9.5.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
183
+ finatic_server_python-0.9.5.dist-info/licenses/LICENSE,sha256=hE35tOCe7uZCeYglYc-sjRSjad4jPyB3i53-QW1YfLk,3590
184
+ finatic_server_python-0.9.5.dist-info/RECORD,,
@@ -1,5 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (80.9.0)
2
+ Generator: hatchling 1.28.0
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
-
@@ -0,0 +1,39 @@
1
+ PROPRIETARY LICENSE
2
+
3
+ Copyright (c) 2025 Finatic. All Rights Reserved.
4
+
5
+ NOTICE: This software development kit (the "SDK") and associated documentation files (the "Software") are the proprietary and confidential property of Finatic. All rights, title, and interest in and to the Software are and shall remain the exclusive property of Finatic.
6
+
7
+ GRANT OF LICENSE:
8
+
9
+ Subject to the terms and conditions of this License, Finatic hereby grants you a limited, non-exclusive, non-transferable, revocable license to:
10
+
11
+ 1. Use the SDK solely to develop, test, and operate applications that integrate with Finatic's services;
12
+ 2. Modify the SDK solely for your internal use in connection with such applications;
13
+ 3. Distribute the SDK only as embedded within your applications, provided that such distribution is necessary for the operation of your applications that use Finatic's services.
14
+
15
+ RESTRICTIONS ON USE:
16
+
17
+ The following restrictions apply to your use of the Software:
18
+
19
+ 1. NO STANDALONE DISTRIBUTION: You may not distribute, publish, share, transfer, give, or provide the SDK as a standalone product, library, or package to any third party, including but not limited to individuals, companies, organizations, or any other entities, without express written authorization from Finatic.
20
+
21
+ 2. NO RESALE OR REPACKAGING: You may not sell, resell, lease, rent, license, sublicense, or otherwise monetize the SDK as a standalone product. You may not repackage, rebrand, or resell the SDK under your own name or brand.
22
+
23
+ 3. NO COMPETING PRODUCTS: You may not use the SDK to create a competing or substitute product, service, or SDK that provides similar functionality to Finatic's services.
24
+
25
+ 4. NO REVERSE ENGINEERING: You may not reverse engineer, decompile, disassemble, or otherwise analyze or examine the Software to extract source code, algorithms, or other proprietary information, except to the extent such activities are expressly permitted by applicable law notwithstanding this limitation.
26
+
27
+ 5. CONFIDENTIALITY: All information contained in the Software is confidential and proprietary. You must maintain strict confidentiality and shall not disclose any information about the Software's internal structure, design, or implementation to any unauthorized party.
28
+
29
+ 6. NO PUBLIC REPOSITORY PUBLICATION: You may not publish, post, upload, or make the SDK available on any public or private platform, repository, website, or any other medium, including but not limited to GitHub, GitLab, Bitbucket, NPM, PyPI, or any package registry, except as embedded within your applications as permitted above.
30
+
31
+ TERMINATION:
32
+
33
+ This license is effective until terminated. Finatic may terminate this license at any time without notice. Upon termination, you must immediately cease all use of the Software and destroy all copies in your possession.
34
+
35
+ VIOLATION OF THESE TERMS:
36
+
37
+ Any unauthorized use, modification, distribution, publication, or disclosure of the Software or any portion thereof may result in severe civil and criminal penalties, and Finatic will enforce its intellectual property rights to the fullest extent of the law.
38
+
39
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL FINATIC OR ITS OFFICERS, DIRECTORS, EMPLOYEES, OR AGENTS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,23 @@
1
+ # OpenAPI Generator Ignore
2
+ # Generated by openapi-generator https://github.com/openapitools/openapi-generator
3
+
4
+ # Use this file to prevent files from being overwritten by the generator.
5
+ # The patterns follow closely to .gitignore or .dockerignore.
6
+
7
+ # As an example, the C# client generator defines ApiClient.cs.
8
+ # You can make changes and tell OpenAPI Generator to ignore just this file by uncommenting the following line:
9
+ #ApiClient.cs
10
+
11
+ # You can match any string of characters against a directory, file or extension with a single asterisk (*):
12
+ #foo/*/qux
13
+ # The above matches foo/bar/qux and foo/baz/qux, but not foo/bar/baz/qux
14
+
15
+ # You can recursively match patterns against a directory, file or extension with a double asterisk (**):
16
+ #foo/**/qux
17
+ # This matches foo/bar/qux, foo/baz/qux, and foo/bar/baz/qux
18
+
19
+ # You can also negate patterns with an exclamation (!).
20
+ # For example, you can ignore all files in a docs folder with the file extension .md:
21
+ #docs/*.md
22
+ # Then explicitly reverse the ignore rule for a single file:
23
+ #!docs/README.md
src/__init__.py ADDED
@@ -0,0 +1,14 @@
1
+ """
2
+ Main SDK entry point.
3
+
4
+ This file is protected - customize exports as needed.
5
+ """
6
+
7
+ # Re-export all other custom code (wrappers, utils, etc.)
8
+ # Re-export main client class explicitly (custom version that extends generated class)
9
+ # MUST come before export * from './custom' to ensure custom version is used
10
+ from .custom import *
11
+ from .custom import FinaticServer
12
+
13
+ # Re-export all generated code
14
+ from .generated import *