brokapi 0.1.0a1__tar.gz

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 (351) hide show
  1. brokapi-0.1.0a1/.github/workflows/python.yml +104 -0
  2. brokapi-0.1.0a1/.gitignore +12 -0
  3. brokapi-0.1.0a1/Cargo.lock +3020 -0
  4. brokapi-0.1.0a1/Cargo.toml +115 -0
  5. brokapi-0.1.0a1/LICENSE-APACHE +176 -0
  6. brokapi-0.1.0a1/LICENSE-MIT +21 -0
  7. brokapi-0.1.0a1/PKG-INFO +58 -0
  8. brokapi-0.1.0a1/README.md +54 -0
  9. brokapi-0.1.0a1/SECURITY.md +12 -0
  10. brokapi-0.1.0a1/crates/bcs/Cargo.toml +74 -0
  11. brokapi-0.1.0a1/crates/bcs/README.md +54 -0
  12. brokapi-0.1.0a1/crates/bcs/examples/api_smoke.rs +135 -0
  13. brokapi-0.1.0a1/crates/bcs/examples/bcs_raw_access.rs +83 -0
  14. brokapi-0.1.0a1/crates/bcs/limits.toml +118 -0
  15. brokapi-0.1.0a1/crates/bcs/src/cid.rs +79 -0
  16. brokapi-0.1.0a1/crates/bcs/src/config.rs +143 -0
  17. brokapi-0.1.0a1/crates/bcs/src/core/md.rs +557 -0
  18. brokapi-0.1.0a1/crates/bcs/src/core/mod.rs +13 -0
  19. brokapi-0.1.0a1/crates/bcs/src/core/ud.rs +501 -0
  20. brokapi-0.1.0a1/crates/bcs/src/error.rs +179 -0
  21. brokapi-0.1.0a1/crates/bcs/src/lib.rs +82 -0
  22. brokapi-0.1.0a1/crates/bcs/src/limits.rs +136 -0
  23. brokapi-0.1.0a1/crates/bcs/src/map/execution.rs +219 -0
  24. brokapi-0.1.0a1/crates/bcs/src/map/instrument.rs +118 -0
  25. brokapi-0.1.0a1/crates/bcs/src/map/market.rs +339 -0
  26. brokapi-0.1.0a1/crates/bcs/src/map/mod.rs +159 -0
  27. brokapi-0.1.0a1/crates/bcs/src/map/order.rs +497 -0
  28. brokapi-0.1.0a1/crates/bcs/src/map/portfolio.rs +103 -0
  29. brokapi-0.1.0a1/crates/bcs/src/map/schedule.rs +160 -0
  30. brokapi-0.1.0a1/crates/bcs/src/map/stop.rs +294 -0
  31. brokapi-0.1.0a1/crates/bcs/src/md.rs +790 -0
  32. brokapi-0.1.0a1/crates/bcs/src/pump.rs +85 -0
  33. brokapi-0.1.0a1/crates/bcs/src/raw.rs +317 -0
  34. brokapi-0.1.0a1/crates/bcs/src/subs.rs +78 -0
  35. brokapi-0.1.0a1/crates/bcs/src/ud.rs +1179 -0
  36. brokapi-0.1.0a1/crates/bcs/src/util.rs +132 -0
  37. brokapi-0.1.0a1/crates/bcs/tests/conformance.rs +400 -0
  38. brokapi-0.1.0a1/crates/bcs/tests/connector_tests.rs +96 -0
  39. brokapi-0.1.0a1/crates/bcs/tests/fixes.rs +567 -0
  40. brokapi-0.1.0a1/crates/bcs/tests/live.rs +587 -0
  41. brokapi-0.1.0a1/crates/bcs/tests/live_reference.rs +84 -0
  42. brokapi-0.1.0a1/crates/bcs/tests/md_api.rs +353 -0
  43. brokapi-0.1.0a1/crates/bcs/tests/md_core.rs +360 -0
  44. brokapi-0.1.0a1/crates/bcs/tests/mock_integration.rs +583 -0
  45. brokapi-0.1.0a1/crates/bcs/tests/mock_server/mod.rs +5 -0
  46. brokapi-0.1.0a1/crates/bcs/tests/orders_api.rs +725 -0
  47. brokapi-0.1.0a1/crates/bcs/tests/raw_access.rs +219 -0
  48. brokapi-0.1.0a1/crates/bcs/tests/sansio_tests.rs +530 -0
  49. brokapi-0.1.0a1/crates/bcs/tests/wave2.rs +545 -0
  50. brokapi-0.1.0a1/crates/bcs-protocol/Cargo.toml +53 -0
  51. brokapi-0.1.0a1/crates/bcs-protocol/README.md +54 -0
  52. brokapi-0.1.0a1/crates/bcs-protocol/src/config.rs +222 -0
  53. brokapi-0.1.0a1/crates/bcs-protocol/src/error.rs +224 -0
  54. brokapi-0.1.0a1/crates/bcs-protocol/src/http/client.rs +688 -0
  55. brokapi-0.1.0a1/crates/bcs-protocol/src/http/endpoints.rs +1292 -0
  56. brokapi-0.1.0a1/crates/bcs-protocol/src/http/mod.rs +9 -0
  57. brokapi-0.1.0a1/crates/bcs-protocol/src/http/models.rs +2450 -0
  58. brokapi-0.1.0a1/crates/bcs-protocol/src/lib.rs +64 -0
  59. brokapi-0.1.0a1/crates/bcs-protocol/src/models/enums.rs +425 -0
  60. brokapi-0.1.0a1/crates/bcs-protocol/src/models/instrument.rs +46 -0
  61. brokapi-0.1.0a1/crates/bcs-protocol/src/models/messages.rs +52 -0
  62. brokapi-0.1.0a1/crates/bcs-protocol/src/models/mod.rs +7 -0
  63. brokapi-0.1.0a1/crates/bcs-protocol/src/models/types.rs +86 -0
  64. brokapi-0.1.0a1/crates/bcs-protocol/src/utils/date_format.rs +218 -0
  65. brokapi-0.1.0a1/crates/bcs-protocol/src/utils/mod.rs +9 -0
  66. brokapi-0.1.0a1/crates/bcs-protocol/src/utils/precision.rs +345 -0
  67. brokapi-0.1.0a1/crates/bcs-protocol/src/utils/rate_limiter.rs +114 -0
  68. brokapi-0.1.0a1/crates/bcs-protocol/src/ws/client.rs +609 -0
  69. brokapi-0.1.0a1/crates/bcs-protocol/src/ws/mod.rs +15 -0
  70. brokapi-0.1.0a1/crates/bcs-protocol/src/ws/models.rs +1390 -0
  71. brokapi-0.1.0a1/crates/bcs-protocol/src/ws/parser.rs +109 -0
  72. brokapi-0.1.0a1/crates/bcs-protocol/src/ws/session.rs +710 -0
  73. brokapi-0.1.0a1/crates/bcs-protocol/tests/client_errors.rs +175 -0
  74. brokapi-0.1.0a1/crates/bcs-protocol/tests/common/mod.rs +112 -0
  75. brokapi-0.1.0a1/crates/bcs-protocol/tests/endpoints_wire.rs +228 -0
  76. brokapi-0.1.0a1/crates/bcs-protocol/tests/env_file.rs +33 -0
  77. brokapi-0.1.0a1/crates/bcs-protocol/tests/fixtures/rest/all_bonds.json +117302 -0
  78. brokapi-0.1.0a1/crates/bcs-protocol/tests/fixtures/rest/instrument_info.json +15 -0
  79. brokapi-0.1.0a1/crates/bcs-protocol/tests/fixtures/rest/last_trades.json +20 -0
  80. brokapi-0.1.0a1/crates/bcs-protocol/tests/fixtures/rest/last_trades_records.json +6 -0
  81. brokapi-0.1.0a1/crates/bcs-protocol/tests/fixtures/rest/mtlr_by_isin.json +140 -0
  82. brokapi-0.1.0a1/crates/bcs-protocol/tests/fixtures/rest/mtlr_instruments.json +94 -0
  83. brokapi-0.1.0a1/crates/bcs-protocol/tests/fixtures/rest/order_book.json +16 -0
  84. brokapi-0.1.0a1/crates/bcs-protocol/tests/fixtures/rest/place_order.json +4 -0
  85. brokapi-0.1.0a1/crates/bcs-protocol/tests/fixtures/ws/order_book.json +15 -0
  86. brokapi-0.1.0a1/crates/bcs-protocol/tests/fixtures/ws/order_book_error.json +9 -0
  87. brokapi-0.1.0a1/crates/bcs-protocol/tests/fixtures/ws/order_book_success.json +5 -0
  88. brokapi-0.1.0a1/crates/bcs-protocol/tests/fixtures/ws/order_execution.json +18 -0
  89. brokapi-0.1.0a1/crates/bcs-protocol/tests/fixtures/ws/order_execution_fill.json +30 -0
  90. brokapi-0.1.0a1/crates/bcs-protocol/tests/fixtures/ws/portfolio.json +16 -0
  91. brokapi-0.1.0a1/crates/bcs-protocol/tests/fixtures/ws/quotes.json +10 -0
  92. brokapi-0.1.0a1/crates/bcs-protocol/tests/http_orders.rs +542 -0
  93. brokapi-0.1.0a1/crates/bcs-protocol/tests/http_tests.rs +589 -0
  94. brokapi-0.1.0a1/crates/bcs-protocol/tests/numbers.rs +65 -0
  95. brokapi-0.1.0a1/crates/bcs-protocol/tests/rest_models.rs +310 -0
  96. brokapi-0.1.0a1/crates/bcs-protocol/tests/security.rs +204 -0
  97. brokapi-0.1.0a1/crates/bcs-protocol/tests/unit_tests.rs +459 -0
  98. brokapi-0.1.0a1/crates/bcs-protocol/tests/utils.rs +127 -0
  99. brokapi-0.1.0a1/crates/bcs-protocol/tests/ws_session.rs +149 -0
  100. brokapi-0.1.0a1/crates/bcs-protocol/tests/ws_tests.rs +878 -0
  101. brokapi-0.1.0a1/crates/bcs-protocol/tests/ws_wire.rs +302 -0
  102. brokapi-0.1.0a1/crates/conformance/Cargo.toml +27 -0
  103. brokapi-0.1.0a1/crates/conformance/README.md +54 -0
  104. brokapi-0.1.0a1/crates/conformance/src/lib.rs +2395 -0
  105. brokapi-0.1.0a1/crates/core/Cargo.toml +38 -0
  106. brokapi-0.1.0a1/crates/core/README.md +54 -0
  107. brokapi-0.1.0a1/crates/core/src/cid.rs +194 -0
  108. brokapi-0.1.0a1/crates/core/src/error.rs +387 -0
  109. brokapi-0.1.0a1/crates/core/src/lib.rs +90 -0
  110. brokapi-0.1.0a1/crates/core/src/traits.rs +1840 -0
  111. brokapi-0.1.0a1/crates/core/src/types/caps.rs +205 -0
  112. brokapi-0.1.0a1/crates/core/src/types/envelope.rs +181 -0
  113. brokapi-0.1.0a1/crates/core/src/types/execution.rs +40 -0
  114. brokapi-0.1.0a1/crates/core/src/types/instrument.rs +340 -0
  115. brokapi-0.1.0a1/crates/core/src/types/market.rs +252 -0
  116. brokapi-0.1.0a1/crates/core/src/types/mod.rs +48 -0
  117. brokapi-0.1.0a1/crates/core/src/types/number.rs +676 -0
  118. brokapi-0.1.0a1/crates/core/src/types/order.rs +423 -0
  119. brokapi-0.1.0a1/crates/core/src/types/portfolio.rs +52 -0
  120. brokapi-0.1.0a1/crates/core/src/types/primitives.rs +41 -0
  121. brokapi-0.1.0a1/crates/core/src/types/shutdown.rs +85 -0
  122. brokapi-0.1.0a1/crates/core/src/types/stop.rs +171 -0
  123. brokapi-0.1.0a1/crates/core/src/types/subscription.rs +108 -0
  124. brokapi-0.1.0a1/crates/core/src/types/time.rs +94 -0
  125. brokapi-0.1.0a1/crates/core/tests/serde_roundtrip.rs +197 -0
  126. brokapi-0.1.0a1/crates/finam/Cargo.toml +70 -0
  127. brokapi-0.1.0a1/crates/finam/README.md +54 -0
  128. brokapi-0.1.0a1/crates/finam/examples/finam_raw_access.rs +87 -0
  129. brokapi-0.1.0a1/crates/finam/limits.toml +103 -0
  130. brokapi-0.1.0a1/crates/finam/src/cid.rs +175 -0
  131. brokapi-0.1.0a1/crates/finam/src/config.rs +283 -0
  132. brokapi-0.1.0a1/crates/finam/src/core/md.rs +333 -0
  133. brokapi-0.1.0a1/crates/finam/src/core/mod.rs +76 -0
  134. brokapi-0.1.0a1/crates/finam/src/core/ud.rs +307 -0
  135. brokapi-0.1.0a1/crates/finam/src/error.rs +125 -0
  136. brokapi-0.1.0a1/crates/finam/src/index.rs +196 -0
  137. brokapi-0.1.0a1/crates/finam/src/lib.rs +125 -0
  138. brokapi-0.1.0a1/crates/finam/src/limits.rs +80 -0
  139. brokapi-0.1.0a1/crates/finam/src/map/instrument.rs +188 -0
  140. brokapi-0.1.0a1/crates/finam/src/map/m10.rs +294 -0
  141. brokapi-0.1.0a1/crates/finam/src/map/market.rs +350 -0
  142. brokapi-0.1.0a1/crates/finam/src/map/mod.rs +32 -0
  143. brokapi-0.1.0a1/crates/finam/src/map/order.rs +181 -0
  144. brokapi-0.1.0a1/crates/finam/src/map/portfolio.rs +77 -0
  145. brokapi-0.1.0a1/crates/finam/src/map/stop.rs +636 -0
  146. brokapi-0.1.0a1/crates/finam/src/md.rs +1030 -0
  147. brokapi-0.1.0a1/crates/finam/src/pump.rs +280 -0
  148. brokapi-0.1.0a1/crates/finam/src/raw.rs +243 -0
  149. brokapi-0.1.0a1/crates/finam/src/rpc.rs +175 -0
  150. brokapi-0.1.0a1/crates/finam/src/stream.rs +340 -0
  151. brokapi-0.1.0a1/crates/finam/src/subs.rs +34 -0
  152. brokapi-0.1.0a1/crates/finam/src/ud.rs +1617 -0
  153. brokapi-0.1.0a1/crates/finam/src/util.rs +278 -0
  154. brokapi-0.1.0a1/crates/finam/tests/conformance.rs +477 -0
  155. brokapi-0.1.0a1/crates/finam/tests/connector_tests.rs +1300 -0
  156. brokapi-0.1.0a1/crates/finam/tests/errors_table.rs +111 -0
  157. brokapi-0.1.0a1/crates/finam/tests/fixes.rs +203 -0
  158. brokapi-0.1.0a1/crates/finam/tests/live.rs +379 -0
  159. brokapi-0.1.0a1/crates/finam/tests/live_reference.rs +82 -0
  160. brokapi-0.1.0a1/crates/finam/tests/mock_server/mod.rs +75 -0
  161. brokapi-0.1.0a1/crates/finam/tests/raw_access.rs +197 -0
  162. brokapi-0.1.0a1/crates/finam/tests/sansio_tests.rs +800 -0
  163. brokapi-0.1.0a1/crates/finam/tests/stop_orders.rs +277 -0
  164. brokapi-0.1.0a1/crates/finam/tests/wave2.rs +383 -0
  165. brokapi-0.1.0a1/crates/finam-protocol/Cargo.toml +42 -0
  166. brokapi-0.1.0a1/crates/finam-protocol/README.md +54 -0
  167. brokapi-0.1.0a1/crates/finam-protocol/build.rs +52 -0
  168. brokapi-0.1.0a1/crates/finam-protocol/proto/README.md +12 -0
  169. brokapi-0.1.0a1/crates/finam-protocol/proto/google/api/annotations.proto +31 -0
  170. brokapi-0.1.0a1/crates/finam-protocol/proto/google/api/http.proto +371 -0
  171. brokapi-0.1.0a1/crates/finam-protocol/proto/google/type/date.proto +52 -0
  172. brokapi-0.1.0a1/crates/finam-protocol/proto/google/type/decimal.proto +95 -0
  173. brokapi-0.1.0a1/crates/finam-protocol/proto/google/type/interval.proto +46 -0
  174. brokapi-0.1.0a1/crates/finam-protocol/proto/google/type/money.proto +42 -0
  175. brokapi-0.1.0a1/crates/finam-protocol/proto/grpc/gateway/protoc_gen_openapiv2/options/annotations.proto +51 -0
  176. brokapi-0.1.0a1/crates/finam-protocol/proto/grpc/gateway/protoc_gen_openapiv2/options/openapiv2.proto +756 -0
  177. brokapi-0.1.0a1/crates/finam-protocol/proto/grpc/tradeapi/v1/accounts/accounts_service.proto +351 -0
  178. brokapi-0.1.0a1/crates/finam-protocol/proto/grpc/tradeapi/v1/assets/assets_service.proto +643 -0
  179. brokapi-0.1.0a1/crates/finam-protocol/proto/grpc/tradeapi/v1/auth/auth_service.proto +193 -0
  180. brokapi-0.1.0a1/crates/finam-protocol/proto/grpc/tradeapi/v1/corporateactions/corporate_actions_service.proto +469 -0
  181. brokapi-0.1.0a1/crates/finam-protocol/proto/grpc/tradeapi/v1/marketdata/marketdata_service.proto +519 -0
  182. brokapi-0.1.0a1/crates/finam-protocol/proto/grpc/tradeapi/v1/metrics/usage_metrics_service.proto +120 -0
  183. brokapi-0.1.0a1/crates/finam-protocol/proto/grpc/tradeapi/v1/orders/orders_service.proto +631 -0
  184. brokapi-0.1.0a1/crates/finam-protocol/proto/grpc/tradeapi/v1/reports/reports_service.proto +209 -0
  185. brokapi-0.1.0a1/crates/finam-protocol/proto/grpc/tradeapi/v1/side.proto +17 -0
  186. brokapi-0.1.0a1/crates/finam-protocol/proto/grpc/tradeapi/v1/trade.proto +48 -0
  187. brokapi-0.1.0a1/crates/finam-protocol/src/auth.rs +772 -0
  188. brokapi-0.1.0a1/crates/finam-protocol/src/client.rs +402 -0
  189. brokapi-0.1.0a1/crates/finam-protocol/src/error.rs +98 -0
  190. brokapi-0.1.0a1/crates/finam-protocol/src/lib.rs +62 -0
  191. brokapi-0.1.0a1/crates/mocks/Cargo.toml +36 -0
  192. brokapi-0.1.0a1/crates/mocks/README.md +54 -0
  193. brokapi-0.1.0a1/crates/mocks/src/bcs.rs +1378 -0
  194. brokapi-0.1.0a1/crates/mocks/src/finam.rs +1325 -0
  195. brokapi-0.1.0a1/crates/mocks/src/lib.rs +76 -0
  196. brokapi-0.1.0a1/crates/mocks/src/live/bcs.rs +178 -0
  197. brokapi-0.1.0a1/crates/mocks/src/live/finam.rs +207 -0
  198. brokapi-0.1.0a1/crates/mocks/src/live/fixture.rs +470 -0
  199. brokapi-0.1.0a1/crates/mocks/src/live/mod.rs +30 -0
  200. brokapi-0.1.0a1/crates/mocks/src/live/scrub.rs +380 -0
  201. brokapi-0.1.0a1/crates/mocks/src/live/shape.rs +383 -0
  202. brokapi-0.1.0a1/crates/mocks/src/live/tbank.rs +417 -0
  203. brokapi-0.1.0a1/crates/mocks/src/live/tree.rs +412 -0
  204. brokapi-0.1.0a1/crates/mocks/src/tbank.rs +1623 -0
  205. brokapi-0.1.0a1/crates/mocks/src/time.rs +226 -0
  206. brokapi-0.1.0a1/crates/python/Cargo.lock +2974 -0
  207. brokapi-0.1.0a1/crates/python/Cargo.toml +57 -0
  208. brokapi-0.1.0a1/crates/python/README.md +27 -0
  209. brokapi-0.1.0a1/crates/python/examples/history.py +105 -0
  210. brokapi-0.1.0a1/crates/python/examples/infrastructure.py +162 -0
  211. brokapi-0.1.0a1/crates/python/examples/quickstart_bcs.py +129 -0
  212. brokapi-0.1.0a1/crates/python/examples/raw.py +68 -0
  213. brokapi-0.1.0a1/crates/python/examples/record.py +73 -0
  214. brokapi-0.1.0a1/crates/python/examples/rules.py +75 -0
  215. brokapi-0.1.0a1/crates/python/examples/stops.py +90 -0
  216. brokapi-0.1.0a1/crates/python/examples/trading_bot.py +211 -0
  217. brokapi-0.1.0a1/crates/python/src/client.rs +685 -0
  218. brokapi-0.1.0a1/crates/python/src/errors.rs +224 -0
  219. brokapi-0.1.0a1/crates/python/src/lib.rs +52 -0
  220. brokapi-0.1.0a1/crates/python/src/mocks.rs +200 -0
  221. brokapi-0.1.0a1/crates/python/src/raw.rs +466 -0
  222. brokapi-0.1.0a1/crates/python/src/record.rs +194 -0
  223. brokapi-0.1.0a1/crates/python/src/settings.rs +110 -0
  224. brokapi-0.1.0a1/crates/python/tests/conftest.py +43 -0
  225. brokapi-0.1.0a1/crates/python/tests/test_bcs.py +229 -0
  226. brokapi-0.1.0a1/crates/python/tests/test_brokers.py +152 -0
  227. brokapi-0.1.0a1/crates/python/tests/test_codec.py +98 -0
  228. brokapi-0.1.0a1/crates/python/tests/test_errors.py +70 -0
  229. brokapi-0.1.0a1/crates/python/tests/test_examples.py +312 -0
  230. brokapi-0.1.0a1/crates/python/tests/test_infrastructure.py +114 -0
  231. brokapi-0.1.0a1/crates/python/tests/test_numbers.py +39 -0
  232. brokapi-0.1.0a1/crates/python/tests/test_raw.py +205 -0
  233. brokapi-0.1.0a1/crates/python/tests/test_record.py +234 -0
  234. brokapi-0.1.0a1/crates/python/tests/test_rules.py +58 -0
  235. brokapi-0.1.0a1/crates/python/tests/test_stops.py +263 -0
  236. brokapi-0.1.0a1/crates/runtime/Cargo.toml +37 -0
  237. brokapi-0.1.0a1/crates/runtime/README.md +54 -0
  238. brokapi-0.1.0a1/crates/runtime/src/backpressure.rs +416 -0
  239. brokapi-0.1.0a1/crates/runtime/src/clock.rs +33 -0
  240. brokapi-0.1.0a1/crates/runtime/src/command_gate.rs +120 -0
  241. brokapi-0.1.0a1/crates/runtime/src/connection.rs +157 -0
  242. brokapi-0.1.0a1/crates/runtime/src/detached.rs +53 -0
  243. brokapi-0.1.0a1/crates/runtime/src/emitter.rs +495 -0
  244. brokapi-0.1.0a1/crates/runtime/src/health.rs +85 -0
  245. brokapi-0.1.0a1/crates/runtime/src/history.rs +553 -0
  246. brokapi-0.1.0a1/crates/runtime/src/instrument_queue.rs +147 -0
  247. brokapi-0.1.0a1/crates/runtime/src/lib.rs +100 -0
  248. brokapi-0.1.0a1/crates/runtime/src/limits.rs +732 -0
  249. brokapi-0.1.0a1/crates/runtime/src/metrics.rs +93 -0
  250. brokapi-0.1.0a1/crates/runtime/src/orders.rs +403 -0
  251. brokapi-0.1.0a1/crates/runtime/src/price_grid.rs +196 -0
  252. brokapi-0.1.0a1/crates/runtime/src/reconcile.rs +121 -0
  253. brokapi-0.1.0a1/crates/runtime/src/record.rs +603 -0
  254. brokapi-0.1.0a1/crates/runtime/src/shutdown.rs +150 -0
  255. brokapi-0.1.0a1/crates/runtime/src/supervisor.rs +164 -0
  256. brokapi-0.1.0a1/crates/runtime/tests/metrics_and_helpers.rs +29 -0
  257. brokapi-0.1.0a1/crates/runtime/tests/runtime_tests.rs +221 -0
  258. brokapi-0.1.0a1/crates/runtime/tests/wave2.rs +308 -0
  259. brokapi-0.1.0a1/crates/sansio/Cargo.toml +29 -0
  260. brokapi-0.1.0a1/crates/sansio/README.md +54 -0
  261. brokapi-0.1.0a1/crates/sansio/src/core.rs +119 -0
  262. brokapi-0.1.0a1/crates/sansio/src/event.rs +82 -0
  263. brokapi-0.1.0a1/crates/sansio/src/harness.rs +320 -0
  264. brokapi-0.1.0a1/crates/sansio/src/json_buffer.rs +208 -0
  265. brokapi-0.1.0a1/crates/sansio/src/lib.rs +55 -0
  266. brokapi-0.1.0a1/crates/sansio/src/order_fsm.rs +603 -0
  267. brokapi-0.1.0a1/crates/sansio/src/outbound.rs +17 -0
  268. brokapi-0.1.0a1/crates/sansio/src/subscription.rs +122 -0
  269. brokapi-0.1.0a1/crates/sansio/tests/harness_tests.rs +45 -0
  270. brokapi-0.1.0a1/crates/tbank/Cargo.toml +73 -0
  271. brokapi-0.1.0a1/crates/tbank/README.md +54 -0
  272. brokapi-0.1.0a1/crates/tbank/examples/tbank_raw_access.rs +90 -0
  273. brokapi-0.1.0a1/crates/tbank/limits.toml +256 -0
  274. brokapi-0.1.0a1/crates/tbank/src/cid.rs +133 -0
  275. brokapi-0.1.0a1/crates/tbank/src/config.rs +193 -0
  276. brokapi-0.1.0a1/crates/tbank/src/core/md.rs +727 -0
  277. brokapi-0.1.0a1/crates/tbank/src/core/mod.rs +45 -0
  278. brokapi-0.1.0a1/crates/tbank/src/core/ud.rs +931 -0
  279. brokapi-0.1.0a1/crates/tbank/src/emit.rs +8 -0
  280. brokapi-0.1.0a1/crates/tbank/src/error.rs +401 -0
  281. brokapi-0.1.0a1/crates/tbank/src/ids.rs +414 -0
  282. brokapi-0.1.0a1/crates/tbank/src/lib.rs +86 -0
  283. brokapi-0.1.0a1/crates/tbank/src/limits.rs +194 -0
  284. brokapi-0.1.0a1/crates/tbank/src/lots.rs +328 -0
  285. brokapi-0.1.0a1/crates/tbank/src/map/execution.rs +187 -0
  286. brokapi-0.1.0a1/crates/tbank/src/map/instrument.rs +312 -0
  287. brokapi-0.1.0a1/crates/tbank/src/map/market.rs +376 -0
  288. brokapi-0.1.0a1/crates/tbank/src/map/mod.rs +41 -0
  289. brokapi-0.1.0a1/crates/tbank/src/map/order.rs +341 -0
  290. brokapi-0.1.0a1/crates/tbank/src/map/portfolio.rs +157 -0
  291. brokapi-0.1.0a1/crates/tbank/src/map/schedule.rs +120 -0
  292. brokapi-0.1.0a1/crates/tbank/src/map/stop.rs +326 -0
  293. brokapi-0.1.0a1/crates/tbank/src/md.rs +1278 -0
  294. brokapi-0.1.0a1/crates/tbank/src/raw.rs +351 -0
  295. brokapi-0.1.0a1/crates/tbank/src/stream.rs +358 -0
  296. brokapi-0.1.0a1/crates/tbank/src/ud.rs +2657 -0
  297. brokapi-0.1.0a1/crates/tbank/src/util.rs +138 -0
  298. brokapi-0.1.0a1/crates/tbank/tests/conformance.rs +307 -0
  299. brokapi-0.1.0a1/crates/tbank/tests/connector_tests.rs +1154 -0
  300. brokapi-0.1.0a1/crates/tbank/tests/core_streams.rs +508 -0
  301. brokapi-0.1.0a1/crates/tbank/tests/fixes.rs +525 -0
  302. brokapi-0.1.0a1/crates/tbank/tests/live_reference.rs +80 -0
  303. brokapi-0.1.0a1/crates/tbank/tests/live_sandbox.rs +373 -0
  304. brokapi-0.1.0a1/crates/tbank/tests/mock_server/mod.rs +5 -0
  305. brokapi-0.1.0a1/crates/tbank/tests/multi_account.rs +212 -0
  306. brokapi-0.1.0a1/crates/tbank/tests/raw_access.rs +238 -0
  307. brokapi-0.1.0a1/crates/tbank/tests/sansio_tests.rs +975 -0
  308. brokapi-0.1.0a1/crates/tbank/tests/stop_orders.rs +374 -0
  309. brokapi-0.1.0a1/crates/tbank/tests/wave2.rs +404 -0
  310. brokapi-0.1.0a1/crates/tbank-protocol/Cargo.toml +46 -0
  311. brokapi-0.1.0a1/crates/tbank-protocol/README.md +54 -0
  312. brokapi-0.1.0a1/crates/tbank-protocol/build.rs +47 -0
  313. brokapi-0.1.0a1/crates/tbank-protocol/proto/SOURCE.md +14 -0
  314. brokapi-0.1.0a1/crates/tbank-protocol/proto/common.proto +142 -0
  315. brokapi-0.1.0a1/crates/tbank-protocol/proto/google/api/field_behavior.proto +90 -0
  316. brokapi-0.1.0a1/crates/tbank-protocol/proto/instruments.proto +1637 -0
  317. brokapi-0.1.0a1/crates/tbank-protocol/proto/marketdata.proto +692 -0
  318. brokapi-0.1.0a1/crates/tbank-protocol/proto/operations.proto +587 -0
  319. brokapi-0.1.0a1/crates/tbank-protocol/proto/orders.proto +415 -0
  320. brokapi-0.1.0a1/crates/tbank-protocol/proto/sandbox.proto +114 -0
  321. brokapi-0.1.0a1/crates/tbank-protocol/proto/signals.proto +109 -0
  322. brokapi-0.1.0a1/crates/tbank-protocol/proto/stoporders.proto +175 -0
  323. brokapi-0.1.0a1/crates/tbank-protocol/proto/users.proto +202 -0
  324. brokapi-0.1.0a1/crates/tbank-protocol/src/client.rs +318 -0
  325. brokapi-0.1.0a1/crates/tbank-protocol/src/config.rs +348 -0
  326. brokapi-0.1.0a1/crates/tbank-protocol/src/error.rs +19 -0
  327. brokapi-0.1.0a1/crates/tbank-protocol/src/lib.rs +69 -0
  328. brokapi-0.1.0a1/crates/tbank-protocol/src/money.rs +406 -0
  329. brokapi-0.1.0a1/examples/contract.rs +249 -0
  330. brokapi-0.1.0a1/examples/infrastructure.rs +668 -0
  331. brokapi-0.1.0a1/examples/lifecycle.rs +120 -0
  332. brokapi-0.1.0a1/examples/quickstart_bcs.rs +243 -0
  333. brokapi-0.1.0a1/examples/recovery.rs +144 -0
  334. brokapi-0.1.0a1/examples/research.rs +508 -0
  335. brokapi-0.1.0a1/examples/trading_bot.rs +670 -0
  336. brokapi-0.1.0a1/pyproject.toml +49 -0
  337. brokapi-0.1.0a1/python/brokapi/__init__.py +187 -0
  338. brokapi-0.1.0a1/python/brokapi/_codec.py +153 -0
  339. brokapi-0.1.0a1/python/brokapi/_native.pyi +63 -0
  340. brokapi-0.1.0a1/python/brokapi/client.py +690 -0
  341. brokapi-0.1.0a1/python/brokapi/errors.py +271 -0
  342. brokapi-0.1.0a1/python/brokapi/models.py +915 -0
  343. brokapi-0.1.0a1/python/brokapi/numbers.py +62 -0
  344. brokapi-0.1.0a1/python/brokapi/py.typed +0 -0
  345. brokapi-0.1.0a1/python/brokapi/record.py +199 -0
  346. brokapi-0.1.0a1/python/brokapi/testing.py +125 -0
  347. brokapi-0.1.0a1/src/lib.rs +61 -0
  348. brokapi-0.1.0a1/tests/book_rust_version.rs +70 -0
  349. brokapi-0.1.0a1/tests/docs_errors.rs +58 -0
  350. brokapi-0.1.0a1/tests/docs_mermaid.rs +87 -0
  351. brokapi-0.1.0a1/tests/examples.rs +163 -0
@@ -0,0 +1,104 @@
1
+ # Wheels of the Python package (crates/python) for Linux, macOS and Windows, and a smoke test of each on its own system.
2
+ # Started by hand (Actions -> python -> Run workflow) or by a tag `python-v*`. It builds and tests. It does NOT publish:
3
+ # wheels are uploaded as artifacts of the run, putting them on PyPI is a separate decision and a separate step.
4
+ #
5
+ # Made from `maturin generate-ci github` (maturin 1.15) and cut down: one abi3 wheel covers every Python from 3.10, so no
6
+ # free-threaded and no per-version wheels, and no 32-bit or exotic targets. Linux aarch64 is built on an ARM runner, not by
7
+ # cross compilation: the cross toolchain of manylinux cannot build the assembly of `ring`. The Linux x86_64 wheel is also built and checked on the build machine of the
8
+ # project; the other systems are this file's job.
9
+ name: python
10
+
11
+ on:
12
+ workflow_dispatch:
13
+ push:
14
+ tags:
15
+ - "python-v*"
16
+
17
+ permissions:
18
+ contents: read
19
+
20
+ jobs:
21
+ wheels:
22
+ name: wheel ${{ matrix.os }} ${{ matrix.target }}
23
+ runs-on: ${{ matrix.runner }}
24
+ strategy:
25
+ fail-fast: false
26
+ matrix:
27
+ include:
28
+ - { os: linux, runner: ubuntu-22.04, target: x86_64, manylinux: auto }
29
+ - { os: linux, runner: ubuntu-24.04-arm, target: aarch64, manylinux: auto }
30
+ - { os: macos, runner: macos-15-intel, target: x86_64 }
31
+ - { os: macos, runner: macos-latest, target: aarch64 }
32
+ - { os: windows, runner: windows-latest, target: x64 }
33
+ steps:
34
+ - uses: actions/checkout@v6
35
+ - uses: actions/setup-python@v6
36
+ with:
37
+ python-version: "3.10"
38
+ - name: Build the wheel
39
+ uses: PyO3/maturin-action@v1
40
+ with:
41
+ working-directory: crates/python
42
+ target: ${{ matrix.target }}
43
+ args: --release --out dist
44
+ manylinux: ${{ matrix.manylinux || 'off' }}
45
+ sccache: true
46
+ - name: Keep the wheel
47
+ uses: actions/upload-artifact@v6
48
+ with:
49
+ name: wheel-${{ matrix.os }}-${{ matrix.target }}
50
+ path: crates/python/dist
51
+
52
+ # Install the wheel in a clean environment and run the tests of the package against the imitations of the brokers.
53
+ # On every system the wheels are built for.
54
+ smoke:
55
+ name: smoke ${{ matrix.os }} ${{ matrix.python }}
56
+ needs: wheels
57
+ runs-on: ${{ matrix.runner }}
58
+ strategy:
59
+ fail-fast: false
60
+ matrix:
61
+ include:
62
+ - { os: linux, runner: ubuntu-22.04, target: x86_64, python: "3.10" }
63
+ - { os: linux, runner: ubuntu-22.04, target: x86_64, python: "3.14" }
64
+ - { os: linux, runner: ubuntu-24.04-arm, target: aarch64, python: "3.12" }
65
+ - { os: macos, runner: macos-latest, target: aarch64, python: "3.13" }
66
+ - { os: windows, runner: windows-latest, target: x64, python: "3.12" }
67
+ steps:
68
+ - uses: actions/checkout@v6
69
+ - uses: actions/setup-python@v6
70
+ with:
71
+ python-version: ${{ matrix.python }}
72
+ - uses: actions/download-artifact@v7
73
+ with:
74
+ name: wheel-${{ matrix.os }}-${{ matrix.target }}
75
+ path: dist
76
+ - name: Install the wheel and the test tools
77
+ shell: bash
78
+ run: |
79
+ python -m venv venv
80
+ if [ -d venv/Scripts ]; then PY=venv/Scripts/python; else PY=venv/bin/python; fi
81
+ $PY -m pip install pytest pytest-asyncio
82
+ $PY -m pip install --no-index --find-links dist brokapi
83
+ $PY -c "import brokapi; print(brokapi.__version__)"
84
+ - name: Tests of the package
85
+ shell: bash
86
+ working-directory: crates/python
87
+ run: |
88
+ if [ -d ../../venv/Scripts ]; then PY=../../venv/Scripts/python; else PY=../../venv/bin/python; fi
89
+ $PY -m pytest tests -q
90
+
91
+ sdist:
92
+ runs-on: ubuntu-24.04
93
+ steps:
94
+ - uses: actions/checkout@v6
95
+ - name: Build the sdist
96
+ uses: PyO3/maturin-action@v1
97
+ with:
98
+ working-directory: crates/python
99
+ command: sdist
100
+ args: --out dist
101
+ - uses: actions/upload-artifact@v6
102
+ with:
103
+ name: sdist
104
+ path: crates/python/dist
@@ -0,0 +1,12 @@
1
+ target/
2
+ .env
3
+ CLAUDE.md
4
+ AGENTS.md
5
+ .claude/
6
+ .serena/
7
+ __pycache__/
8
+ *.pyc
9
+ *.so
10
+ *.pyd
11
+ .pytest_cache/
12
+ dist/