finatic-server-python 0.2.1__py3-none-any.whl → 0.9.1__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. custom/FinaticServer.py +31 -0
  2. custom/__init__.py +15 -0
  3. custom/wrappers/brokers.py +21 -0
  4. custom/wrappers/company.py +19 -0
  5. custom/wrappers/session.py +23 -0
  6. finatic_server_python-0.9.1.dist-info/METADATA +356 -0
  7. finatic_server_python-0.9.1.dist-info/RECORD +183 -0
  8. {finatic_server_python-0.2.1.dist-info → finatic_server_python-0.9.1.dist-info}/WHEEL +1 -2
  9. finatic_server_python-0.9.1.dist-info/licenses/LICENSE +39 -0
  10. generated/FinaticServer.py +2855 -0
  11. generated/__init__.py +340 -0
  12. generated/api/__init__.py +7 -0
  13. generated/api/brokers_api.py +4540 -0
  14. generated/api/company_api.py +565 -0
  15. generated/api/session_api.py +1221 -0
  16. generated/api_client.py +807 -0
  17. generated/api_response.py +21 -0
  18. generated/config.py +111 -0
  19. generated/configuration.py +581 -0
  20. generated/exceptions.py +216 -0
  21. generated/models/__init__.py +160 -0
  22. generated/models/account_status.py +37 -0
  23. generated/models/accountstatus0.py +142 -0
  24. generated/models/accounttype.py +142 -0
  25. generated/models/assettype.py +136 -0
  26. generated/models/availablebalance.py +144 -0
  27. generated/models/availabletowithdraw.py +144 -0
  28. generated/models/averagebuyprice.py +144 -0
  29. generated/models/averagefillprice.py +144 -0
  30. generated/models/averagesellprice.py +144 -0
  31. generated/models/balancetype.py +136 -0
  32. generated/models/broker_data_account_type_enum.py +38 -0
  33. generated/models/broker_data_asset_type_enum.py +41 -0
  34. generated/models/broker_data_order_side_enum.py +37 -0
  35. generated/models/broker_data_order_status_enum.py +46 -0
  36. generated/models/broker_data_position_status_enum.py +38 -0
  37. generated/models/broker_info.py +127 -0
  38. generated/models/buyingpower.py +144 -0
  39. generated/models/cashbalance.py +144 -0
  40. generated/models/closedquantity.py +138 -0
  41. generated/models/closepriceavg.py +144 -0
  42. generated/models/commission.py +144 -0
  43. generated/models/commissionshare.py +144 -0
  44. generated/models/company_response.py +140 -0
  45. generated/models/costbasis.py +144 -0
  46. generated/models/costbasis1.py +138 -0
  47. generated/models/costbasiswithcommission.py +144 -0
  48. generated/models/costbasiswithcommission1.py +138 -0
  49. generated/models/currentbalance.py +144 -0
  50. generated/models/currentprice.py +144 -0
  51. generated/models/disconnect_action_result.py +109 -0
  52. generated/models/eventtype.py +136 -0
  53. generated/models/fdx_account_status.py +40 -0
  54. generated/models/fdx_account_type.py +46 -0
  55. generated/models/fdx_asset_type.py +41 -0
  56. generated/models/fdx_balance_type.py +46 -0
  57. generated/models/fdx_broker_account.py +255 -0
  58. generated/models/fdx_broker_balance.py +267 -0
  59. generated/models/fdx_broker_order.py +224 -0
  60. generated/models/fdx_broker_order_event.py +206 -0
  61. generated/models/fdx_broker_order_fill.py +185 -0
  62. generated/models/fdx_broker_order_group.py +161 -0
  63. generated/models/fdx_broker_position.py +333 -0
  64. generated/models/fdx_broker_position_lot.py +216 -0
  65. generated/models/fdx_broker_position_lot_fill.py +139 -0
  66. generated/models/fdx_order_class.py +41 -0
  67. generated/models/fdx_order_event_type.py +53 -0
  68. generated/models/fdx_order_group_order.py +133 -0
  69. generated/models/fdx_order_group_type.py +40 -0
  70. generated/models/fdx_order_leg.py +253 -0
  71. generated/models/fdx_order_side.py +37 -0
  72. generated/models/fdx_order_status.py +45 -0
  73. generated/models/fdx_order_type.py +40 -0
  74. generated/models/fdx_position_side.py +37 -0
  75. generated/models/fdx_position_status.py +37 -0
  76. generated/models/fdx_security_id_type.py +39 -0
  77. generated/models/fdx_time_in_force.py +40 -0
  78. generated/models/filledquantity.py +144 -0
  79. generated/models/fillprice.py +138 -0
  80. generated/models/fillquantity.py +138 -0
  81. generated/models/finatic_error.py +107 -0
  82. generated/models/finatic_response_company_response.py +120 -0
  83. generated/models/finatic_response_disconnect_action_result.py +120 -0
  84. generated/models/finatic_response_list_broker_info.py +120 -0
  85. generated/models/finatic_response_list_fdx_broker_account.py +120 -0
  86. generated/models/finatic_response_list_fdx_broker_balance.py +120 -0
  87. generated/models/finatic_response_list_fdx_broker_order.py +120 -0
  88. generated/models/finatic_response_list_fdx_broker_order_event.py +120 -0
  89. generated/models/finatic_response_list_fdx_broker_order_fill.py +120 -0
  90. generated/models/finatic_response_list_fdx_broker_order_group.py +120 -0
  91. generated/models/finatic_response_list_fdx_broker_position.py +120 -0
  92. generated/models/finatic_response_list_fdx_broker_position_lot.py +120 -0
  93. generated/models/finatic_response_list_fdx_broker_position_lot_fill.py +120 -0
  94. generated/models/finatic_response_list_user_broker_connection_with_permissions.py +120 -0
  95. generated/models/finatic_response_portal_url_response.py +120 -0
  96. generated/models/finatic_response_session_response_data.py +120 -0
  97. generated/models/finatic_response_session_user_response.py +120 -0
  98. generated/models/finatic_response_token_response_data.py +120 -0
  99. generated/models/futureunderlyingassettype.py +142 -0
  100. generated/models/grouptype.py +142 -0
  101. generated/models/http_validation_error.py +108 -0
  102. generated/models/initialmargin.py +144 -0
  103. generated/models/limitprice.py +144 -0
  104. generated/models/maintenancemargin.py +144 -0
  105. generated/models/marketvalue.py +144 -0
  106. generated/models/netliquidationvalue.py +144 -0
  107. generated/models/openprice.py +138 -0
  108. generated/models/openquantity.py +138 -0
  109. generated/models/orderclass.py +142 -0
  110. generated/models/orderstatus.py +142 -0
  111. generated/models/ordertype.py +142 -0
  112. generated/models/pendingbalance.py +144 -0
  113. generated/models/portal_url_response.py +100 -0
  114. generated/models/previousstatus.py +142 -0
  115. generated/models/price.py +138 -0
  116. generated/models/quantity.py +138 -0
  117. generated/models/quantity1.py +138 -0
  118. generated/models/quantity2.py +138 -0
  119. generated/models/realizedprofitloss.py +144 -0
  120. generated/models/realizedprofitloss1.py +138 -0
  121. generated/models/realizedprofitlosspercent.py +144 -0
  122. generated/models/realizedprofitlosswithcommission.py +144 -0
  123. generated/models/realizedprofitlosswithcommission1.py +138 -0
  124. generated/models/remainingquantity.py +144 -0
  125. generated/models/remainingquantity1.py +138 -0
  126. generated/models/securityidtype.py +136 -0
  127. generated/models/session_response_data.py +115 -0
  128. generated/models/session_start_request.py +105 -0
  129. generated/models/session_status.py +40 -0
  130. generated/models/session_user_response.py +112 -0
  131. generated/models/side.py +136 -0
  132. generated/models/side1.py +142 -0
  133. generated/models/side2.py +136 -0
  134. generated/models/side3.py +142 -0
  135. generated/models/status.py +136 -0
  136. generated/models/status1.py +142 -0
  137. generated/models/stopprice.py +144 -0
  138. generated/models/strikeprice.py +144 -0
  139. generated/models/success_payload_company_response.py +118 -0
  140. generated/models/success_payload_disconnect_action_result.py +118 -0
  141. generated/models/success_payload_list_broker_info.py +122 -0
  142. generated/models/success_payload_list_fdx_broker_account.py +122 -0
  143. generated/models/success_payload_list_fdx_broker_balance.py +122 -0
  144. generated/models/success_payload_list_fdx_broker_order.py +122 -0
  145. generated/models/success_payload_list_fdx_broker_order_event.py +122 -0
  146. generated/models/success_payload_list_fdx_broker_order_fill.py +122 -0
  147. generated/models/success_payload_list_fdx_broker_order_group.py +122 -0
  148. generated/models/success_payload_list_fdx_broker_position.py +122 -0
  149. generated/models/success_payload_list_fdx_broker_position_lot.py +122 -0
  150. generated/models/success_payload_list_fdx_broker_position_lot_fill.py +122 -0
  151. generated/models/success_payload_list_user_broker_connection_with_permissions.py +122 -0
  152. generated/models/success_payload_portal_url_response.py +118 -0
  153. generated/models/success_payload_session_response_data.py +118 -0
  154. generated/models/success_payload_session_user_response.py +118 -0
  155. generated/models/success_payload_token_response_data.py +118 -0
  156. generated/models/timeinforce.py +142 -0
  157. generated/models/token_response_data.py +103 -0
  158. generated/models/totalcashvalue.py +144 -0
  159. generated/models/totalrealizedpnl.py +144 -0
  160. generated/models/units.py +144 -0
  161. generated/models/unrealizedprofitloss.py +144 -0
  162. generated/models/unrealizedprofitlosspercent.py +144 -0
  163. generated/models/user_broker_connection_with_permissions.py +138 -0
  164. generated/models/validation_error.py +112 -0
  165. generated/models/validation_error_loc_inner.py +138 -0
  166. generated/rest.py +213 -0
  167. generated/types.py +22 -0
  168. generated/utils/__init__.py +48 -0
  169. generated/utils/cache.py +72 -0
  170. generated/utils/enum_coercion.py +63 -0
  171. generated/utils/error_handling.py +129 -0
  172. generated/utils/interceptors.py +102 -0
  173. generated/utils/logger.py +69 -0
  174. generated/utils/pagination.py +289 -0
  175. generated/utils/plain_object.py +74 -0
  176. generated/utils/request_id.py +12 -0
  177. generated/utils/retry.py +99 -0
  178. generated/utils/url_utils.py +74 -0
  179. generated/utils/validation.py +46 -0
  180. generated/wrappers/__init__.py +15 -0
  181. generated/wrappers/brokers.py +3399 -0
  182. generated/wrappers/company.py +297 -0
  183. generated/wrappers/session.py +1025 -0
  184. finatic_server/__init__.py +0 -143
  185. finatic_server/core/__init__.py +0 -6
  186. finatic_server/core/api_client.py +0 -1884
  187. finatic_server/core/client.py +0 -1044
  188. finatic_server/types/__init__.py +0 -137
  189. finatic_server/types/auth.py +0 -142
  190. finatic_server/types/broker.py +0 -381
  191. finatic_server/types/common.py +0 -177
  192. finatic_server/types/orders.py +0 -93
  193. finatic_server/types/portfolio.py +0 -61
  194. finatic_server/types/webhook.py +0 -21
  195. finatic_server/utils/__init__.py +0 -27
  196. finatic_server/utils/errors.py +0 -94
  197. finatic_server_python-0.2.1.dist-info/METADATA +0 -489
  198. finatic_server_python-0.2.1.dist-info/RECORD +0 -17
  199. finatic_server_python-0.2.1.dist-info/top_level.txt +0 -1
@@ -0,0 +1,31 @@
1
+ """
2
+ Custom FinaticServer extension.
3
+
4
+ This file is protected and will not be overwritten during regeneration.
5
+ Add custom logic to extend or override generated FinaticServer behavior.
6
+ """
7
+
8
+ from src.generated.FinaticServer import FinaticServer as GeneratedFinaticServer
9
+
10
+
11
+ class FinaticServer(GeneratedFinaticServer):
12
+ """Custom FinaticServer class that extends the generated class.
13
+
14
+ Use this to add custom initialization logic or override methods.
15
+
16
+ NOTE: All convenience methods (get_open_positions, get_pending_orders, get_active_accounts, etc.)
17
+ are now generated by the generator with proper enum coercion.
18
+ No custom code needed - this is just a stub for future customizations.
19
+ """
20
+
21
+ # Marker to verify custom class is being used
22
+ __CUSTOM_CLASS__ = True
23
+
24
+ # Generator now handles:
25
+ # - All convenience methods (get_open_positions, get_pending_orders, get_active_accounts, etc.)
26
+ # - Session headers for broker endpoints
27
+ # - Portal URL no-cache handling
28
+ # - Metadata transformation for with_metadata parameter
29
+ # - init_session() method (Phase 2C - now generated)
30
+ # - Enum coercion (case-insensitive, no aliases)
31
+ # No custom code needed - this is just a stub for future customizations
custom/__init__.py ADDED
@@ -0,0 +1,15 @@
1
+ """
2
+ Custom code exports.
3
+
4
+ This file is protected - add your custom exports here.
5
+ """
6
+
7
+ # Core - Export custom FinaticServer that extends generated class
8
+ from .FinaticServer import FinaticServer
9
+ from .wrappers.brokers import CustomBrokersWrapper
10
+
11
+ # Wrappers
12
+ from .wrappers.session import CustomSessionWrapper
13
+
14
+ # Utils
15
+ # from .utils.errors import *
@@ -0,0 +1,21 @@
1
+ """
2
+ Custom brokers wrapper - Extends generated wrapper.
3
+
4
+ This file is protected and will not be overwritten during regeneration.
5
+ Add your custom brokers logic here.
6
+ """
7
+
8
+ from src.generated.wrappers.brokers import BrokersWrapper
9
+
10
+
11
+ class CustomBrokersWrapper(BrokersWrapper):
12
+ """Custom wrapper for brokers operations.
13
+
14
+ Extend or override generated functions as needed.
15
+
16
+ NOTE: Session headers and metadata transformation are now handled in the generator.
17
+ """
18
+
19
+ # Session headers are now automatically added by the generator for all broker endpoints
20
+ # Metadata transformation is now handled by the generator for methods with with_metadata parameter
21
+ # No custom overrides needed
@@ -0,0 +1,19 @@
1
+ """
2
+ Custom company wrapper - Extends generated wrapper.
3
+
4
+ This file is protected and will not be overwritten during regeneration.
5
+ Add your custom company logic here.
6
+ """
7
+
8
+ from ..generated.wrappers.company import CompanyWrapper
9
+
10
+
11
+ class CustomCompanyWrapper(CompanyWrapper):
12
+ """Custom wrapper for company operations.
13
+
14
+ Extend or override generated functions as needed.
15
+ """
16
+
17
+ # TODO: Add your custom implementation
18
+ # You can override generated methods or add new ones
19
+ pass
@@ -0,0 +1,23 @@
1
+ """
2
+ Custom session wrapper - Extends generated wrapper.
3
+
4
+ This file is protected and will not be overwritten during regeneration.
5
+ Add your custom session logic here.
6
+ """
7
+
8
+ from src.generated.wrappers.session import SessionWrapper
9
+
10
+
11
+ class CustomSessionWrapper(SessionWrapper):
12
+ """Custom wrapper for session operations.
13
+
14
+ Extend or override generated functions as needed.
15
+
16
+ NOTE:
17
+ - Portal URL caching is now handled in the generator (no-cache for get_portal_url)
18
+ - Session creation methods (init_session, start_session) no longer have auth checks in generator
19
+ - Response unwrapping is handled by the generator
20
+ """
21
+
22
+ # All session wrapper functionality is now handled by the generator
23
+ # No custom overrides needed
@@ -0,0 +1,356 @@
1
+ Metadata-Version: 2.4
2
+ Name: finatic-server-python
3
+ Version: 0.9.1
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.8.1
25
+ Requires-Dist: aiohttp-retry>=2.8.0
26
+ Requires-Dist: aiohttp>=3.8.0
27
+ Requires-Dist: cachetools>=5.3.0
28
+ Requires-Dist: pydantic>=2.0.0
29
+ Requires-Dist: python-dateutil>=2.8.0
30
+ Requires-Dist: structlog>=23.2.0
31
+ Requires-Dist: tenacity>=8.2.0
32
+ Requires-Dist: typing-extensions>=4.0.0
33
+ Requires-Dist: urllib3>=1.25.0
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,183 @@
1
+ custom/FinaticServer.py,sha256=LzpLDKNyb1s-rsnIy5Vt82qAr2_H3z19VhHsFhNsdkg,1241
2
+ custom/__init__.py,sha256=zdktVMzdVnAITwF7oaXnT2erkZ6a1_SntZpHx1S0kVM,346
3
+ custom/wrappers/brokers.py,sha256=2xiFeyzq8EMUjn8zwzWQAeb4Z4uaGUG_-Vw8TFz7Upc,701
4
+ custom/wrappers/company.py,sha256=1PJRPBlI4jEDYObdGDCTpx3UA8PGUeE_inj7fcKtguw,499
5
+ custom/wrappers/session.py,sha256=A0nxuheGAKRmKAo_hHApS3iImkV0dpu4JEKGh8zKUb8,742
6
+ generated/FinaticServer.py,sha256=1Auj9TyQIGt4Eck4mpo-Rlwtx2y6kV_s1FQQblb6oIk,123207
7
+ generated/__init__.py,sha256=CnZqM1n70v0pD2JRsZ3hOjJhlwmjQRiIF4hJZKLCHzY,17979
8
+ generated/api_client.py,sha256=pzlq8bdPqGpU6cVhOfY4edVyK9sGmB1xb7bzElu2sMc,27748
9
+ generated/api_response.py,sha256=eMxw1mpmJcoGZ3gs9z6jM4oYoZ10Gjk333s9sKxGv7s,652
10
+ generated/config.py,sha256=w1twv6Z9qMZN51X2bi-Tb8nLo6xHaPS9SuC1Hm1wBkE,8527
11
+ generated/configuration.py,sha256=l8q-4jry-u1kxTBKrzWkjdwMu9MWRRKkZyxt0o2ciNM,18090
12
+ generated/exceptions.py,sha256=cKaX05hDYJ3bNnEmxvsVFscLebkSUMX8lru3DBkI6vg,6400
13
+ generated/rest.py,sha256=0q9rU4Oa8DCB9vNo4tVph3E7-OtB4RuwVjWTSBZEI8A,7207
14
+ generated/types.py,sha256=AmvnZJ1T4D4xLN6zt_9ogcPhE7KqkxF5fxANjb6IQGY,662
15
+ generated/api/__init__.py,sha256=OQ7i5hzANRJS0Qh-zpEeHgHtXXDIuiXZjXdzoXojX6Q,156
16
+ generated/api/brokers_api.py,sha256=bDrOaU2wh_Am9cp1cvjDWhod6297AxyBtJwAR4Voa8Y,203505
17
+ generated/api/company_api.py,sha256=atalIyQe2YdIQN_2azG8pdztt57IjSPz5LeXRWqRXF8,21989
18
+ generated/api/session_api.py,sha256=2brB5UEqksnn76u7Hjk6oai8LsRg2U2Aw6KwzRkdM6w,51087
19
+ generated/models/__init__.py,sha256=iCumamEDFeX27-aLESqThwk3O2r1FgKOyty-HxymmAk,8573
20
+ generated/models/account_status.py,sha256=I_BltolCAWxTm8IKUygS_UQzP0LIlujepnRXrYpzIIQ,685
21
+ generated/models/accountstatus0.py,sha256=vKlPl4DpKYyBP0iG14giI0NjlFOyExY3J17fFyIvFB8,4938
22
+ generated/models/accounttype.py,sha256=cqNr1iM7UoK5ZjDk9OM06ZQkz2N7W0D8mYfhHHwpzpY,4889
23
+ generated/models/assettype.py,sha256=wSYUbPl0TXQEnX9ehofjN3sj9-LCN9BrIfTQnyHt1_c,4719
24
+ generated/models/availablebalance.py,sha256=PrF0gyIzUtnFKtd64GOfGYxNOi3bKdWcpGrR7nVYbsc,4937
25
+ generated/models/availabletowithdraw.py,sha256=LJ9nG4jj1q118MiOb-NQYPXmb3Ycs2X4OfbDSkWiilA,4952
26
+ generated/models/averagebuyprice.py,sha256=FaFeqHtxXdJqYui6SSQD4LT2HU7-DF4yJg0sSZiliRU,4928
27
+ generated/models/averagefillprice.py,sha256=6WEK4xs--0-MHIIJ7GvQmDM8vuF9iycgWtNZrQWPkME,4941
28
+ generated/models/averagesellprice.py,sha256=xCj3JKyzPS1eZU5q5wfuFxpXggjd0sK1BwC0k3gS3jA,4934
29
+ generated/models/balancetype.py,sha256=NpMLcHTUYRegoQP7baMfBcT89O4I2-2HllFKZQpZxJg,4802
30
+ generated/models/broker_data_account_type_enum.py,sha256=8KSPHa6NXJeW8-pVPWJuRPoYs0s8nhMmru2WyVE-Zts,735
31
+ generated/models/broker_data_asset_type_enum.py,sha256=yJwgynojSowS35hMVzMaeRer5hDxoofeiDvqT5tiFfQ,825
32
+ generated/models/broker_data_order_side_enum.py,sha256=GvKuxANQ-Xe_4JRyy6Qw0UVGy-EO-WJTnie59tddwck,701
33
+ generated/models/broker_data_order_status_enum.py,sha256=z0wEN10Qi8AfF07jI62O3altLMy_1NKmn99tfkWjKNk,969
34
+ generated/models/broker_data_position_status_enum.py,sha256=p-ZAT-eGIr6FEFNlApB245aK9FOrDQ5f9mw_JuGP-G8,752
35
+ generated/models/broker_info.py,sha256=imxW5kFOhDKPtDXbOTjmcYcrA4Olxnvbyl3GGwqGpAE,4379
36
+ generated/models/buyingpower.py,sha256=r1xmqDRJGX0rMGtSck1UMGuQiPe_xLEj6XApkwqW2XM,4910
37
+ generated/models/cashbalance.py,sha256=vgKLoJfet4OEpI-xNwwtWtrtl4oTdlK5L9FyodXAMsU,4903
38
+ generated/models/closedquantity.py,sha256=3WlikPuJYxnjTTaWl_FNRs79aA6ZierZNnAh8P5XzEc,4819
39
+ generated/models/closepriceavg.py,sha256=iNwcPtg-vCcp_ZDbSrYWJssF1sKsImQzv4TIs7tcgmY,4920
40
+ generated/models/commission.py,sha256=zUdtIFXqdefvIQBsAI0EKsQ1AF6ZjKHyddWUDYn6HpU,4930
41
+ generated/models/commissionshare.py,sha256=ESyghsPK2q1BI0jast2KNplRyal_ozx7svXW6yKxeFU,4941
42
+ generated/models/company_response.py,sha256=pcgEcb-TXG_lN6BQEDB7vQ5c46_RoLNFbEawgRMTgsU,5100
43
+ generated/models/costbasis.py,sha256=QLz5e4o4Z3ABMLj9Oba8v92_bMcN8cxE2soT_TwVHHk,4897
44
+ generated/models/costbasis1.py,sha256=uVMfu8DjP0fTD-S83gRHS6sd9OTIatZebUDNW0efFdg,4798
45
+ generated/models/costbasiswithcommission.py,sha256=t-njCJ-VDjwPGB600C_TJRkU4lbqtZcrzoR_kvnvkdg,4978
46
+ generated/models/costbasiswithcommission1.py,sha256=Sq_sZD1Beb0GAdezpa7Vlra3Bru8zPY6bA1gfoefZLU,4881
47
+ generated/models/currentbalance.py,sha256=bOPDPm5CaJc5G8cfwTtlH3nrqEfpDk8aYjXBRzC0_WA,4929
48
+ generated/models/currentprice.py,sha256=7s2UPpGbOgaP56IEQu52IqBEVVxRHpRRT0cTRTMTa7I,4916
49
+ generated/models/disconnect_action_result.py,sha256=ijbQMKWGAl73K9gYdoeEFkm1_qewC0i828OhNuFWKMY,3552
50
+ generated/models/eventtype.py,sha256=AkxgyXOxpBwyu-3Dc-ZQerGwlpzJ7sit4-lyNIN2rPE,4795
51
+ generated/models/fdx_account_status.py,sha256=6ElOulHYytJBwSCpIhFUhHaJ2i-Hl_24FB8Mj1yVfHw,780
52
+ generated/models/fdx_account_type.py,sha256=v0xXfSzruRboEEb2fihg8yg3CQZ-dhSlHc9jYT7eASU,925
53
+ generated/models/fdx_asset_type.py,sha256=gntKHooRgh5hsMaj4JW3Jfcb-hu7cTV29U18v2Po7_c,789
54
+ generated/models/fdx_balance_type.py,sha256=k1LmEd-ALnRuTAJMxYVTxa7q9HwzPGho4vXNbL56s7s,1007
55
+ generated/models/fdx_broker_account.py,sha256=OB7B95U5JMLMx2ioTcgkiZG9cNS32Du8qlg2wq5bKro,12117
56
+ generated/models/fdx_broker_balance.py,sha256=XIVJAUemDZxETCRvrj8fPBA5aEdzmHjPYhBk1Y2m6qc,13899
57
+ generated/models/fdx_broker_order.py,sha256=4uaz3kyVvnCanPXj-abc46FRR74ima96gA6uea2verc,10094
58
+ generated/models/fdx_broker_order_event.py,sha256=3CpXKYHbfOtqNwxkhTa8SMG9Ae6tPmcmUi8vKRz6Ff0,9269
59
+ generated/models/fdx_broker_order_fill.py,sha256=j37YAo0M73FnpqwuXWpvIUdiCyH3312634qT2Fj3MGE,7788
60
+ generated/models/fdx_broker_order_group.py,sha256=jxYhoOMTV2VaL5XaLRhGDBprz9ifJXrAE1Dqp4C_o9w,6581
61
+ generated/models/fdx_broker_position.py,sha256=rHa5oys_uIUK46M5Jhor17k8RmddIZOHYRbJMaRovXY,18470
62
+ generated/models/fdx_broker_position_lot.py,sha256=nXQl29laoxwjUGcd1ekhpZO9kPnOTBkaDRaxmudlbmQ,11241
63
+ generated/models/fdx_broker_position_lot_fill.py,sha256=Sfbbx8BcXQFkvS8AvqrhkESf9nwKM6AFSReRzPeyFX4,5700
64
+ generated/models/fdx_order_class.py,sha256=Zii0CAArj6yozA1C4CYXAFNSi6oJsA9NuaRlDlG8SaA,806
65
+ generated/models/fdx_order_event_type.py,sha256=BbilZYx4a-FDjC8mx0eFgRi13AJu_-e5ErydAnEZ6yo,1249
66
+ generated/models/fdx_order_group_order.py,sha256=114QcFQ3KRAdhdUQK17QvuupdZnS5SDFZkg9E0-_Abc,4842
67
+ generated/models/fdx_order_group_type.py,sha256=n-b7byIdhwtGID6zIudpvZ_gSOq3yIYv4_DpKvV6j_E,769
68
+ generated/models/fdx_order_leg.py,sha256=-SeMoosVacrq4T-oezW049VVi2EmveU1PrtxSGmwySg,12839
69
+ generated/models/fdx_order_side.py,sha256=VQSwFw9nTKSrRJQPk3iD8F_0pFWG9Zv-o52X5QTQMWc,678
70
+ generated/models/fdx_order_status.py,sha256=H-P40sHSG8xY40YQLLkgc4dMJFGIfDD_QcW1cbKERXQ,924
71
+ generated/models/fdx_order_type.py,sha256=vkejg-RZ8hXxEtyJw6b3XZrOfncyjpYOEJ2hTgp0Va8,771
72
+ generated/models/fdx_position_side.py,sha256=vSeb-_0pswClv62HpAY9IDJm00P2cbd1QYyV_lHFTzo,691
73
+ generated/models/fdx_position_status.py,sha256=lY_t9cjCDYfEiuLhLRyDBDmRBASIIi-FQ9P-tpaPjA8,699
74
+ generated/models/fdx_security_id_type.py,sha256=LWp0WE0GdZeQb2if4onMYeeFA4oXmvQ4AT8cCVxvIGM,758
75
+ generated/models/fdx_time_in_force.py,sha256=wOzSiAnEMJQQLXUs0eEkGsFFzeVd1o4WmI7aAFRLnGY,731
76
+ generated/models/filledquantity.py,sha256=UAPA4BVelLdjQGgjWsLGNAP_SmsDkZ891y-vCxN-plw,4921
77
+ generated/models/fillprice.py,sha256=4oQLnlwtYj2zajObaCdc8kqm1ep30KTv_1bHt0yzB3U,4789
78
+ generated/models/fillquantity.py,sha256=8ZBQ6YXXo6HbzP7rQveyaj-rULOnLDJGP4tefmLnpPw,4807
79
+ generated/models/finatic_error.py,sha256=1N-YoI8cZAHH1wSPutB3Sav73-ic2qoBO-B4EQD_INI,3546
80
+ generated/models/finatic_response_company_response.py,sha256=qUllOdhrxlBF2kwu-0saY8HHHvRqfW-ggxTGfVMk04k,4368
81
+ generated/models/finatic_response_disconnect_action_result.py,sha256=dky_VdTS6tvsg-ZTNs3C8tuujEiZA4evQnSc1yHxRIU,4425
82
+ generated/models/finatic_response_list_broker_info.py,sha256=G09xs1QI5nozi0BXBJiQ1JLIq8o0jD7yXDU2okKaomg,4361
83
+ generated/models/finatic_response_list_fdx_broker_account.py,sha256=-YjsnepsWmTlo7qrRV8UmeYsFFRHeheNYTcK0TeBQk0,4410
84
+ generated/models/finatic_response_list_fdx_broker_balance.py,sha256=s4AEjdGtdGLERTXLy_oSiMS9qoi9xzZ-XocTrVH4ja8,4410
85
+ generated/models/finatic_response_list_fdx_broker_order.py,sha256=6-LspnGl4N7VWZjfvR-OitPJaITKiYcE1bhHQKsVdsE,4394
86
+ generated/models/finatic_response_list_fdx_broker_order_event.py,sha256=prEDPDnDjDPrN_wOZckHb7Ypcc24Suvd4wo8KZvpBp0,4435
87
+ generated/models/finatic_response_list_fdx_broker_order_fill.py,sha256=_GOkTDThIzHedVJg9K7jR-fsH7g1v0Gxh9ihZOHy-UA,4427
88
+ generated/models/finatic_response_list_fdx_broker_order_group.py,sha256=rZ649te-1EgANkBnDJbwy_icXRdUVGukaFsR04OlMgk,4435
89
+ generated/models/finatic_response_list_fdx_broker_position.py,sha256=xhzedqYCT5tFiQEwL7twC0rwMIhuDBMzuk1r8Y_m73Q,4418
90
+ generated/models/finatic_response_list_fdx_broker_position_lot.py,sha256=YuwZWzEGIQZZb119Bo3AfwL8zfCL0N3etOGSyoTjCBU,4443
91
+ generated/models/finatic_response_list_fdx_broker_position_lot_fill.py,sha256=PnWSkSf33P9jGxCDAKaE7zXCFhZXvLqAJIYwtqPJpC0,4476
92
+ generated/models/finatic_response_list_user_broker_connection_with_permissions.py,sha256=PcMEfI_TFUJFBRIPLbvlrMNLejECJybPMwwgLAVDrsE,4564
93
+ generated/models/finatic_response_portal_url_response.py,sha256=u1qIC1wPIgj9ky4uG6-2Fw26jtavau_DZ61Vg4yhqOA,4385
94
+ generated/models/finatic_response_session_response_data.py,sha256=w8rFDxDZzJQNiHRpOsGzO7KPAyDGrsoyrpf1E_m9paI,4401
95
+ generated/models/finatic_response_session_user_response.py,sha256=Fl2ddMHdFs9U6zoSIVuDWSAKkDqIBgpyZF2H-M8ycfE,4401
96
+ generated/models/finatic_response_token_response_data.py,sha256=dPVDnvpZFNS4dnIfndOB2E8qnzKz-4znILzYgLOAsso,4385
97
+ generated/models/futureunderlyingassettype.py,sha256=AeY6q45CUMdRxngb5F0Xfp3gwJHO1Pq71B_Rue2J5pY,4919
98
+ generated/models/grouptype.py,sha256=wIOnqwcPej0cxIv6unOOvMRyJmzTZ--7GK9sSXXmcBk,4937
99
+ generated/models/http_validation_error.py,sha256=gXTpLSUy2TVIU0ucqNkCQnzFeu_sJ-MudIXcTk5Ev18,3507
100
+ generated/models/initialmargin.py,sha256=QRSssTieRZ12KMCu7OtoIFA1z1trsimOYDzavsivSh4,4927
101
+ generated/models/limitprice.py,sha256=Zxz66r_ttObIEKNMneCeAD_aaciRVWqN2wB7QWS_SLo,4897
102
+ generated/models/maintenancemargin.py,sha256=12j4mXUlWv31zTH8NIfJNRb9emY2RCc55qwZnrBQaeQ,4951
103
+ generated/models/marketvalue.py,sha256=AZl7K3jDP683MHQHOTIl7dNKdPTB8bZFNn6BqeSpYmE,4911
104
+ generated/models/netliquidationvalue.py,sha256=w_SAjrzVSulJheCAv9XrBpjO7kCiUS9ScuIQHle-h7c,4952
105
+ generated/models/openprice.py,sha256=QGUMs7fbiGgcPi8GG55YBk-Q9oGvLOontlmlFC2AiVk,4793
106
+ generated/models/openquantity.py,sha256=FYl5gfwUGHXWFpuTWl3GeIVsg9g1svoIxV2F1CvUrcA,4815
107
+ generated/models/orderclass.py,sha256=Yxf2CJYctouzAbPHpHAUZDgsRt4E64R7C7Jt2oXRKyY,4876
108
+ generated/models/orderstatus.py,sha256=OGfb68Ou40s1_PN0kSDbBmJNOt2r_p6FYxwEMiGQC4Q,4880
109
+ generated/models/ordertype.py,sha256=PoQqDT5n7KTQ80xplkrlyLdZOb4hpwnHUEYqAv7SQWs,4849
110
+ generated/models/pendingbalance.py,sha256=cTpfDTE2apbxxxJR-6x_FN7ZbHrxcVrFa0B-S54h9xc,4926
111
+ generated/models/portal_url_response.py,sha256=-31Jh5rxP-KSHdZ74nQ1JXqvu65SXuU8EpqgSuSjkIM,3097
112
+ generated/models/previousstatus.py,sha256=QJFu2VDm9HA4pAHW15Q1miIEytxfd0AjOP0R2Imru3g,4899
113
+ generated/models/price.py,sha256=Mqxe_HcbLTywIt2pIZP-3_FbBUnbbmhs7Ea8Al0hqmA,4774
114
+ generated/models/quantity.py,sha256=ppAzDUJUYRBZX25KFbdLstGoxm4GfRSi0aDllqqTeq0,4792
115
+ generated/models/quantity1.py,sha256=Lznv9WOgUtGhTtK0fj9vw7mjFQtTWevEXpmyKJJLmGs,4832
116
+ generated/models/quantity2.py,sha256=geoaNm_fVdkQDGLIfQ5CXmqygGGJO_rHsuGemzrTbCs,4794
117
+ generated/models/realizedprofitloss.py,sha256=r-md0E-5aoapIL3QAg7BpDpUCma_39qqB0kcX1wZrqY,4946
118
+ generated/models/realizedprofitloss1.py,sha256=yUZdnPP_KOkiMWZqAwHruJuLFjwwrjtOBv8k5G6t3Xc,4849
119
+ generated/models/realizedprofitlosspercent.py,sha256=zIMw46i2SNx5oCbuiGoKe5fp-2wqa8XJQBWMGLvWU9I,4984
120
+ generated/models/realizedprofitlosswithcommission.py,sha256=AGuqeGwVspQNKV7ByVIbpM0gIs-89JwWlERq7l0Qf5k,5025
121
+ generated/models/realizedprofitlosswithcommission1.py,sha256=tfs9IJUrQLFZpzxqLF8uQg9zsObFAo33ELFP6A31OXo,4928
122
+ generated/models/remainingquantity.py,sha256=T0-HBvlm_ULJz6ekbLreJ6PK0DbXFGhowad99qXgVzg,4944
123
+ generated/models/remainingquantity1.py,sha256=CQRl6gGb4eAE8BUxbQLOuwQj6AAkdry2iGX0V85LYyE,4847
124
+ generated/models/securityidtype.py,sha256=Yz9wxiVzZc2EuynHd6_YPUQ08u1WE8bFkC4p6ePU3ng,4854
125
+ generated/models/session_response_data.py,sha256=1ds2K5xszSDSQv7gukugAN0pkosw17kyM2kK9ecquWo,3859
126
+ generated/models/session_start_request.py,sha256=0H2UOCTUUthLjzW3KhN9kQat-frziRynCVBdtisKtTs,3279
127
+ generated/models/session_status.py,sha256=9dvNB5lrkzXVvgP8R7gxqTzBo9W3QRdWr4TffFRUJE8,780
128
+ generated/models/session_user_response.py,sha256=ynQEx1o_-_tcrxqCqXDsE7-1cQFuFsklRQ55ZMJJI3M,4086
129
+ generated/models/side.py,sha256=yrg2jGlI9BGa0P3jKr8S-airPFS0AoAML7SXg2Bp0Aw,4706
130
+ generated/models/side1.py,sha256=Lgm7eYIDyfUtRYMoinZ_NQdx2R9zhez5xgqHELBzE2s,4863
131
+ generated/models/side2.py,sha256=myEbmTDTJwJOs3dJ-bmIeTckSpr0uWYb_Nz8YD5d-E8,4715
132
+ generated/models/side3.py,sha256=86Cgi_aoQbkv7Bs7RuiPrNuNeqLDkaEzAacQgnpQH_s,4858
133
+ generated/models/status.py,sha256=3e8NIjMdonGyR1zhDqNW59Hj8ITTbJmDOKy0-5s0JqQ,4736
134
+ generated/models/status1.py,sha256=WGwUH8Ib5RtPR2kBslo-yaIn2JKEzAXSJIMqmnHAZ-8,4906
135
+ generated/models/stopprice.py,sha256=MoSR_IkyRG2ozxzVbrf-fJPD9G1fB5w8DvKVmt0Y-rg,4891
136
+ generated/models/strikeprice.py,sha256=ZUt5BrJ8VEI2Ecy3XsCfWYzg2QJy4Xi0ZPMGzma9Sgg,4903
137
+ generated/models/success_payload_company_response.py,sha256=fnpqr-edmty8Gi1NgxX9Dz-mVkPkIXObBlzJ5oAJfE8,3949
138
+ generated/models/success_payload_disconnect_action_result.py,sha256=t3-291OleZ5YJ3iGdSMuLZYT4rf7GYRvgWf2W9z35Ts,4006
139
+ generated/models/success_payload_list_broker_info.py,sha256=cqNP8r4HQXoH4ailLQZCNOBHsm18ID5MgC6jl5kwD9k,4107
140
+ generated/models/success_payload_list_fdx_broker_account.py,sha256=YwXtc1P3Cb-qIhEhfFaZxNVXtrRQLf7_4Zhikw-roV4,4156
141
+ generated/models/success_payload_list_fdx_broker_balance.py,sha256=67oNGFKQqOnST2TlfuQNWzF3Ah3uBxqk0KZfuCgnYXo,4156
142
+ generated/models/success_payload_list_fdx_broker_order.py,sha256=Y8WI_hLxQiupB5uOoCNOPFHZLhDqdczEM6STYqQ4VJM,4140
143
+ generated/models/success_payload_list_fdx_broker_order_event.py,sha256=p5guZPUuIYjSqTo3Hex9zctEno1cTXh4-dckr7SEA9k,4181
144
+ generated/models/success_payload_list_fdx_broker_order_fill.py,sha256=lHrvM1xwBZGAgL0kvhI1BDRzsZfNFB98SKO0Z7MxmOI,4173
145
+ generated/models/success_payload_list_fdx_broker_order_group.py,sha256=Pn8wwiJPbeFZPzaOZ09tVIJECz9Vf4jWeeEXFp9VRio,4181
146
+ generated/models/success_payload_list_fdx_broker_position.py,sha256=fuvYmccn2MkCF9PSFpnQlmhCSJjT2Tr_qdQkEfgSBIA,4164
147
+ generated/models/success_payload_list_fdx_broker_position_lot.py,sha256=QcwSah05fPROLPGrcPqbaB895cYfG-9OY6PNSajTW6M,4189
148
+ generated/models/success_payload_list_fdx_broker_position_lot_fill.py,sha256=xRanttKbqWlxbMZPB043l73yp6ADMrxOxHNWTSazUGQ,4222
149
+ generated/models/success_payload_list_user_broker_connection_with_permissions.py,sha256=1ijT1nzRNS3sMx6CUFXsz56zE4cq73IfaEKfvN2R0Dw,4310
150
+ generated/models/success_payload_portal_url_response.py,sha256=_LD7XBLFGDsT6253OR39ww688rVxZOcR6pNdrch0Dzk,3966
151
+ generated/models/success_payload_session_response_data.py,sha256=hCUpbG3q6ZUNcU0-3fRIJNxPOk3G2Y-oaDm1J3jnf7c,3982
152
+ generated/models/success_payload_session_user_response.py,sha256=v2Wjkqdfr9VnX7Rd4L_eVhH_TLGHNlDJP_O3uIhbrnE,3982
153
+ generated/models/success_payload_token_response_data.py,sha256=0U092YSRy6dJmYugkrlbheihHxk5WyA-kcMPvMFJVMo,3966
154
+ generated/models/timeinforce.py,sha256=AVBGvDv_gAbHn1PuDyXk8fW5UT-g4sAFkvdGYPd8UkE,4891
155
+ generated/models/token_response_data.py,sha256=Uw-JyYFH1-ZswQJx6sWSSCBbV5OeY8H55c4-mv3ZgoY,3278
156
+ generated/models/totalcashvalue.py,sha256=8Uk9c69AhPwIvfpljuyu0wN4x2MTIxFs87uwUX1_ONw,4922
157
+ generated/models/totalrealizedpnl.py,sha256=JALWAonYmPqLztOEfZX5LNsritguhylaJVDu8KJcRpI,4964
158
+ generated/models/units.py,sha256=OKnVZ3AfwQQUPe1HqNir8HjF1RM6vAHJ6T4futNJQ18,4890
159
+ generated/models/unrealizedprofitloss.py,sha256=Z9ERXFBo55Xx_r5bZNalTPy_bi8w7BVhra4kLZzKTUE,4958
160
+ generated/models/unrealizedprofitlosspercent.py,sha256=b3fnGrCu9I7ZXKBIc154_c42Y6i-S_ahrsL4_MVCBMo,4996
161
+ generated/models/user_broker_connection_with_permissions.py,sha256=66fA647d8XAChWxVz86oG82OyzqXxbxzAiLig0PtBwk,5404
162
+ generated/models/validation_error.py,sha256=xRwAbOaDu6RlPc2r21icYpvlZoZ1m1Bdk55GdaB2zw4,3599
163
+ generated/models/validation_error_loc_inner.py,sha256=DDYQAlYzyN2AQogF9JI-9ylQ1xD5tewaP1RXMjrbgNU,4814
164
+ generated/utils/__init__.py,sha256=bV1jrD9d4qP9SERt7ftKWAgCz5l27PsJeyXss9KHJlM,1346
165
+ generated/utils/cache.py,sha256=Kdu3JOb0W6Qfl59rRUkOMPyYqi-DQu_QsozB5t7a50Y,1889
166
+ generated/utils/enum_coercion.py,sha256=jqY3zgA3irCjtlrERrRr9bXDqLvNBWlP26UtJBHkIgo,1965
167
+ generated/utils/error_handling.py,sha256=D5_6DqzPZ01xaeLdmLCTXHiKb5cXysBGI95rjtPKP2M,4168
168
+ generated/utils/interceptors.py,sha256=ZPO_Ib6JL9SGmxkfAn2GgVw-Me2cjEjfLw_DCjuGOkI,2709
169
+ generated/utils/logger.py,sha256=DWPzqeNwqdzAtJeq1jqduTiOXD4EPMlsrRWXgyRRuSM,2188
170
+ generated/utils/pagination.py,sha256=O4KZwIVcarUokxXGJlevK02bC43UXYV9Pl-DxyAtZt4,9691
171
+ generated/utils/plain_object.py,sha256=eKfWNsrN6aybVlYpjF-GtaX5YJG01ZakkevqnP4NCI0,2935
172
+ generated/utils/request_id.py,sha256=O_d8WEQnaLJgaHbGR5HZhhdgQ0djMNpTIi7mBONfhpc,201
173
+ generated/utils/retry.py,sha256=eWAXk0Y2iZRuTyduzr2_no41LMJLMh0XGw10yZuMZKs,3785
174
+ generated/utils/url_utils.py,sha256=Twv4F604Fqvyvttqa9cnuSUwkHPNAFOijQdPFhbVCBw,2538
175
+ generated/utils/validation.py,sha256=EOyaIDyhI_CgQZe7-_h9SrBI8KPNyV1PTiy4JjZKnWU,1303
176
+ generated/wrappers/__init__.py,sha256=qKfVNJFWu3TWcsSHsBd4wT9_ayvjzh6sxshkvMtluF4,289
177
+ generated/wrappers/brokers.py,sha256=x9Zc1-d0PkV5Po1h7E0CWCfFUcnV3RwPjvnKDd9houM,177155
178
+ generated/wrappers/company.py,sha256=tALDm0TDYWQbOdajK3ZXvU5W0nV-MMER641AMPEQwDs,14350
179
+ generated/wrappers/session.py,sha256=2n2p7QFa_UP6DbFLiA3EC6hw_lEhOSF8V9QBo1ylk-g,52316
180
+ finatic_server_python-0.9.1.dist-info/METADATA,sha256=qFEKojWuYaX80QpoflkcdcAmw7gmu0Kp4QAGR9rCl0M,10004
181
+ finatic_server_python-0.9.1.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
182
+ finatic_server_python-0.9.1.dist-info/licenses/LICENSE,sha256=hE35tOCe7uZCeYglYc-sjRSjad4jPyB3i53-QW1YfLk,3590
183
+ finatic_server_python-0.9.1.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
-