ms-markets 3.0.0.dev40__tar.gz → 3.0.1.dev41__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 (838) hide show
  1. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/CHANGELOG.md +9 -0
  2. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/PKG-INFO +1 -1
  3. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/ADR/0047-markets-api-application-boundary.md +11 -14
  4. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/fast_api/v1/index.md +5 -36
  5. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/fast_api/v1/rows.md +2 -4
  6. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/knowledge/msm/client/index.md +4 -7
  7. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/knowledge/msm/indices/formula_indexes.md +1 -1
  8. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/knowledge/msm_portfolios/portfolios/index.md +3 -3
  9. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/planning/implementation_tasks/markets_contracts_package_and_client_plan.md +1 -1
  10. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/pyproject.toml +1 -1
  11. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/api/remote.py +1 -1
  12. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/conftest.py +0 -17
  13. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/client/test_remote_backend.py +8 -26
  14. ms_markets-3.0.0.dev40/tests/msm/fastapi/v1/test_registry_write_policy.py +0 -191
  15. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/.agents/skills/ms_markets/accounts/account_workflow/SKILL.md +0 -0
  16. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/.agents/skills/ms_markets/accounts/valuation_resolver/SKILL.md +0 -0
  17. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/.agents/skills/ms_markets/assets/asset_indexed_updaters/SKILL.md +0 -0
  18. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/.agents/skills/ms_markets/assets/asset_model_extension/SKILL.md +0 -0
  19. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/.agents/skills/ms_markets/indices/index_workflow/SKILL.md +0 -0
  20. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/.agents/skills/ms_markets/platform/bootstrap_registration/SKILL.md +0 -0
  21. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/.agents/skills/ms_markets/platform/metatable_migrations/SKILL.md +0 -0
  22. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/.agents/skills/ms_markets/portfolios/portfolio_workflow/SKILL.md +0 -0
  23. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/.agents/skills/ms_markets/portfolios/portfolio_workflow/references/position_accounting.md +0 -0
  24. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/.agents/skills/ms_markets/pricing/fixed_income_curve_building/SKILL.md +0 -0
  25. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/.agents/skills/ms_markets/pricing/general_pricing/SKILL.md +0 -0
  26. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/.gitignore +0 -0
  27. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/LICENSE +0 -0
  28. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/README.md +0 -0
  29. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/ADR/0005-pricing-package-refactor.md +0 -0
  30. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/ADR/0006-asset-package-boundary.md +0 -0
  31. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/ADR/0008-metatable-table-and-api-model-split.md +0 -0
  32. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/ADR/0019-msm-portfolios-package-boundary.md +0 -0
  33. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/ADR/0022-alembic-metatable-migration-alignment.md +0 -0
  34. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/ADR/0023-deterministic-alembic-naming.md +0 -0
  35. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/ADR/0024-namespace-scoped-alembic-version-locations.md +0 -0
  36. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/ADR/0025-direct-metatable-runtime-binding.md +0 -0
  37. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/ADR/0026-explicit-pricing-market-data-sets.md +0 -0
  38. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/ADR/0027-account-target-position-portfolio-exposure.md +0 -0
  39. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/ADR/0028-core-calendar-reference-data.md +0 -0
  40. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/ADR/0029-account-holdings-virtual-fund-allocation-policy.md +0 -0
  41. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/ADR/0030-explicit-portfolio-price-source-dependency.md +0 -0
  42. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/ADR/0031-generic-portfolio-valuation-source.md +0 -0
  43. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/ADR/0032-portfolio-group-many-to-many.md +0 -0
  44. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/ADR/0033-pricing-valuation-position-boundary.md +0 -0
  45. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/ADR/0034-command-center-asset-monitor-helpers.md +0 -0
  46. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/ADR/0035-pricing-curve-identity-and-market-data-curve-bindings.md +0 -0
  47. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/ADR/0036-prepared-pricing-valuation-context.md +0 -0
  48. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/ADR/0037-index-formula-and-custom-calculation-framework.md +0 -0
  49. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/ADR/0038-index-user-api-and-fastapi-exploration.md +0 -0
  50. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/ADR/0039-sdk-8-hard-cut-and-1-0-package-contract.md +0 -0
  51. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/ADR/0040-portfolio-temporal-ownership.md +0 -0
  52. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/ADR/0041-installable-provider-http-toolkit.md +0 -0
  53. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/ADR/0042-position-cash-flow-portfolio-accounting.md +0 -0
  54. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/ADR/0043-sdk-9-metatables-client-hard-cut.md +0 -0
  55. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/ADR/0044-namespaced-migration-provider-package.md +0 -0
  56. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/ADR/0045-squashed-initial-schema-and-namespaced-packages.md +0 -0
  57. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/ADR/0046-legacy-0017-schema-bridge.md +0 -0
  58. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/ADR/0048-time-index-vocabulary-rename.md +0 -0
  59. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/ADR/README.md +0 -0
  60. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/ADR/fast_api/v1/0001-calendar-crud-route.md +0 -0
  61. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/ADR/fast_api/v1/0002-command-center-adapter-discovery.md +0 -0
  62. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/ADR/fast_api/v1/0003-fixed-income-pricer-api.md +0 -0
  63. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/ADR/fast_api/v1/0004-delete-impact-contract.md +0 -0
  64. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/changelog.md +0 -0
  65. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/concepts.md +0 -0
  66. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/fast_api/v1/accounts.md +0 -0
  67. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/fast_api/v1/assets.md +0 -0
  68. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/fast_api/v1/calendars.md +0 -0
  69. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/fast_api/v1/command_center_bulk_actions.md +0 -0
  70. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/fast_api/v1/fixed_income_pricer.md +0 -0
  71. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/fast_api/v1/indexes.md +0 -0
  72. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/fast_api/v1/portfolio.md +0 -0
  73. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/fast_api/v1/portfolio_groups.md +0 -0
  74. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/fast_api/v1/portfolio_signal_metadata.md +0 -0
  75. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/fast_api/v1/pricing_curves.md +0 -0
  76. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/fast_api/v1/pricing_market_data.md +0 -0
  77. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/fast_api/v1/provider_adapter_toolkit.md +0 -0
  78. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/fast_api/v1/resource_contracts.md +0 -0
  79. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/fast_api/v1/settings.md +0 -0
  80. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/fast_api/v1/virtualfund.md +0 -0
  81. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/getting-started.md +0 -0
  82. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/img/main-sequence-markets/main_sequence_markets_alternate_lockup_black_bg.png +0 -0
  83. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/img/main-sequence-markets/main_sequence_markets_alternate_lockup_transparent.png +0 -0
  84. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/img/main-sequence-markets/main_sequence_markets_icon_emblem_black_bg.png +0 -0
  85. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/img/main-sequence-markets/main_sequence_markets_icon_emblem_transparent.png +0 -0
  86. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/img/main-sequence-markets/main_sequence_markets_market_mark_only_black_bg.png +0 -0
  87. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/img/main-sequence-markets/main_sequence_markets_market_mark_only_transparent.png +0 -0
  88. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/img/main-sequence-markets/main_sequence_markets_primary_wordmark_black_bg.png +0 -0
  89. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/img/main-sequence-markets/main_sequence_markets_primary_wordmark_transparent.png +0 -0
  90. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/index.md +0 -0
  91. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/knowledge/msm/accounts/index.md +0 -0
  92. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/knowledge/msm/accounts/virtual_funds.md +0 -0
  93. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/knowledge/msm/assets/asset_indexed_updaters.md +0 -0
  94. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/knowledge/msm/assets/bonds.md +0 -0
  95. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/knowledge/msm/assets/currency.md +0 -0
  96. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/knowledge/msm/assets/index.md +0 -0
  97. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/knowledge/msm/calendars/index.md +0 -0
  98. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/knowledge/msm/derivatives/futures.md +0 -0
  99. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/knowledge/msm/derivatives/index.md +0 -0
  100. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/knowledge/msm/execution/index.md +0 -0
  101. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/knowledge/msm/index.md +0 -0
  102. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/knowledge/msm/indices/index.md +0 -0
  103. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/knowledge/msm/migrations/index.md +0 -0
  104. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/knowledge/msm/models/index.md +0 -0
  105. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/knowledge/msm/platform/index.md +0 -0
  106. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/knowledge/msm/platform/meta_table_registration.md +0 -0
  107. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/knowledge/msm/platform/metatable_migrations.md +0 -0
  108. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/knowledge/msm/repositories/index.md +0 -0
  109. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/knowledge/msm/services/index.md +0 -0
  110. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/knowledge/msm_portfolios/index.md +0 -0
  111. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/knowledge/msm_portfolios/portfolios/accounting.md +0 -0
  112. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/knowledge/msm_pricing/analytics.md +0 -0
  113. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/knowledge/msm_pricing/curves.md +0 -0
  114. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/knowledge/msm_pricing/fixings.md +0 -0
  115. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/knowledge/msm_pricing/index.md +0 -0
  116. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/knowledge/msm_pricing/instruments.md +0 -0
  117. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/knowledge/msm_pricing/market_data_sets.md +0 -0
  118. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/knowledge/msm_pricing/runtime_resolution.md +0 -0
  119. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/knowledge/msm_pricing/scenarios/curves.md +0 -0
  120. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/knowledge/msm_pricing/scenarios/index.md +0 -0
  121. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/knowledge/msm_pricing/scenarios/valuation.md +0 -0
  122. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/planning/implementation_tasks/benchmark_curve_resolution_plan.md +0 -0
  123. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/planning/implementation_tasks/bond_helper_curve_reconstruction_upstream_plan.md +0 -0
  124. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/planning/implementation_tasks/cross_currency_helper_curve_reconstruction_upstream_plan.md +0 -0
  125. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/planning/implementation_tasks/generic_curve_reconstruction_upstream_plan.md +0 -0
  126. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/planning/implementation_tasks/generic_valuation_scenario_workflow_plan.md +0 -0
  127. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/planning/implementation_tasks/index_formula_and_custom_calculation_plan.md +0 -0
  128. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/planning/implementation_tasks/python_3_13_mainsequence_5_upgrade_plan.md +0 -0
  129. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/planning/implementation_tasks/reusable_valuation_portfolio_scenario_analytics_plan.md +0 -0
  130. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/reference/index.md +0 -0
  131. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/reference/indices.md +0 -0
  132. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/releasing.md +0 -0
  133. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/stylesheets/custom.css +0 -0
  134. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/tutorial/01-assets.md +0 -0
  135. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/tutorial/02-calendars.md +0 -0
  136. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/tutorial/03-accounts.md +0 -0
  137. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/tutorial/04-portfolios.md +0 -0
  138. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/tutorial/05-pricing.md +0 -0
  139. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/tutorial/06-index-formulas.md +0 -0
  140. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/tutorial/index.md +0 -0
  141. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/upgrading-to-3.md +0 -0
  142. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/__init__.py +0 -0
  143. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm/__init__.py +0 -0
  144. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm/accounts/__init__.py +0 -0
  145. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm/accounts/account_portfolio_full_workflow.py +0 -0
  146. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm/accounts/account_virtual_fund_allocation_example.py +0 -0
  147. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm/accounts/utils/__init__.py +0 -0
  148. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm/accounts/utils/reference_data.py +0 -0
  149. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm/assets/__init__.py +0 -0
  150. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm/assets/asset_category_workflow.py +0 -0
  151. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm/assets/asset_crud_workflow.py +0 -0
  152. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm/assets/asset_type_constants.py +0 -0
  153. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm/assets/bond_workflow.py +0 -0
  154. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm/assets/currency_spot_workflow.py +0 -0
  155. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm/assets/derivatives/__init__.py +0 -0
  156. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm/assets/derivatives/crypto_future_without_figi.py +0 -0
  157. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm/assets/derivatives/index_future_from_openfigi.py +0 -0
  158. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm/assets/us_treasury_bond_workflow.py +0 -0
  159. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm/assets/utils/__init__.py +0 -0
  160. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm/assets/utils/reference_data.py +0 -0
  161. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm/calendars/__init__.py +0 -0
  162. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm/calendars/calendar_materialization_workflow.py +0 -0
  163. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm/http_provider_contracts.py +0 -0
  164. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm/indices/__init__.py +0 -0
  165. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm/indices/delta_hedged_option_index.py +0 -0
  166. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm/indices/extension_owned_index_storage.py +0 -0
  167. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm/indices/formula_index.py +0 -0
  168. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm/indices/index_values_frequency_migration.py +0 -0
  169. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm/indices/plain_index_values.py +0 -0
  170. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm/platform/__init__.py +0 -0
  171. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm/platform/bootstrap.py +0 -0
  172. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm/platform/custom_asset_details_extension.py +0 -0
  173. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm/platform/inspect_markets_metatable_models.py +0 -0
  174. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm/platform/metatable_migration_lifecycle.py +0 -0
  175. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm/workflows/__init__.py +0 -0
  176. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm/workflows/asset_category_workflow.py +0 -0
  177. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm_portfolios/portfolio_cashflows_and_fx_valuation_example.py +0 -0
  178. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm_portfolios/portfolio_custom_cashflow_model_example.py +0 -0
  179. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm_portfolios/portfolio_custom_valuation_column_example.py +0 -0
  180. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm_portfolios/portfolio_equal_weights_config.py +0 -0
  181. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm_portfolios/portfolio_equal_weights_dynamic_migration.py +0 -0
  182. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm_portfolios/portfolio_equal_weights_example.py +0 -0
  183. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm_portfolios/portfolio_equal_weights_prepare_schema.py +0 -0
  184. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm_portfolios/portfolio_equal_weights_run.py +0 -0
  185. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm_portfolios/portfolio_groups_example.py +0 -0
  186. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm_portfolios/portfolio_midnight_timestamp_repair.py +0 -0
  187. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm_portfolios/portfolio_perpetual_funding_example.py +0 -0
  188. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm_portfolios/portfolio_read_services.py +0 -0
  189. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm_portfolios/portfolio_trailing_adv_participation_example.py +0 -0
  190. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm_portfolios/portfolio_trailing_adv_participation_preview.py +0 -0
  191. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm_pricing/__init__.py +0 -0
  192. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm_pricing/bond_pricing_example/README.md +0 -0
  193. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm_pricing/bond_pricing_example/__init__.py +0 -0
  194. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm_pricing/bond_pricing_example/main.py +0 -0
  195. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm_pricing/bond_terms.py +0 -0
  196. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm_pricing/curve_reconstruction.py +0 -0
  197. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm_pricing/curve_scenario.py +0 -0
  198. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm_pricing/fixed_income_spread_analytics.py +0 -0
  199. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm_pricing/import_pricing_runtime.py +0 -0
  200. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm_pricing/instrument_identity_boundary.py +0 -0
  201. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm_pricing/pricing_registry_rows.py +0 -0
  202. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm_pricing/pricing_valuation_context.py +0 -0
  203. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm_pricing/resolved_curve_scenario.py +0 -0
  204. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm_pricing/utils/__init__.py +0 -0
  205. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm_pricing/utils/mock_market_data.py +0 -0
  206. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm_pricing/valuation_inputs.py +0 -0
  207. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm_pricing/valuation_scenario_workflow.py +0 -0
  208. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/mkdocs.yml +0 -0
  209. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/__init__.py +0 -0
  210. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/_deprecated_imports.py +0 -0
  211. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/analytics/__init__.py +0 -0
  212. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/analytics/indices/__init__.py +0 -0
  213. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/analytics/indices/contracts.py +0 -0
  214. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/analytics/indices/engine.py +0 -0
  215. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/analytics/indices/spreads.py +0 -0
  216. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/api/__init__.py +0 -0
  217. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/api/accounts.py +0 -0
  218. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/api/assets.py +0 -0
  219. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/api/base.py +0 -0
  220. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/api/calendars/__init__.py +0 -0
  221. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/api/calendars/_validation.py +0 -0
  222. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/api/calendars/core.py +0 -0
  223. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/api/calendars/dates.py +0 -0
  224. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/api/calendars/events.py +0 -0
  225. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/api/calendars/sessions.py +0 -0
  226. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/api/derivatives.py +0 -0
  227. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/api/execution.py +0 -0
  228. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/api/formula_indices.py +0 -0
  229. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/api/http/__init__.py +0 -0
  230. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/api/http/_base.py +0 -0
  231. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/api/http/bulk_actions.py +0 -0
  232. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/api/http/collections.py +0 -0
  233. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/api/http/discovery.py +0 -0
  234. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/api/http/errors.py +0 -0
  235. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/api/http/operations.py +0 -0
  236. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/api/http/table_impact.py +0 -0
  237. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/api/http/tabular.py +0 -0
  238. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/api/indices.py +0 -0
  239. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/api/issuers.py +0 -0
  240. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/api/portfolios.py +0 -0
  241. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/api/virtual_funds.py +0 -0
  242. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/base.py +0 -0
  243. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/bootstrap.py +0 -0
  244. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/client/__init__.py +0 -0
  245. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/client/client.py +0 -0
  246. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/client/discovery.py +0 -0
  247. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/constants.py +0 -0
  248. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/data_nodes/__init__.py +0 -0
  249. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/data_nodes/accounts/__init__.py +0 -0
  250. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/data_nodes/accounts/constants.py +0 -0
  251. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/data_nodes/accounts/storage.py +0 -0
  252. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/data_nodes/accounts/virtual_funds/__init__.py +0 -0
  253. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/data_nodes/accounts/virtual_funds/storage.py +0 -0
  254. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/data_nodes/assets/__init__.py +0 -0
  255. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/data_nodes/assets/asset_indexed.py +0 -0
  256. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/data_nodes/assets/snapshots.py +0 -0
  257. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/data_nodes/assets/storage.py +0 -0
  258. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/data_nodes/execution/__init__.py +0 -0
  259. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/data_nodes/execution/storage.py +0 -0
  260. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/data_nodes/indices/__init__.py +0 -0
  261. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/data_nodes/indices/formula.py +0 -0
  262. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/data_nodes/indices/storage.py +0 -0
  263. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/data_nodes/indices/timestamped.py +0 -0
  264. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/data_nodes/indices/values.py +0 -0
  265. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/data_nodes/utils/__init__.py +0 -0
  266. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/data_nodes/utils/namespaces.py +0 -0
  267. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/data_nodes/utils/output_metadata.py +0 -0
  268. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/data_nodes/utils/stamped.py +0 -0
  269. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/data_nodes/utils/storage_schema.py +0 -0
  270. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/data_nodes/utils/time.py +0 -0
  271. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/distribution.py +0 -0
  272. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/identity.py +0 -0
  273. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/migrations/__init__.py +0 -0
  274. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/models/__init__.py +0 -0
  275. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/models/accounts/__init__.py +0 -0
  276. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/models/accounts/allocation_models.py +0 -0
  277. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/models/accounts/core.py +0 -0
  278. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/models/accounts/groups.py +0 -0
  279. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/models/accounts/virtual_funds.py +0 -0
  280. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/models/assets/__init__.py +0 -0
  281. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/models/assets/bonds.py +0 -0
  282. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/models/assets/categories.py +0 -0
  283. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/models/assets/core.py +0 -0
  284. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/models/assets/currency_spot.py +0 -0
  285. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/models/assets/provider_details.py +0 -0
  286. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/models/assets/types.py +0 -0
  287. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/models/calendars/__init__.py +0 -0
  288. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/models/calendars/core.py +0 -0
  289. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/models/calendars/dates.py +0 -0
  290. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/models/calendars/events.py +0 -0
  291. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/models/calendars/sessions.py +0 -0
  292. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/models/derivatives.py +0 -0
  293. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/models/execution.py +0 -0
  294. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/models/index_dataset_availability.py +0 -0
  295. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/models/index_formulas.py +0 -0
  296. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/models/indices.py +0 -0
  297. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/models/issuers.py +0 -0
  298. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/models/portfolio_dataset_availability.py +0 -0
  299. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/models/portfolios/__init__.py +0 -0
  300. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/models/portfolios/core.py +0 -0
  301. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/models/portfolios/groups.py +0 -0
  302. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/models/portfolios/signals.py +0 -0
  303. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/models/registration.py +0 -0
  304. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/py.typed +0 -0
  305. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/repositories/__init__.py +0 -0
  306. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/repositories/account_allocation_models.py +0 -0
  307. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/repositories/account_groups.py +0 -0
  308. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/repositories/accounts.py +0 -0
  309. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/repositories/asset_categories.py +0 -0
  310. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/repositories/assets.py +0 -0
  311. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/repositories/base.py +0 -0
  312. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/repositories/calendars/__init__.py +0 -0
  313. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/repositories/calendars/core.py +0 -0
  314. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/repositories/calendars/dates.py +0 -0
  315. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/repositories/calendars/events.py +0 -0
  316. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/repositories/calendars/sessions.py +0 -0
  317. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/repositories/crud.py +0 -0
  318. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/repositories/execution.py +0 -0
  319. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/repositories/indices.py +0 -0
  320. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/repositories/portfolios.py +0 -0
  321. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/repositories/provider_details.py +0 -0
  322. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/repositories/virtual_funds.py +0 -0
  323. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/services/__init__.py +0 -0
  324. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/services/accounts/__init__.py +0 -0
  325. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/services/accounts/account_virtual_allocations.py +0 -0
  326. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/services/accounts/core.py +0 -0
  327. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/services/accounts/virtual_fund_holdings.py +0 -0
  328. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/services/accounts/virtual_funds.py +0 -0
  329. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/services/accounts/virtual_funds_public_api.py +0 -0
  330. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/services/asset_categories.py +0 -0
  331. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/services/asset_master_lists.py +0 -0
  332. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/services/assets/__init__.py +0 -0
  333. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/services/assets/open_figi_lists/market_sector.json +0 -0
  334. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/services/assets/open_figi_lists/security_type.json +0 -0
  335. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/services/assets/open_figi_lists/security_type_2.json +0 -0
  336. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/services/assets/openfigi.py +0 -0
  337. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/services/assets/reference_details.py +0 -0
  338. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/services/calendars/__init__.py +0 -0
  339. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/services/calendars/materialization.py +0 -0
  340. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/services/calendars/pandas_market.py +0 -0
  341. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/services/calendars/records.py +0 -0
  342. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/services/calendars/validation.py +0 -0
  343. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/services/execution.py +0 -0
  344. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/services/holdings.py +0 -0
  345. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/services/indices/__init__.py +0 -0
  346. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/services/indices/actors.py +0 -0
  347. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/services/indices/availability.py +0 -0
  348. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/services/indices/catalog.py +0 -0
  349. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/services/indices/contracts.py +0 -0
  350. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/services/indices/delete_impact.py +0 -0
  351. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/services/indices/relationships.py +0 -0
  352. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/services/portfolios.py +0 -0
  353. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/services/provider_details.py +0 -0
  354. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/services/public_api_settings.py +0 -0
  355. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/services/reference_data.py +0 -0
  356. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/services/related_meta_tables.py +0 -0
  357. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/services/table_impact.py +0 -0
  358. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/services/target_positions.py +0 -0
  359. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/settings.py +0 -0
  360. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/storage_copies.py +0 -0
  361. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/storage_instances.py +0 -0
  362. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/time_index/__init__.py +0 -0
  363. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/time_index/accounts/__init__.py +0 -0
  364. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/time_index/accounts/constants.py +0 -0
  365. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/time_index/accounts/storage.py +0 -0
  366. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/time_index/accounts/virtual_funds/__init__.py +0 -0
  367. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/time_index/accounts/virtual_funds/storage.py +0 -0
  368. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/time_index/assets/__init__.py +0 -0
  369. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/time_index/assets/asset_indexed.py +0 -0
  370. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/time_index/assets/snapshots.py +0 -0
  371. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/time_index/assets/storage.py +0 -0
  372. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/time_index/execution/__init__.py +0 -0
  373. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/time_index/execution/storage.py +0 -0
  374. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/time_index/indices/__init__.py +0 -0
  375. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/time_index/indices/formula.py +0 -0
  376. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/time_index/indices/storage.py +0 -0
  377. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/time_index/indices/timestamped.py +0 -0
  378. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/time_index/indices/values.py +0 -0
  379. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/time_index/utils/__init__.py +0 -0
  380. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/time_index/utils/namespaces.py +0 -0
  381. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/time_index/utils/output_metadata.py +0 -0
  382. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/time_index/utils/stamped.py +0 -0
  383. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/time_index/utils/storage_schema.py +0 -0
  384. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/time_index/utils/time.py +0 -0
  385. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_cli/__init__.py +0 -0
  386. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_cli/main.py +0 -0
  387. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_cli/rename_preflight.py +0 -0
  388. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_migrations/__init__.py +0 -0
  389. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_migrations/env.py +0 -0
  390. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_migrations/registry.py +0 -0
  391. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_migrations/script.py.mako +0 -0
  392. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_migrations/versions/__init__.py +0 -0
  393. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_migrations/versions/mainsequence_examples/__init__.py +0 -0
  394. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_migrations/versions/mainsequence_markets/0017_legacy_schema_anchor.py +0 -0
  395. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_migrations/versions/mainsequence_markets/0018_initial_schema.py +0 -0
  396. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_migrations/versions/mainsequence_markets/0019_ledger_hypertable_uniqueness.py +0 -0
  397. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_migrations/versions/mainsequence_markets/0020_expected_columns.json +0 -0
  398. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_migrations/versions/mainsequence_markets/0020_merge_legacy_schema.py +0 -0
  399. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_migrations/versions/mainsequence_markets/0021_portfolio_dataset_catalog.py +0 -0
  400. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_migrations/versions/mainsequence_markets/0022_identity_named_uid_columns.py +0 -0
  401. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_migrations/versions/mainsequence_markets/__init__.py +0 -0
  402. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/__init__.py +0 -0
  403. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/accounting/__init__.py +0 -0
  404. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/accounting/configuration.py +0 -0
  405. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/accounting/contracts.py +0 -0
  406. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/accounting/lifecycle.py +0 -0
  407. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/accounting/projections.py +0 -0
  408. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/accounting/reducer.py +0 -0
  409. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/accounting/valuation.py +0 -0
  410. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/api/__init__.py +0 -0
  411. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/api/datasets.py +0 -0
  412. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/api/market_metadata.py +0 -0
  413. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/api/portfolios.py +0 -0
  414. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/asset_scope.py +0 -0
  415. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/bootstrap.py +0 -0
  416. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/configuration.py +0 -0
  417. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/contrib/__init__.py +0 -0
  418. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/contrib/prices/__init__.py +0 -0
  419. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/contrib/prices/data_nodes.py +0 -0
  420. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/contrib/prices/updaters.py +0 -0
  421. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/contrib/prices/utils.py +0 -0
  422. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/contrib/signals/__init__.py +0 -0
  423. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/contrib/signals/external_weights.py +0 -0
  424. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/contrib/signals/fixed_weights.py +0 -0
  425. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/contrib/signals/intraday_trend.py +0 -0
  426. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/contrib/signals/market_cap.py +0 -0
  427. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/contrib/signals/portfolio_replicator.py +0 -0
  428. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/contrib/signals/regression_utils.py +0 -0
  429. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/data_nodes/__init__.py +0 -0
  430. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/data_nodes/base.py +0 -0
  431. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/data_nodes/constants.py +0 -0
  432. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/data_nodes/contract_instances.py +0 -0
  433. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/data_nodes/metadata.py +0 -0
  434. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/data_nodes/portfolio_identity.py +0 -0
  435. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/data_nodes/portfolios/__init__.py +0 -0
  436. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/data_nodes/portfolios/accounting.py +0 -0
  437. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/data_nodes/portfolios/analytics.py +0 -0
  438. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/data_nodes/portfolios/calendar_events.py +0 -0
  439. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/data_nodes/portfolios/rebalance.py +0 -0
  440. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/data_nodes/portfolios/storage.py +0 -0
  441. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/data_nodes/portfolios/temporal.py +0 -0
  442. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/data_nodes/portfolios/weights.py +0 -0
  443. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/data_nodes/prices/__init__.py +0 -0
  444. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/data_nodes/prices/storage.py +0 -0
  445. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/data_nodes/signals/__init__.py +0 -0
  446. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/data_nodes/signals/storage.py +0 -0
  447. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/data_nodes/signals/weights.py +0 -0
  448. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/enums.py +0 -0
  449. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/models/__init__.py +0 -0
  450. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/models/portfolios/__init__.py +0 -0
  451. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/models/portfolios/metadata.py +0 -0
  452. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/models/rebalancing.py +0 -0
  453. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/models/signals.py +0 -0
  454. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/rebalance_strategy/__init__.py +0 -0
  455. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/rebalance_strategy/accounting.py +0 -0
  456. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/rebalance_strategy/base.py +0 -0
  457. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/rebalance_strategy/calendar_event.py +0 -0
  458. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/rebalance_strategy/immediate_signal.py +0 -0
  459. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/rebalance_strategy/liquidity_constrained.py +0 -0
  460. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/rebalance_strategy/time_weighted.py +0 -0
  461. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/rebalance_strategy/trailing_average_daily_volume.py +0 -0
  462. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/rebalance_strategy/volume_participation.py +0 -0
  463. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/repositories/__init__.py +0 -0
  464. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/repositories/market_metadata.py +0 -0
  465. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/services/__init__.py +0 -0
  466. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/services/calendars.py +0 -0
  467. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/services/market_metadata.py +0 -0
  468. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/services/portfolio_datasets.py +0 -0
  469. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/services/portfolio_reads.py +0 -0
  470. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/services/portfolio_timestamp_repair.py +0 -0
  471. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/services/public_api.py +0 -0
  472. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/services/series_moves.py +0 -0
  473. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/time_index/__init__.py +0 -0
  474. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/time_index/base.py +0 -0
  475. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/time_index/constants.py +0 -0
  476. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/time_index/contract_instances.py +0 -0
  477. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/time_index/metadata.py +0 -0
  478. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/time_index/portfolio_identity.py +0 -0
  479. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/time_index/portfolios/__init__.py +0 -0
  480. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/time_index/portfolios/accounting.py +0 -0
  481. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/time_index/portfolios/analytics.py +0 -0
  482. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/time_index/portfolios/calendar_events.py +0 -0
  483. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/time_index/portfolios/rebalance.py +0 -0
  484. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/time_index/portfolios/storage.py +0 -0
  485. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/time_index/portfolios/temporal.py +0 -0
  486. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/time_index/portfolios/weights.py +0 -0
  487. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/time_index/prices/__init__.py +0 -0
  488. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/time_index/prices/storage.py +0 -0
  489. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/time_index/signals/__init__.py +0 -0
  490. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/time_index/signals/storage.py +0 -0
  491. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/time_index/signals/weights.py +0 -0
  492. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/utils.py +0 -0
  493. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/README.md +0 -0
  494. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/__init__.py +0 -0
  495. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/analytics/__init__.py +0 -0
  496. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/analytics/spreads/__init__.py +0 -0
  497. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/analytics/spreads/base.py +0 -0
  498. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/analytics/spreads/fixed_income.py +0 -0
  499. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/api/__init__.py +0 -0
  500. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/api/asset_pricing_operations.py +0 -0
  501. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/api/curve_building_details.py +0 -0
  502. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/api/curves.py +0 -0
  503. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/api/index_convention_details.py +0 -0
  504. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/api/instruments.py +0 -0
  505. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/api/market_data_bindings.py +0 -0
  506. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/api/pricing_details.py +0 -0
  507. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/bootstrap.py +0 -0
  508. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/config.py +0 -0
  509. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/data_interface/__init__.py +0 -0
  510. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/data_interface/data_interface.py +0 -0
  511. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/data_nodes/__init__.py +0 -0
  512. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/data_nodes/curve_codec.py +0 -0
  513. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/data_nodes/curves/__init__.py +0 -0
  514. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/data_nodes/curves/key_nodes.py +0 -0
  515. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/data_nodes/curves/storage.py +0 -0
  516. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/data_nodes/index_fixings/__init__.py +0 -0
  517. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/data_nodes/index_fixings/storage.py +0 -0
  518. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/data_nodes/pricing_details/__init__.py +0 -0
  519. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/data_nodes/pricing_details/storage.py +0 -0
  520. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/instruments/__init__.py +0 -0
  521. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/instruments/base_instrument.py +0 -0
  522. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/instruments/bond.py +0 -0
  523. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/instruments/bond_terms.py +0 -0
  524. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/instruments/callability.py +0 -0
  525. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/instruments/interest_rate_swap.py +0 -0
  526. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/instruments/json_codec.py +0 -0
  527. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/instruments/ql_fields.py +0 -0
  528. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/meta_tables.py +0 -0
  529. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/models/__init__.py +0 -0
  530. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/models/curve_building_details.py +0 -0
  531. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/models/curves.py +0 -0
  532. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/models/index_convention_details.py +0 -0
  533. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/models/market_data_bindings.py +0 -0
  534. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/models/pricing_details.py +0 -0
  535. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/pricing_engine/__init__.py +0 -0
  536. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/pricing_engine/bond_analytics.py +0 -0
  537. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/pricing_engine/bond_pricer.py +0 -0
  538. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/pricing_engine/coupon_schedules.py +0 -0
  539. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/pricing_engine/curve_overlays.py +0 -0
  540. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/pricing_engine/curves/__init__.py +0 -0
  541. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/pricing_engine/curves/adapters.py +0 -0
  542. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/pricing_engine/curves/bond_helper_key_nodes.py +0 -0
  543. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/pricing_engine/curves/bond_helpers.py +0 -0
  544. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/pricing_engine/curves/cross_currency_helpers.py +0 -0
  545. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/pricing_engine/curves/cross_currency_key_nodes.py +0 -0
  546. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/pricing_engine/curves/fixed_income_key_nodes.py +0 -0
  547. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/pricing_engine/curves/helper_key_nodes.py +0 -0
  548. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/pricing_engine/curves/helper_resolution.py +0 -0
  549. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/pricing_engine/curves/helpers.py +0 -0
  550. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/pricing_engine/curves/observations.py +0 -0
  551. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/pricing_engine/curves/quote_units.py +0 -0
  552. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/pricing_engine/curves/reconstruction.py +0 -0
  553. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/pricing_engine/indices.py +0 -0
  554. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/pricing_engine/indices_builders.py +0 -0
  555. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/pricing_engine/resolvers.py +0 -0
  556. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/pricing_engine/swap_pricer.py +0 -0
  557. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/scenarios/__init__.py +0 -0
  558. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/scenarios/curves/__init__.py +0 -0
  559. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/scenarios/curves/engine.py +0 -0
  560. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/scenarios/curves/key_node_bumps.py +0 -0
  561. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/scenarios/curves/models.py +0 -0
  562. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/scenarios/valuation/__init__.py +0 -0
  563. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/scenarios/valuation/engine.py +0 -0
  564. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/scenarios/valuation/impacts.py +0 -0
  565. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/scenarios/valuation/line_pricing.py +0 -0
  566. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/scenarios/valuation/models.py +0 -0
  567. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/settings.py +0 -0
  568. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/time_index/__init__.py +0 -0
  569. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/time_index/curve_codec.py +0 -0
  570. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/time_index/curves/__init__.py +0 -0
  571. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/time_index/curves/key_nodes.py +0 -0
  572. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/time_index/curves/storage.py +0 -0
  573. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/time_index/index_fixings/__init__.py +0 -0
  574. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/time_index/index_fixings/storage.py +0 -0
  575. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/time_index/pricing_details/__init__.py +0 -0
  576. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/time_index/pricing_details/storage.py +0 -0
  577. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/utils.py +0 -0
  578. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/valuation.py +0 -0
  579. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/__init__.py +0 -0
  580. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/PINNED_FROM.txt +0 -0
  581. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/README.md +0 -0
  582. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/adapter-from-api-discovery-v1.inline-health-endpoint.json +0 -0
  583. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/adapter-from-api-discovery-v1.retired-response-mappings.json +0 -0
  584. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/adapter-from-api-discovery-v1.unknown-operation-field.json +0 -0
  585. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/adapter-from-api-public-config-v1.direct-source-mismatch.json +0 -0
  586. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/adapter-from-api-query-v1.retired-response-mapping-id.json +0 -0
  587. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/adapter-from-api-query-v1.unknown-field.json +0 -0
  588. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/adapter-from-api-secure-config-v1.unknown-field.json +0 -0
  589. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/app-component-authoring-v1.invalid-binding-port.json +0 -0
  590. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/app-component-authoring-v1.invalid-mock-version.json +0 -0
  591. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/bulk-action-discovery-v1.duplicate-selection-mode.json +0 -0
  592. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/bulk-action-discovery-v1.unsafe-endpoint.json +0 -0
  593. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/bulk-action-execution-v1.empty-explicit.json +0 -0
  594. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/bulk-action-execution-v1.presentation-filter.json +0 -0
  595. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/bulk-action-preflight-v1.invalid-blockers.json +0 -0
  596. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/bulk-action-preflight-v1.missing-allowed.json +0 -0
  597. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/resource-collection-v1.negative-total.json +0 -0
  598. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/resource-collection-v1.select-without-options.json +0 -0
  599. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/resource-discovery-v1.incomplete-generic-column.json +0 -0
  600. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/resource-discovery-v1.unknown-field.json +0 -0
  601. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/resource-discovery-v1.unsafe-identity.json +0 -0
  602. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/static-site-iframe-v1.invalid-target-uid.json +0 -0
  603. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/static-site-iframe-v1.missing-token.json +0 -0
  604. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/static-site-iframe-v1.unknown-credential-error.json +0 -0
  605. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/static-site-iframe-v1.unrestricted-user-credential.json +0 -0
  606. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/static-site-iframe-v1.wrong-version.json +0 -0
  607. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/table-widget-authoring-v1.community-formula.json +0 -0
  608. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/table-widget-authoring-v1.invalid-selection.json +0 -0
  609. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/table-widget-authoring-v1.unknown-widget.json +0 -0
  610. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/tabular-frame-v1.invalid-table-visuals.json +0 -0
  611. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/tabular-frame-v1.long-with-value-fields.json +0 -0
  612. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/tabular-frame-v1.missing-rows.json +0 -0
  613. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/tabular-frame-v1.unknown-field-type.json +0 -0
  614. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/tabular-transform-authoring-v1.incomplete-pivot.json +0 -0
  615. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/tabular-transform-authoring-v1.latest-without-keys.json +0 -0
  616. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/workspace-document-v1.missing-id.json +0 -0
  617. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/workspace-document-v1.numeric-id.json +0 -0
  618. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/adapter-from-api-discovery-v1.orders.json +0 -0
  619. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/adapter-from-api-public-config-v1.backend.json +0 -0
  620. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/adapter-from-api-public-config-v1.direct.json +0 -0
  621. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/adapter-from-api-query-v1.operation.json +0 -0
  622. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/adapter-from-api-secure-config-v1.values.json +0 -0
  623. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/app-component-authoring-v1.manual.json +0 -0
  624. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/app-component-authoring-v1.mock-json.json +0 -0
  625. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/bulk-action-discovery-v1.archive.json +0 -0
  626. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/bulk-action-discovery-v1.empty.json +0 -0
  627. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/bulk-action-execution-v1.all-matching.json +0 -0
  628. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/bulk-action-execution-v1.explicit.json +0 -0
  629. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/bulk-action-preflight-v1.allowed.json +0 -0
  630. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/bulk-action-preflight-v1.blocked.json +0 -0
  631. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/resource-collection-v1.minimal.json +0 -0
  632. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/resource-collection-v1.with-controls.json +0 -0
  633. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/resource-discovery-v1.records.json +0 -0
  634. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/static-site-iframe-v1.fastapi-credential-error.json +0 -0
  635. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/static-site-iframe-v1.fastapi-credential-request.json +0 -0
  636. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/static-site-iframe-v1.fastapi-credential-response.json +0 -0
  637. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/static-site-iframe-v1.fastapi-runtime-starting.json +0 -0
  638. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/static-site-iframe-v1.initialize.json +0 -0
  639. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/static-site-iframe-v1.ready.json +0 -0
  640. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/table-widget-authoring-v1.pro-table.json +0 -0
  641. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/table-widget-authoring-v1.table.json +0 -0
  642. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/tabular-frame-v1.minimal.json +0 -0
  643. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/tabular-frame-v1.table-visuals.json +0 -0
  644. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/tabular-frame-v1.time-series.json +0 -0
  645. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/tabular-transform-authoring-v1.filter.json +0 -0
  646. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/tabular-transform-authoring-v1.pivot-latest.json +0 -0
  647. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/workspace-document-v1.minimal.json +0 -0
  648. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/workspace-document-v1.nested.json +0 -0
  649. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/manifest.json +0 -0
  650. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/schemas/adapter-from-api-discovery-v1.schema.json +0 -0
  651. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/schemas/adapter-from-api-public-config-v1.schema.json +0 -0
  652. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/schemas/adapter-from-api-query-v1.schema.json +0 -0
  653. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/schemas/adapter-from-api-secure-config-v1.schema.json +0 -0
  654. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/schemas/app-component-authoring-v1.schema.json +0 -0
  655. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/schemas/bulk-action-discovery-v1.schema.json +0 -0
  656. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/schemas/bulk-action-execution-v1.schema.json +0 -0
  657. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/schemas/bulk-action-preflight-v1.schema.json +0 -0
  658. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/schemas/resource-collection-v1.schema.json +0 -0
  659. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/schemas/resource-discovery-v1.schema.json +0 -0
  660. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/schemas/static-site-iframe-v1.schema.json +0 -0
  661. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/schemas/table-widget-authoring-v1.schema.json +0 -0
  662. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/schemas/tabular-frame-v1.schema.json +0 -0
  663. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/schemas/tabular-transform-authoring-v1.schema.json +0 -0
  664. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/schemas/workspace-document-v1.schema.json +0 -0
  665. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/identity/__init__.py +0 -0
  666. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/identity/test_date_and_time_identities.py +0 -0
  667. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/identity/test_pinned_identities.py +0 -0
  668. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/__init__.py +0 -0
  669. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/api/__init__.py +0 -0
  670. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/api/calendars/__init__.py +0 -0
  671. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/api/calendars/test_rows.py +0 -0
  672. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/api/test_assets.py +0 -0
  673. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/api/test_bonds.py +0 -0
  674. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/api/test_composite_bulk_reads.py +0 -0
  675. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/api/test_derivatives.py +0 -0
  676. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/api/test_http.py +0 -0
  677. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/api/test_indices.py +0 -0
  678. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/api/test_issuers.py +0 -0
  679. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/api/test_portfolio_groups.py +0 -0
  680. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/api/test_renamed_fields.py +0 -0
  681. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/api/test_row_bulk_and_count.py +0 -0
  682. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/api/test_rows.py +0 -0
  683. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/assets/__init__.py +0 -0
  684. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/assets/test_asset_snapshots.py +0 -0
  685. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/assets/test_openfigi.py +0 -0
  686. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/bootstrap/__init__.py +0 -0
  687. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/bootstrap/test_bootstrap.py +0 -0
  688. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/client/__init__.py +0 -0
  689. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/client/test_discovery.py +0 -0
  690. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/client/test_remote_attachment.py +0 -0
  691. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/fastapi/__init__.py +0 -0
  692. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/fastapi/v1/__init__.py +0 -0
  693. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/fastapi/v1/test_accounts.py +0 -0
  694. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/fastapi/v1/test_acting_identity.py +0 -0
  695. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/fastapi/v1/test_asset_categories.py +0 -0
  696. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/fastapi/v1/test_assets.py +0 -0
  697. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/fastapi/v1/test_batch_lookups.py +0 -0
  698. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/fastapi/v1/test_bulk_action_contracts.py +0 -0
  699. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/fastapi/v1/test_bulk_actions.py +0 -0
  700. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/fastapi/v1/test_calendars.py +0 -0
  701. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/fastapi/v1/test_catalog_aware_deletes.py +0 -0
  702. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/fastapi/v1/test_command_center_adapter.py +0 -0
  703. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/fastapi/v1/test_common.py +0 -0
  704. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/fastapi/v1/test_deployment_entrypoint.py +0 -0
  705. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/fastapi/v1/test_dev_cors.py +0 -0
  706. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/fastapi/v1/test_index_formula_routes.py +0 -0
  707. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/fastapi/v1/test_indices.py +0 -0
  708. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/fastapi/v1/test_lifespan_discovery.py +0 -0
  709. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/fastapi/v1/test_openapi.py +0 -0
  710. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/fastapi/v1/test_portfolio_groups.py +0 -0
  711. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/fastapi/v1/test_portfolio_signals.py +0 -0
  712. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/fastapi/v1/test_portfolios.py +0 -0
  713. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/fastapi/v1/test_pricing_assets.py +0 -0
  714. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/fastapi/v1/test_pricing_curves.py +0 -0
  715. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/fastapi/v1/test_pricing_market_data.py +0 -0
  716. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/fastapi/v1/test_request_identity.py +0 -0
  717. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/fastapi/v1/test_runtime_bootstrap.py +0 -0
  718. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/fastapi/v1/test_settings.py +0 -0
  719. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/fastapi/v1/test_sidecar_includes.py +0 -0
  720. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/fastapi/v1/test_virtual_funds.py +0 -0
  721. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/imports/__init__.py +0 -0
  722. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/imports/test_import.py +0 -0
  723. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/indices/test_engine.py +0 -0
  724. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/indices/test_examples.py +0 -0
  725. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/indices/test_formula_index_contract.py +0 -0
  726. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/indices/test_index_actor.py +0 -0
  727. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/indices/test_index_availability.py +0 -0
  728. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/indices/test_index_delete_impact.py +0 -0
  729. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/indices/test_index_lifecycle_services.py +0 -0
  730. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/indices/test_index_values.py +0 -0
  731. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/indices/test_models_and_migration.py +0 -0
  732. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/indices/test_provider_index_values.py +0 -0
  733. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/indices/test_public_api.py +0 -0
  734. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/indices/test_related_meta_tables.py +0 -0
  735. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/indices/test_resolution_and_repository.py +0 -0
  736. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/indices/test_spread_compatibility.py +0 -0
  737. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/indices/test_updaters.py +0 -0
  738. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/maintenance/fixtures/legacy_0017.sql +0 -0
  739. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/maintenance/test_identity_named_uid_columns_migration.py +0 -0
  740. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/maintenance/test_ledger_hypertable_migration.py +0 -0
  741. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/maintenance/test_legacy_schema_migration.py +0 -0
  742. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/maintenance/test_migration_job.py +0 -0
  743. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/maintenance/test_migrations.py +0 -0
  744. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/models/__init__.py +0 -0
  745. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/models/calendars/__init__.py +0 -0
  746. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/models/calendars/test_tables.py +0 -0
  747. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/models/test_metatable_models.py +0 -0
  748. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/repositories/__init__.py +0 -0
  749. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/repositories/test_renamed_columns.py +0 -0
  750. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/repositories/test_repositories.py +0 -0
  751. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/services/assets/test_reference_details.py +0 -0
  752. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/services/calendars/__init__.py +0 -0
  753. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/services/calendars/test_materialization.py +0 -0
  754. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/services/test_account_virtual_allocations.py +0 -0
  755. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/services/test_latest_asset_references.py +0 -0
  756. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/services/test_table_impact.py +0 -0
  757. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/test_cli.py +0 -0
  758. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/test_constants.py +0 -0
  759. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/test_distribution.py +0 -0
  760. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/test_package_metadata.py +0 -0
  761. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/test_rename_preflight.py +0 -0
  762. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/test_schema_names.py +0 -0
  763. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/test_storage_copies.py +0 -0
  764. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/test_storage_instances.py +0 -0
  765. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/time_index/__init__.py +0 -0
  766. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/time_index/test_asset_indexed_updaters.py +0 -0
  767. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/time_index/test_contracts.py +0 -0
  768. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/time_index/test_datetime_normalization.py +0 -0
  769. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/time_index/test_deprecated_aliases.py +0 -0
  770. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/time_index/test_index_stamped_updaters.py +0 -0
  771. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/time_index/test_package_structure.py +0 -0
  772. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/time_index/test_provisioning_boundary.py +0 -0
  773. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/time_index/test_target_positions_contracts.py +0 -0
  774. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm_portfolios/accounting/test_accounting.py +0 -0
  775. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm_portfolios/api/test_rows.py +0 -0
  776. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm_portfolios/configuration/test_prices_configuration.py +0 -0
  777. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm_portfolios/examples/test_equal_weight_portfolio_schema.py +0 -0
  778. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm_portfolios/examples/test_trailing_adv_participation_preview.py +0 -0
  779. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm_portfolios/imports/test_bootstrap.py +0 -0
  780. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm_portfolios/imports/test_boundaries.py +0 -0
  781. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm_portfolios/models/test_model_graph.py +0 -0
  782. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm_portfolios/services/test_calendars.py +0 -0
  783. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm_portfolios/services/test_portfolio_datasets.py +0 -0
  784. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm_portfolios/services/test_portfolio_reads.py +0 -0
  785. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm_portfolios/services/test_portfolio_timestamp_repair.py +0 -0
  786. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm_portfolios/services/test_series_moves.py +0 -0
  787. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm_portfolios/test_portfolios_logger.py +0 -0
  788. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm_portfolios/time_index/test_contract_instances.py +0 -0
  789. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm_portfolios/time_index/test_daily_price_interpolation.py +0 -0
  790. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm_portfolios/time_index/test_datetime_normalization.py +0 -0
  791. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm_portfolios/time_index/test_engine_instance_tables.py +0 -0
  792. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm_portfolios/time_index/test_portfolio_contracts.py +0 -0
  793. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm_portfolios/time_index/test_storage_first_surface.py +0 -0
  794. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm_portfolios/time_index/test_virtual_fund_holdings_contracts.py +0 -0
  795. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm_pricing/__init__.py +0 -0
  796. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm_pricing/analytics/spreads/test_base.py +0 -0
  797. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm_pricing/analytics/spreads/test_fixed_income.py +0 -0
  798. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm_pricing/api/__init__.py +0 -0
  799. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm_pricing/api/test_asset_pricing_operations.py +0 -0
  800. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm_pricing/api/test_curve_building_details.py +0 -0
  801. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm_pricing/api/test_curves.py +0 -0
  802. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm_pricing/api/test_index_convention_details.py +0 -0
  803. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm_pricing/api/test_instruments.py +0 -0
  804. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm_pricing/api/test_market_data_bindings.py +0 -0
  805. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm_pricing/api/test_pricing_details.py +0 -0
  806. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm_pricing/data_interface/test_data_interface.py +0 -0
  807. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm_pricing/examples/test_mock_market_data.py +0 -0
  808. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm_pricing/instruments/__init__.py +0 -0
  809. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm_pricing/instruments/test_base_instrument.py +0 -0
  810. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm_pricing/instruments/test_benchmark_curve_resolution.py +0 -0
  811. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm_pricing/instruments/test_bond_terms.py +0 -0
  812. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm_pricing/instruments/test_floating_bond_roundtrip.py +0 -0
  813. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm_pricing/instruments/test_index_uid_references.py +0 -0
  814. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm_pricing/models/__init__.py +0 -0
  815. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm_pricing/models/test_pricing_details.py +0 -0
  816. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm_pricing/pricing_engine/curves/test_bond_helper_reconstruction.py +0 -0
  817. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm_pricing/pricing_engine/curves/test_bond_helpers.py +0 -0
  818. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm_pricing/pricing_engine/curves/test_cross_currency_helpers.py +0 -0
  819. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm_pricing/pricing_engine/curves/test_reconstruction.py +0 -0
  820. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm_pricing/pricing_engine/test_curve_overlays.py +0 -0
  821. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm_pricing/pricing_engine/test_resolvers.py +0 -0
  822. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm_pricing/scenarios/curves/test_curve_scenarios.py +0 -0
  823. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm_pricing/scenarios/curves/test_key_node_bumps.py +0 -0
  824. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm_pricing/scenarios/curves/test_resolved_curve_scenarios.py +0 -0
  825. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm_pricing/scenarios/valuation/test_line_pricing.py +0 -0
  826. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm_pricing/scenarios/valuation/test_workflow.py +0 -0
  827. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm_pricing/test_bond_pricing_example.py +0 -0
  828. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm_pricing/test_bootstrap.py +0 -0
  829. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm_pricing/test_config.py +0 -0
  830. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm_pricing/test_meta_tables.py +0 -0
  831. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm_pricing/test_package_boundaries.py +0 -0
  832. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm_pricing/test_valuation.py +0 -0
  833. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm_pricing/time_index/test_curves.py +0 -0
  834. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm_pricing/time_index/test_index_fixings.py +0 -0
  835. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/packaging/__init__.py +0 -0
  836. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/packaging/test_dev_release_version.py +0 -0
  837. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/packaging/test_distribution_sources.py +0 -0
  838. {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/packaging/test_requirements_export.py +0 -0
@@ -7,6 +7,15 @@ and this project follows versioned releases.
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ### Removed
11
+
12
+ - The registry write allow-list of 3.0.0: `apps.v1.policy` and the Main Sequence
13
+ Constant `MARKETS_REGISTRY_WRITERS`. Which applications may trigger registry
14
+ writes is the platform's grant: an application reaches the Markets API only
15
+ when its workflow grants it the `MainSequenceMarkets` branch, and every
16
+ caller the API admits may write. `registry_write` still records the acting
17
+ identity of every write. A deployment that created the constant can delete it.
18
+
10
19
  ## [3.0.0] - 2026-10-26
11
20
 
12
21
  Breaking release 3.0.0. It renames the DataNode vocabulary to the MetaTables
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: ms-markets
3
- Version: 3.0.0.dev40
3
+ Version: 3.0.1.dev41
4
4
  Summary: Financial markets ORM, engines, and application management extensions for Main Sequence.
5
5
  Project-URL: Changelog, https://github.com/mainsequence-projects/MainSequenceMarkets/blob/main/CHANGELOG.md
6
6
  Project-URL: Source, https://github.com/mainsequence-projects/MainSequenceMarkets
@@ -154,10 +154,11 @@ Organization admin can enable it: the declaration takes effect only when the
154
154
  person who pushes it is an Organization admin, and otherwise the resource fails
155
155
  before it deploys. Services enforce
156
156
  domain policy: ownership and Team scoping for
157
- portfolios, accounts, indexes and formula definitions, and application-level
158
- permissions such as "this application may register accounts". Writes keep
159
- running as the Markets workload, whose Writer grant is the single place writes
160
- are allowed; the API's policy decides who may trigger them.
157
+ portfolios, accounts, indexes and formula definitions. Writes keep running as
158
+ the Markets workload, whose Writer grant is the single place writes are
159
+ allowed. Which applications may trigger them is the platform's grant: an
160
+ application reaches the Markets API only when its workflow grants it the
161
+ `MainSequenceMarkets` branch.
161
162
 
162
163
  ### 4. Provider-owned namespaces and sidecars
163
164
 
@@ -393,13 +394,9 @@ Deviations and open items:
393
394
  - Ownership and Team scoping policies are not enforced yet; the helper gives
394
395
  every service one identity to authorize against, and the platform's own
395
396
  grants still apply to requester-bound reads.
396
- - Application-level permission ("this application may register accounts") is
397
- enforced by `apps.v1.policy`: an application (workload identity) triggers a
398
- registry write only when the `MARKETS_REGISTRY_WRITERS` constant lists its
399
- User uid for that resource or for `"*"`; otherwise the route returns `403`.
400
- People, requester-bound calls, Organization admins and calls outside a
401
- request are not restricted by it. A missing constant allows no application;
402
- an unreadable or malformed one fails closed with `503`.
397
+ - Application-level permission is the platform's grant, not a Markets
398
+ setting: an application whose workflow grants it the `MainSequenceMarkets`
399
+ branch reaches the API and may trigger registry writes.
403
400
  - `acts_for_requester: true` on the `markets-api` resource is required for a
404
401
  requester to be present. It is declared in
405
402
  `.mainsequence/workflows/ms-markets-api.yaml`, and it takes effect only when
@@ -419,7 +416,7 @@ route for:
419
416
  rebalancing uses, and the instance methods `FormulaIndex.activate()` and
420
417
  `retire()`. Schedules now read `CalendarSession.filter` with range bounds;
421
418
  activation and retirement go through `FormulaIndex.activate_definition` and
422
- `retire_definition`, which are policy-checked writes.
419
+ `retire_definition`, which are registry writes.
423
420
  - Added reads: `filter`/`count` range lookups (`__gte`, `__gt`, `__lte`,
424
421
  `__lt`); `AssetSnapshots.latest` by identifier, uid or ticker; `offset` on
425
422
  `GET /portfolio/values/`, which `MarketsClient.portfolio_values` uses to page
@@ -484,8 +481,8 @@ application still installs `ms-markets`. Deviations and refinements:
484
481
  branch, as the Markets API does for MetaTables.
485
482
  - Remote `delete` runs the resource's service delete with its preflight
486
483
  checks, and exists only where one exists.
487
- - Registry writes through these routes are subject to the registry write
488
- policy of decision 3.
484
+ - Registry writes through these routes run through `registry_write`, like the
485
+ service routes.
489
486
 
490
487
  ### 2026-10-25: step 1, missing routes
491
488
 
@@ -223,42 +223,11 @@ write and, after a successful write, records resource, action, row uid and the
223
223
  acting identity's uid and kind on the `apps.v1.identity` logger. No registry
224
224
  table has an author or owner column yet; when one does, the same hook supplies
225
225
  its value. Writes keep running as the Markets workload, whose `data_writer`
226
- role on `mainsequence.markets` is the single place writes are allowed; the API's
227
- policy decides who may trigger them.
228
-
229
- That policy is `apps.v1.policy.authorize_registry_write`, which `registry_write`
230
- runs before every registry write:
231
-
232
- | Acting identity | Registry writes |
233
- |---|---|
234
- | none (Markets' own Jobs, scripts, direct service calls) | allowed |
235
- | a requester-bound call (a person acting through an application) | allowed |
236
- | an Organization admin | allowed |
237
- | a person calling directly | allowed |
238
- | an application (workload identity) listed for the resource | allowed |
239
- | any other application | `403` |
240
-
241
- The allow-list is the Main Sequence Constant `MARKETS_REGISTRY_WRITERS` in the
242
- Markets deployment's Environment: a JSON object that maps a registry resource,
243
- as `registry_write` names it (`account`, `asset`, `asset-category`, `calendar`,
244
- `index`, `portfolio`, `portfolio-group`, `portfolio-signal`, `pricing-curve`,
245
- `pricing-market-data` and the resources added with the provider write routes), or
246
- `"*"`, to the User uids of the applications allowed to write it:
247
-
248
- ```json
249
- {"asset": ["<provider workload user uid>"], "*": ["<trusted workload user uid>"]}
250
- ```
251
-
252
- A missing constant allows no application. A value that is not such an object,
253
- or a constant the Markets workload cannot read, refuses every application write
254
- with `503`. Whether a caller is a person or an application is read from its
255
- User once and cached for ten minutes; the SDK caches the constant for ten
256
- minutes as well, so an edit takes effect within that time. The Markets workload
257
- needs `reader` on the constant:
258
-
259
- ```bash
260
- mainsequence constants access grant <MARKETS_REGISTRY_WRITERS constant uid> reader --user <markets workload user uid>
261
- ```
226
+ role on `mainsequence.markets` is the single place writes are allowed. Who may
227
+ trigger them is the platform's grant: an application's workload reaches the
228
+ Markets API only when its workflow grants it the `MainSequenceMarkets` branch
229
+ (see the [client guide](../../knowledge/msm/client/index.md)), and every caller
230
+ the API admits, person or application, may trigger registry writes.
262
231
 
263
232
  A requester is only present when the `markets-api` resource declares
264
233
  `acts_for_requester: true` in `.mainsequence/workflows/ms-markets-api.yaml`.
@@ -49,8 +49,7 @@ Writes (`create`, `upsert`, `update`, `delete`, `add`, `bulk_delete`,
49
49
  `create_from_pandas_calendar`, `reconcile_dataset_availability`, `upsert_many`,
50
50
  `add_many`, `create_index_curve_selection`, `upsert_index_curve_selection`,
51
51
  `publish`, `register`, `register_signal`, `unregister`, `unregister_signal`, `reconcile`, `activate_definition`,
52
- `retire_definition`) run through `registry_write`, so the registry write policy
53
- applies to applications.
52
+ `retire_definition`) run through `registry_write`, which records who made them.
54
53
  A table row class's `delete` runs the resource's service delete with its
55
54
  preflight checks and exists only for `asset`, `asset-category`, `calendar`,
56
55
  `index`, `portfolio` and `portfolio-group`. Composites that implement `delete`
@@ -67,8 +66,7 @@ the `msm_pricing.api` composites (`curve`, `curve-building-details`,
67
66
  | Status | Meaning | `error_type` |
68
67
  |---|---|---|
69
68
  | 400 | Invalid arguments | `ValueError`, `TypeError` |
70
- | 403 | The registry write policy refused this application | |
69
+ | 403 | The operation refused the acting identity | `PermissionError` or a subclass |
71
70
  | 404 | Unknown resource or operation, or the row was not found | `LookupError` |
72
71
  | 409 | The operation conflicted with existing rows | the conflict class name |
73
72
  | 501 | The operation is not offered remotely | `NotImplementedError` |
74
- | 503 | The registry write policy could not be read | |
@@ -61,14 +61,12 @@ access:
61
61
  | `MARKETS_API_RELEASE_UID` | Use this release instead of searching. |
62
62
  | `MARKETS_API_RELEASE_NAME`, `MARKETS_API_REPOSITORY_NAME` | Search for another release or repository name. |
63
63
 
64
- ## Writes And The Registry Write Policy
64
+ ## Writes
65
65
 
66
66
  Every create, upsert, update and delete runs through the Markets API's
67
- `registry_write`, so the registry write policy applies: an application may
68
- write a resource only when the Environment's `MARKETS_REGISTRY_WRITERS`
69
- constant lists its workload User uid for that resource or for `"*"`. A refused
70
- write raises `msm.api.remote.MarketsAccessError`, a `PermissionError`. See
71
- [the FastAPI guide](../../../fast_api/v1/index.md) for the constant's format.
67
+ `registry_write`, which records the acting identity on the API's audit log. Any
68
+ workload the platform admits to the Markets API may write; a refused operation
69
+ (`403`) raises `msm.api.remote.MarketsAccessError`, a `PermissionError`.
72
70
 
73
71
  A table row class's remote `delete` runs the resource's service delete, with
74
72
  its preflight checks, and exists only for `asset`, `asset-category`,
@@ -143,7 +141,6 @@ AssetSnapshots.publish([{"asset_identifier": "ACME", "time_index": as_of, "name"
143
141
  current = AssetSnapshots.latest(tickers=["ACME"])
144
142
  ```
145
143
 
146
- Their write-policy resources are `account-holdings` and `asset-snapshots`.
147
144
  `AssetSnapshots.latest` takes exactly one of `asset_identifiers`, `asset_uids`
148
145
  or `tickers` and returns each existing asset with its latest snapshot
149
146
  (`AssetSnapshotReference`: name, ticker, exchange code, snapshot time; `None`
@@ -153,7 +153,7 @@ Activating a successor closes the open predecessor at the successor's
153
153
  `valid_from`. Retired versions cannot be reactivated. `activate()` and
154
154
  `retire()` call the class methods `FormulaIndex.activate_definition(uid)` and
155
155
  `FormulaIndex.retire_definition(uid, valid_to=...)`, so they also run under the
156
- remote row backend (write-policy resource `formula-index`).
156
+ remote row backend.
157
157
 
158
158
  ## Preview Persisted Formulas
159
159
 
@@ -467,7 +467,7 @@ enters `update_hash`.
467
467
  An application on the remote row backend registers and reconciles the catalog
468
468
  with `msm_portfolios.api.datasets.PortfolioDatasets.register(...)`,
469
469
  `.reconcile(...)` and `.get(...)`, which run the services below on the Markets
470
- API (write-policy resource `portfolio-datasets`). `register` binds the
470
+ API. `register` binds the
471
471
  portfolio's current signal; `PortfolioDatasets.register_signal({"signal_uid":
472
472
  ..., "signal_meta_table_uid": ...})` binds any other signal, such as the earlier
473
473
  signals of a producer whose signal uid changes each run, after verifying the
@@ -587,8 +587,8 @@ first on a rollback. Calendar events are not copied: the engine rebuilds them.
587
587
  run the moves a provider callable returns (it receives `rollback=` when it
588
588
  accepts that argument); without `--execute` they only count.
589
589
  The operator needs `data_viewer` on the tables read, write access to the tables
590
- written (a rollback writes the core tables) and the write-policy resource
591
- `portfolio-datasets`; pause the provider's runs while a move or rollback runs.
590
+ written (a rollback writes the core tables); pause the provider's runs while a
591
+ move or rollback runs.
592
592
 
593
593
  ## Repair legacy midnight-indexed portfolio values
594
594
 
@@ -4,7 +4,7 @@
4
4
 
5
5
  Design note, drafted 2026-10-25 for [ADR 0047](../../ADR/0047-markets-api-application-boundary.md)
6
6
  decision 2 and migration path step 2. Updated 2026-10-26: the remote row
7
- backend, `msm.client` and the registry write policy are implemented, with the
7
+ backend and `msm.client` are implemented, with the
8
8
  deviations recorded in the ADR's "step 2" implementation note (per-method
9
9
  dispatch instead of a `RowBackend` protocol, mixed backends per row class,
10
10
  release name `api`). The distribution split (order of work, step 5) is not. Step 1
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "ms-markets"
7
- version = "3.0.0.dev40"
7
+ version = "3.0.1.dev41"
8
8
  description = "Financial markets ORM, engines, and application management extensions for Main Sequence."
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.13,<3.14"
@@ -75,7 +75,7 @@ WRITE_OPERATIONS = frozenset(
75
75
  }
76
76
  )
77
77
  """Operations that create, update or delete registry rows; the API wraps them in
78
- ``registry_write`` so the registry write policy applies."""
78
+ ``registry_write``, which records who made them."""
79
79
 
80
80
 
81
81
  class RemoteBackend(Protocol):
@@ -129,20 +129,3 @@ def offline_postgresql_runtime(monkeypatch):
129
129
 
130
130
  monkeypatch.setattr(metatables.runtime_context, "get_runtime_context", get_runtime_context)
131
131
  return runtime
132
-
133
-
134
- @pytest.fixture(autouse=True)
135
- def offline_registry_write_policy(monkeypatch):
136
- """Evaluate the registry write policy without the platform (ADR 0047).
137
-
138
- By default no application is on the allow-list and every caller is a
139
- person, which is how the API behaved before the policy. Policy tests replace
140
- these with ``monkeypatch``.
141
- """
142
-
143
- from apps.v1 import policy
144
-
145
- monkeypatch.setattr(
146
- policy, "load_registry_writer_policy", lambda: policy.RegistryWriterPolicy(writers={})
147
- )
148
- monkeypatch.setattr(policy, "resolve_identity_type", lambda uid: "human")
@@ -17,7 +17,6 @@ from typing import Any
17
17
  import pytest
18
18
  from fastapi.testclient import TestClient
19
19
 
20
- from apps.v1 import policy
21
20
  from apps.v1.main import app
22
21
  from msm.api.accounts import Account
23
22
  from msm.api.assets import Asset, AssetCategory, CurrencySpot
@@ -218,28 +217,6 @@ def test_validation_errors_come_back_as_value_errors(remote) -> None:
218
217
  Asset.upsert(asset_type="equity")
219
218
 
220
219
 
221
- def test_the_write_policy_applies_to_remote_writes(monkeypatch, remote) -> None:
222
- monkeypatch.setattr(policy, "resolve_identity_type", lambda uid: "workload")
223
- monkeypatch.setattr(
224
- "msm.repositories.crud.upsert_model",
225
- lambda *args, **kwargs: pytest.fail("a refused write must not reach the runtime"),
226
- )
227
-
228
- with pytest.raises(MarketsAccessError, match="MARKETS_REGISTRY_WRITERS"):
229
- Asset.upsert(unique_identifier="ACME")
230
- assert isinstance(MarketsAccessError("x"), PermissionError)
231
-
232
-
233
- def test_reads_are_not_subject_to_the_write_policy(monkeypatch, remote) -> None:
234
- monkeypatch.setattr(policy, "resolve_identity_type", lambda uid: "workload")
235
- monkeypatch.setattr(
236
- "msm.repositories.crud.get_model_by_uid",
237
- lambda context, *, model, uid: {"rows": []},
238
- )
239
-
240
- assert Asset.get_by_uid(uuid.uuid4()) is None
241
-
242
-
243
220
  def test_start_engine_attaches_nothing_under_the_remote_backend(monkeypatch, remote) -> None:
244
221
  monkeypatch.setattr(
245
222
  "msm.bootstrap.start_engine",
@@ -410,15 +387,20 @@ def test_holdings_and_snapshots_publish_through_markets(monkeypatch, remote) ->
410
387
  ("formula-index", "retire_definition", {"definition_uid": str(uuid.uuid4())}),
411
388
  ],
412
389
  )
413
- def test_every_publication_and_catalog_write_is_policy_checked(
390
+ def test_every_publication_and_catalog_write_is_a_registry_write(
414
391
  monkeypatch, remote, resource, operation, arguments
415
392
  ) -> None:
416
393
  from msm.api.remote import WRITE_OPERATIONS
417
394
 
418
- monkeypatch.setattr(policy, "resolve_identity_type", lambda uid: "workload")
395
+ def resolve() -> None:
396
+ raise PermissionError("registry_write resolved the acting identity")
397
+
398
+ # registry_write resolves the acting identity before the operation runs; the
399
+ # refusal comes back as the client's PermissionError.
400
+ monkeypatch.setattr("apps.v1.identity.acting_identity", resolve)
419
401
 
420
402
  assert operation in WRITE_OPERATIONS
421
- with pytest.raises(MarketsAccessError, match="MARKETS_REGISTRY_WRITERS"):
403
+ with pytest.raises(MarketsAccessError, match="registry_write resolved the acting identity"):
422
404
  remote.client.run_row_operation(resource, operation, arguments)
423
405
 
424
406
 
@@ -1,191 +0,0 @@
1
- """ADR 0047, decision 3: who may trigger a registry write.
2
-
3
- Applications (workload identities) write registry rows only when the
4
- ``MARKETS_REGISTRY_WRITERS`` constant lists them for the resource; people,
5
- requester-bound calls, Organization admins and calls without a request keep
6
- working as before.
7
- """
8
-
9
- from __future__ import annotations
10
-
11
- import uuid
12
- from types import SimpleNamespace
13
-
14
- import pytest
15
- from fastapi.testclient import TestClient
16
- from mainsequence.server.caller_assertions import ASSERTION_HEADER
17
-
18
- from apps.v1 import policy
19
- from apps.v1.identity import ActingIdentity, registry_write
20
- from apps.v1.main import app
21
-
22
- # Captured at import, before the autouse fixture in tests/conftest.py stubs them.
23
- REAL_LOAD_POLICY = policy.load_registry_writer_policy
24
- REAL_RESOLVE_IDENTITY_TYPE = policy.resolve_identity_type
25
-
26
- APPLICATION_UID = "7d0c8e1a-2b3c-4d5e-8f9a-0b1c2d3e4f5a"
27
- OTHER_APPLICATION_UID = "8e1d9f2b-3c4d-4e5f-9a0b-1c2d3e4f5a6b"
28
-
29
-
30
- def _use(monkeypatch, *, writers: dict, identity_types: dict | None = None) -> None:
31
- monkeypatch.setattr(
32
- policy,
33
- "load_registry_writer_policy",
34
- lambda: policy.RegistryWriterPolicy.from_value(writers),
35
- )
36
- types = identity_types or {}
37
- monkeypatch.setattr(policy, "resolve_identity_type", lambda uid: types.get(uid, "human"))
38
-
39
-
40
- def _caller(uid: str, **kwargs) -> ActingIdentity:
41
- return ActingIdentity(uid=uid, kind="caller", **kwargs)
42
-
43
-
44
- def test_an_application_needs_an_allow_list_entry(monkeypatch) -> None:
45
- _use(
46
- monkeypatch,
47
- writers={"asset": [APPLICATION_UID]},
48
- identity_types={APPLICATION_UID: "workload", OTHER_APPLICATION_UID: "workload"},
49
- )
50
-
51
- policy.authorize_registry_write("asset", "create", _caller(APPLICATION_UID))
52
- with pytest.raises(policy.RegistryWriteForbidden, match="MARKETS_REGISTRY_WRITERS"):
53
- policy.authorize_registry_write("portfolio", "create", _caller(APPLICATION_UID))
54
- with pytest.raises(policy.RegistryWriteForbidden):
55
- policy.authorize_registry_write("asset", "create", _caller(OTHER_APPLICATION_UID))
56
-
57
-
58
- def test_the_wildcard_entry_covers_every_resource(monkeypatch) -> None:
59
- _use(
60
- monkeypatch,
61
- writers={"*": [APPLICATION_UID]},
62
- identity_types={APPLICATION_UID: "workload"},
63
- )
64
-
65
- policy.authorize_registry_write("portfolio", "update", _caller(APPLICATION_UID))
66
- policy.authorize_registry_write("index", "create", _caller(APPLICATION_UID))
67
-
68
-
69
- def test_people_requesters_admins_and_direct_calls_are_not_restricted(monkeypatch) -> None:
70
- _use(monkeypatch, writers={}, identity_types={APPLICATION_UID: "workload"})
71
-
72
- policy.authorize_registry_write("asset", "create", None)
73
- policy.authorize_registry_write("asset", "create", _caller("a-person"))
74
- policy.authorize_registry_write(
75
- "asset", "create", ActingIdentity(uid="a-person", kind="requester")
76
- )
77
- policy.authorize_registry_write(
78
- "asset", "create", _caller(APPLICATION_UID, is_organization_admin=True)
79
- )
80
-
81
-
82
- def test_an_allow_listed_caller_needs_no_user_lookup(monkeypatch) -> None:
83
- monkeypatch.setattr(
84
- policy,
85
- "load_registry_writer_policy",
86
- lambda: policy.RegistryWriterPolicy.from_value({"asset": [APPLICATION_UID]}),
87
- )
88
-
89
- def lookup(_uid):
90
- raise AssertionError("an allow-listed caller must not need a User lookup")
91
-
92
- monkeypatch.setattr(policy, "resolve_identity_type", lookup)
93
-
94
- policy.authorize_registry_write("asset", "create", _caller(APPLICATION_UID))
95
-
96
-
97
- @pytest.mark.parametrize(
98
- "value",
99
- ['{"asset": "not-a-list"}', "[1, 2]", "{not json", '{"asset": 7}'],
100
- )
101
- def test_a_malformed_allow_list_fails_closed(value) -> None:
102
- with pytest.raises(policy.RegistryWritePolicyError):
103
- policy.RegistryWriterPolicy.from_value(value)
104
-
105
-
106
- def test_missing_constant_allows_no_application(monkeypatch) -> None:
107
- from mainsequence.client import Constant
108
- from mainsequence.client.utils import DoesNotExist
109
-
110
- def missing(_name):
111
- raise DoesNotExist("no constant")
112
-
113
- monkeypatch.setattr(Constant, "get_value", classmethod(lambda cls, name: missing(name)))
114
-
115
- assert REAL_LOAD_POLICY().writers == {}
116
-
117
-
118
- def test_an_unreachable_constant_fails_closed(monkeypatch) -> None:
119
- from mainsequence.client import Constant
120
-
121
- def unreachable(cls, name):
122
- raise ConnectionError("platform unreachable")
123
-
124
- monkeypatch.setattr(Constant, "get_value", classmethod(unreachable))
125
-
126
- with pytest.raises(policy.RegistryWritePolicyError, match="ConnectionError"):
127
- REAL_LOAD_POLICY()
128
-
129
-
130
- def test_identity_type_is_read_once_and_cached(monkeypatch) -> None:
131
- from mainsequence.client.models_user import User
132
-
133
- calls: list[str] = []
134
-
135
- def get_by_uid(uid):
136
- calls.append(uid)
137
- return SimpleNamespace(identity_type="workload")
138
-
139
- monkeypatch.setattr(User, "get_by_uid", classmethod(lambda cls, uid: get_by_uid(uid)))
140
- policy.clear_identity_type_cache()
141
-
142
- assert REAL_RESOLVE_IDENTITY_TYPE(APPLICATION_UID) == "workload"
143
- assert REAL_RESOLVE_IDENTITY_TYPE(APPLICATION_UID) == "workload"
144
- assert calls == [APPLICATION_UID]
145
- policy.clear_identity_type_cache()
146
-
147
-
148
- def test_registry_write_refuses_before_the_service_runs(monkeypatch) -> None:
149
- _use(monkeypatch, writers={}, identity_types={APPLICATION_UID: "workload"})
150
- monkeypatch.setattr(
151
- "apps.v1.identity.acting_identity", lambda: _caller(APPLICATION_UID)
152
- )
153
- ran: list[bool] = []
154
-
155
- @registry_write("asset", "create")
156
- def create_asset():
157
- ran.append(True)
158
-
159
- with pytest.raises(policy.RegistryWriteForbidden):
160
- create_asset()
161
- assert ran == []
162
-
163
-
164
- def test_a_refused_write_returns_403(monkeypatch, caller_assertions) -> None:
165
- _use(monkeypatch, writers={}, identity_types={APPLICATION_UID: "workload"})
166
- monkeypatch.setattr(
167
- "apps.v1.services.portfolios._get_runtime",
168
- lambda: pytest.fail("a refused write must not reach the runtime"),
169
- )
170
-
171
- response = TestClient(app).delete(
172
- f"/api/v1/portfolio/{uuid.uuid4()}/",
173
- headers={ASSERTION_HEADER: caller_assertions.sign(APPLICATION_UID)},
174
- )
175
-
176
- assert response.status_code == 403
177
- assert "MARKETS_REGISTRY_WRITERS" in response.json()["detail"]
178
-
179
-
180
- def test_an_unreadable_policy_returns_503(monkeypatch, caller_assertions) -> None:
181
- def broken():
182
- raise policy.RegistryWritePolicyError("constant service unavailable")
183
-
184
- monkeypatch.setattr(policy, "load_registry_writer_policy", broken)
185
-
186
- response = TestClient(app).delete(
187
- f"/api/v1/portfolio/{uuid.uuid4()}/",
188
- headers={ASSERTION_HEADER: caller_assertions.sign(APPLICATION_UID)},
189
- )
190
-
191
- assert response.status_code == 503