ms-markets 2.2.3.dev12__tar.gz → 2.2.4__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 (723) hide show
  1. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/CHANGELOG.md +34 -4
  2. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/PKG-INFO +4 -4
  3. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/README.md +2 -2
  4. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/docs/fast_api/v1/command_center_bulk_actions.md +15 -7
  5. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/docs/fast_api/v1/index.md +1 -1
  6. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/docs/getting-started.md +1 -1
  7. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/docs/knowledge/msm/platform/metatable_migrations.md +1 -1
  8. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/pyproject.toml +2 -2
  9. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/api/http/bulk_actions.py +20 -10
  10. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/api/http/table_impact.py +1 -1
  11. ms_markets-2.2.4/tests/msm/fastapi/v1/test_bulk_action_contracts.py +150 -0
  12. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm/fastapi/v1/test_bulk_actions.py +2 -2
  13. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm/services/test_table_impact.py +5 -10
  14. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm/test_package_metadata.py +2 -2
  15. ms_markets-2.2.3.dev12/tests/msm/fastapi/v1/test_bulk_action_contracts.py +0 -71
  16. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/.agents/skills/ms_markets/accounts/account_workflow/SKILL.md +0 -0
  17. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/.agents/skills/ms_markets/accounts/valuation_resolver/SKILL.md +0 -0
  18. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/.agents/skills/ms_markets/assets/asset_indexed_data_nodes/SKILL.md +0 -0
  19. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/.agents/skills/ms_markets/assets/asset_model_extension/SKILL.md +0 -0
  20. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/.agents/skills/ms_markets/indices/index_workflow/SKILL.md +0 -0
  21. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/.agents/skills/ms_markets/platform/bootstrap_registration/SKILL.md +0 -0
  22. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/.agents/skills/ms_markets/platform/metatable_migrations/SKILL.md +0 -0
  23. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/.agents/skills/ms_markets/portfolios/portfolio_workflow/SKILL.md +0 -0
  24. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/.agents/skills/ms_markets/portfolios/portfolio_workflow/references/position_accounting.md +0 -0
  25. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/.agents/skills/ms_markets/pricing/fixed_income_curve_building/SKILL.md +0 -0
  26. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/.agents/skills/ms_markets/pricing/general_pricing/SKILL.md +0 -0
  27. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/.gitignore +0 -0
  28. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/LICENSE +0 -0
  29. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/docs/ADR/0005-pricing-package-refactor.md +0 -0
  30. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/docs/ADR/0006-asset-package-boundary.md +0 -0
  31. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/docs/ADR/0008-metatable-table-and-api-model-split.md +0 -0
  32. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/docs/ADR/0019-msm-portfolios-package-boundary.md +0 -0
  33. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/docs/ADR/0022-alembic-metatable-migration-alignment.md +0 -0
  34. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/docs/ADR/0023-deterministic-alembic-naming.md +0 -0
  35. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/docs/ADR/0024-namespace-scoped-alembic-version-locations.md +0 -0
  36. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/docs/ADR/0025-direct-metatable-runtime-binding.md +0 -0
  37. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/docs/ADR/0026-explicit-pricing-market-data-sets.md +0 -0
  38. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/docs/ADR/0027-account-target-position-portfolio-exposure.md +0 -0
  39. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/docs/ADR/0028-core-calendar-reference-data.md +0 -0
  40. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/docs/ADR/0029-account-holdings-virtual-fund-allocation-policy.md +0 -0
  41. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/docs/ADR/0030-explicit-portfolio-price-source-dependency.md +0 -0
  42. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/docs/ADR/0031-generic-portfolio-valuation-source.md +0 -0
  43. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/docs/ADR/0032-portfolio-group-many-to-many.md +0 -0
  44. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/docs/ADR/0033-pricing-valuation-position-boundary.md +0 -0
  45. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/docs/ADR/0034-command-center-asset-monitor-helpers.md +0 -0
  46. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/docs/ADR/0035-pricing-curve-identity-and-market-data-curve-bindings.md +0 -0
  47. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/docs/ADR/0036-prepared-pricing-valuation-context.md +0 -0
  48. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/docs/ADR/0037-index-formula-and-custom-calculation-framework.md +0 -0
  49. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/docs/ADR/0038-index-user-api-and-fastapi-exploration.md +0 -0
  50. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/docs/ADR/0039-sdk-8-hard-cut-and-1-0-package-contract.md +0 -0
  51. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/docs/ADR/0040-portfolio-temporal-ownership.md +0 -0
  52. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/docs/ADR/0041-installable-provider-http-toolkit.md +0 -0
  53. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/docs/ADR/0042-position-cash-flow-portfolio-accounting.md +0 -0
  54. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/docs/ADR/0043-sdk-9-metatables-client-hard-cut.md +0 -0
  55. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/docs/ADR/0044-namespaced-migration-provider-package.md +0 -0
  56. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/docs/ADR/0045-squashed-initial-schema-and-namespaced-packages.md +0 -0
  57. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/docs/ADR/README.md +0 -0
  58. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/docs/ADR/fast_api/v1/0001-calendar-crud-route.md +0 -0
  59. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/docs/ADR/fast_api/v1/0002-command-center-adapter-discovery.md +0 -0
  60. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/docs/ADR/fast_api/v1/0003-fixed-income-pricer-api.md +0 -0
  61. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/docs/ADR/fast_api/v1/0004-delete-impact-contract.md +0 -0
  62. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/docs/changelog.md +0 -0
  63. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/docs/concepts.md +0 -0
  64. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/docs/fast_api/v1/accounts.md +0 -0
  65. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/docs/fast_api/v1/assets.md +0 -0
  66. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/docs/fast_api/v1/calendars.md +0 -0
  67. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/docs/fast_api/v1/fixed_income_pricer.md +0 -0
  68. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/docs/fast_api/v1/indexes.md +0 -0
  69. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/docs/fast_api/v1/portfolio.md +0 -0
  70. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/docs/fast_api/v1/portfolio_groups.md +0 -0
  71. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/docs/fast_api/v1/portfolio_signal_metadata.md +0 -0
  72. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/docs/fast_api/v1/pricing_curves.md +0 -0
  73. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/docs/fast_api/v1/pricing_market_data.md +0 -0
  74. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/docs/fast_api/v1/provider_adapter_toolkit.md +0 -0
  75. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/docs/fast_api/v1/resource_contracts.md +0 -0
  76. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/docs/fast_api/v1/settings.md +0 -0
  77. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/docs/fast_api/v1/virtualfund.md +0 -0
  78. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/docs/img/main-sequence-markets/main_sequence_markets_alternate_lockup_black_bg.png +0 -0
  79. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/docs/img/main-sequence-markets/main_sequence_markets_alternate_lockup_transparent.png +0 -0
  80. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/docs/img/main-sequence-markets/main_sequence_markets_icon_emblem_black_bg.png +0 -0
  81. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/docs/img/main-sequence-markets/main_sequence_markets_icon_emblem_transparent.png +0 -0
  82. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/docs/img/main-sequence-markets/main_sequence_markets_market_mark_only_black_bg.png +0 -0
  83. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/docs/img/main-sequence-markets/main_sequence_markets_market_mark_only_transparent.png +0 -0
  84. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/docs/img/main-sequence-markets/main_sequence_markets_primary_wordmark_black_bg.png +0 -0
  85. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/docs/img/main-sequence-markets/main_sequence_markets_primary_wordmark_transparent.png +0 -0
  86. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/docs/index.md +0 -0
  87. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/docs/knowledge/msm/accounts/index.md +0 -0
  88. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/docs/knowledge/msm/accounts/virtual_funds.md +0 -0
  89. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/docs/knowledge/msm/assets/asset_indexed_data_nodes.md +0 -0
  90. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/docs/knowledge/msm/assets/bonds.md +0 -0
  91. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/docs/knowledge/msm/assets/currency.md +0 -0
  92. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/docs/knowledge/msm/assets/index.md +0 -0
  93. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/docs/knowledge/msm/calendars/index.md +0 -0
  94. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/docs/knowledge/msm/client/index.md +0 -0
  95. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/docs/knowledge/msm/derivatives/futures.md +0 -0
  96. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/docs/knowledge/msm/derivatives/index.md +0 -0
  97. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/docs/knowledge/msm/execution/index.md +0 -0
  98. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/docs/knowledge/msm/index.md +0 -0
  99. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/docs/knowledge/msm/indices/formula_indexes.md +0 -0
  100. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/docs/knowledge/msm/indices/index.md +0 -0
  101. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/docs/knowledge/msm/migrations/index.md +0 -0
  102. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/docs/knowledge/msm/models/index.md +0 -0
  103. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/docs/knowledge/msm/platform/index.md +0 -0
  104. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/docs/knowledge/msm/platform/meta_table_registration.md +0 -0
  105. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/docs/knowledge/msm/repositories/index.md +0 -0
  106. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/docs/knowledge/msm/services/index.md +0 -0
  107. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/docs/knowledge/msm_portfolios/index.md +0 -0
  108. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/docs/knowledge/msm_portfolios/portfolios/accounting.md +0 -0
  109. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/docs/knowledge/msm_portfolios/portfolios/index.md +0 -0
  110. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/docs/knowledge/msm_pricing/analytics.md +0 -0
  111. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/docs/knowledge/msm_pricing/curves.md +0 -0
  112. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/docs/knowledge/msm_pricing/fixings.md +0 -0
  113. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/docs/knowledge/msm_pricing/index.md +0 -0
  114. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/docs/knowledge/msm_pricing/instruments.md +0 -0
  115. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/docs/knowledge/msm_pricing/market_data_sets.md +0 -0
  116. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/docs/knowledge/msm_pricing/runtime_resolution.md +0 -0
  117. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/docs/knowledge/msm_pricing/scenarios/curves.md +0 -0
  118. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/docs/knowledge/msm_pricing/scenarios/index.md +0 -0
  119. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/docs/knowledge/msm_pricing/scenarios/valuation.md +0 -0
  120. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/docs/planning/implementation_tasks/benchmark_curve_resolution_plan.md +0 -0
  121. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/docs/planning/implementation_tasks/bond_helper_curve_reconstruction_upstream_plan.md +0 -0
  122. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/docs/planning/implementation_tasks/cross_currency_helper_curve_reconstruction_upstream_plan.md +0 -0
  123. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/docs/planning/implementation_tasks/generic_curve_reconstruction_upstream_plan.md +0 -0
  124. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/docs/planning/implementation_tasks/generic_valuation_scenario_workflow_plan.md +0 -0
  125. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/docs/planning/implementation_tasks/index_formula_and_custom_calculation_plan.md +0 -0
  126. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/docs/planning/implementation_tasks/python_3_13_mainsequence_5_upgrade_plan.md +0 -0
  127. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/docs/planning/implementation_tasks/reusable_valuation_portfolio_scenario_analytics_plan.md +0 -0
  128. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/docs/reference/index.md +0 -0
  129. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/docs/reference/indices.md +0 -0
  130. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/docs/releasing.md +0 -0
  131. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/docs/stylesheets/custom.css +0 -0
  132. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/docs/tutorial/01-assets.md +0 -0
  133. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/docs/tutorial/02-calendars.md +0 -0
  134. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/docs/tutorial/03-accounts.md +0 -0
  135. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/docs/tutorial/04-portfolios.md +0 -0
  136. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/docs/tutorial/05-pricing.md +0 -0
  137. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/docs/tutorial/06-index-formulas.md +0 -0
  138. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/docs/tutorial/index.md +0 -0
  139. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/examples/__init__.py +0 -0
  140. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/examples/msm/__init__.py +0 -0
  141. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/examples/msm/accounts/__init__.py +0 -0
  142. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/examples/msm/accounts/account_portfolio_full_workflow.py +0 -0
  143. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/examples/msm/accounts/account_virtual_fund_allocation_example.py +0 -0
  144. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/examples/msm/accounts/utils/__init__.py +0 -0
  145. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/examples/msm/accounts/utils/reference_data.py +0 -0
  146. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/examples/msm/assets/__init__.py +0 -0
  147. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/examples/msm/assets/asset_category_workflow.py +0 -0
  148. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/examples/msm/assets/asset_crud_workflow.py +0 -0
  149. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/examples/msm/assets/asset_type_constants.py +0 -0
  150. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/examples/msm/assets/bond_workflow.py +0 -0
  151. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/examples/msm/assets/currency_spot_workflow.py +0 -0
  152. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/examples/msm/assets/derivatives/__init__.py +0 -0
  153. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/examples/msm/assets/derivatives/crypto_future_without_figi.py +0 -0
  154. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/examples/msm/assets/derivatives/index_future_from_openfigi.py +0 -0
  155. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/examples/msm/assets/us_treasury_bond_workflow.py +0 -0
  156. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/examples/msm/assets/utils/__init__.py +0 -0
  157. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/examples/msm/assets/utils/reference_data.py +0 -0
  158. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/examples/msm/calendars/__init__.py +0 -0
  159. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/examples/msm/calendars/calendar_materialization_workflow.py +0 -0
  160. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/examples/msm/http_provider_contracts.py +0 -0
  161. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/examples/msm/indices/__init__.py +0 -0
  162. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/examples/msm/indices/delta_hedged_option_index.py +0 -0
  163. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/examples/msm/indices/extension_owned_index_storage.py +0 -0
  164. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/examples/msm/indices/formula_index.py +0 -0
  165. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/examples/msm/indices/index_values_frequency_migration.py +0 -0
  166. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/examples/msm/indices/plain_index_values.py +0 -0
  167. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/examples/msm/platform/__init__.py +0 -0
  168. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/examples/msm/platform/bootstrap.py +0 -0
  169. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/examples/msm/platform/custom_asset_details_extension.py +0 -0
  170. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/examples/msm/platform/inspect_markets_metatable_models.py +0 -0
  171. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/examples/msm/platform/metatable_migration_lifecycle.py +0 -0
  172. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/examples/msm/workflows/__init__.py +0 -0
  173. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/examples/msm/workflows/asset_category_workflow.py +0 -0
  174. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/examples/msm_portfolios/portfolio_cashflows_and_fx_valuation_example.py +0 -0
  175. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/examples/msm_portfolios/portfolio_custom_cashflow_model_example.py +0 -0
  176. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/examples/msm_portfolios/portfolio_custom_valuation_column_example.py +0 -0
  177. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/examples/msm_portfolios/portfolio_equal_weights_config.py +0 -0
  178. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/examples/msm_portfolios/portfolio_equal_weights_dynamic_migration.py +0 -0
  179. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/examples/msm_portfolios/portfolio_equal_weights_example.py +0 -0
  180. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/examples/msm_portfolios/portfolio_equal_weights_prepare_schema.py +0 -0
  181. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/examples/msm_portfolios/portfolio_equal_weights_run.py +0 -0
  182. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/examples/msm_portfolios/portfolio_groups_example.py +0 -0
  183. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/examples/msm_portfolios/portfolio_midnight_timestamp_repair.py +0 -0
  184. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/examples/msm_portfolios/portfolio_perpetual_funding_example.py +0 -0
  185. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/examples/msm_portfolios/portfolio_read_services.py +0 -0
  186. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/examples/msm_portfolios/portfolio_trailing_adv_participation_example.py +0 -0
  187. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/examples/msm_portfolios/portfolio_trailing_adv_participation_preview.py +0 -0
  188. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/examples/msm_pricing/__init__.py +0 -0
  189. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/examples/msm_pricing/bond_pricing_example/README.md +0 -0
  190. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/examples/msm_pricing/bond_pricing_example/__init__.py +0 -0
  191. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/examples/msm_pricing/bond_pricing_example/main.py +0 -0
  192. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/examples/msm_pricing/bond_terms.py +0 -0
  193. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/examples/msm_pricing/curve_reconstruction.py +0 -0
  194. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/examples/msm_pricing/curve_scenario.py +0 -0
  195. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/examples/msm_pricing/fixed_income_spread_analytics.py +0 -0
  196. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/examples/msm_pricing/import_pricing_runtime.py +0 -0
  197. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/examples/msm_pricing/instrument_identity_boundary.py +0 -0
  198. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/examples/msm_pricing/pricing_registry_rows.py +0 -0
  199. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/examples/msm_pricing/pricing_valuation_context.py +0 -0
  200. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/examples/msm_pricing/resolved_curve_scenario.py +0 -0
  201. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/examples/msm_pricing/utils/__init__.py +0 -0
  202. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/examples/msm_pricing/utils/mock_market_data.py +0 -0
  203. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/examples/msm_pricing/valuation_inputs.py +0 -0
  204. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/examples/msm_pricing/valuation_scenario_workflow.py +0 -0
  205. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/mkdocs.yml +0 -0
  206. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/__init__.py +0 -0
  207. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/analytics/__init__.py +0 -0
  208. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/analytics/indices/__init__.py +0 -0
  209. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/analytics/indices/contracts.py +0 -0
  210. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/analytics/indices/engine.py +0 -0
  211. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/analytics/indices/spreads.py +0 -0
  212. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/api/__init__.py +0 -0
  213. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/api/accounts.py +0 -0
  214. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/api/assets.py +0 -0
  215. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/api/base.py +0 -0
  216. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/api/calendars/__init__.py +0 -0
  217. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/api/calendars/_validation.py +0 -0
  218. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/api/calendars/core.py +0 -0
  219. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/api/calendars/dates.py +0 -0
  220. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/api/calendars/events.py +0 -0
  221. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/api/calendars/sessions.py +0 -0
  222. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/api/derivatives.py +0 -0
  223. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/api/execution.py +0 -0
  224. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/api/formula_indices.py +0 -0
  225. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/api/http/__init__.py +0 -0
  226. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/api/http/_base.py +0 -0
  227. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/api/http/collections.py +0 -0
  228. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/api/http/discovery.py +0 -0
  229. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/api/http/errors.py +0 -0
  230. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/api/http/operations.py +0 -0
  231. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/api/http/tabular.py +0 -0
  232. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/api/indices.py +0 -0
  233. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/api/issuers.py +0 -0
  234. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/api/portfolios.py +0 -0
  235. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/api/virtual_funds.py +0 -0
  236. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/base.py +0 -0
  237. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/bootstrap.py +0 -0
  238. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/constants.py +0 -0
  239. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/data_nodes/__init__.py +0 -0
  240. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/data_nodes/accounts/__init__.py +0 -0
  241. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/data_nodes/accounts/constants.py +0 -0
  242. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/data_nodes/accounts/storage.py +0 -0
  243. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/data_nodes/accounts/virtual_funds/__init__.py +0 -0
  244. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/data_nodes/accounts/virtual_funds/storage.py +0 -0
  245. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/data_nodes/assets/__init__.py +0 -0
  246. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/data_nodes/assets/asset_indexed.py +0 -0
  247. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/data_nodes/assets/snapshots.py +0 -0
  248. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/data_nodes/assets/storage.py +0 -0
  249. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/data_nodes/execution/__init__.py +0 -0
  250. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/data_nodes/execution/storage.py +0 -0
  251. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/data_nodes/indices/__init__.py +0 -0
  252. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/data_nodes/indices/formula.py +0 -0
  253. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/data_nodes/indices/storage.py +0 -0
  254. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/data_nodes/indices/timestamped.py +0 -0
  255. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/data_nodes/indices/values.py +0 -0
  256. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/data_nodes/utils/__init__.py +0 -0
  257. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/data_nodes/utils/namespaces.py +0 -0
  258. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/data_nodes/utils/output_metadata.py +0 -0
  259. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/data_nodes/utils/stamped.py +0 -0
  260. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/data_nodes/utils/storage_schema.py +0 -0
  261. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/data_nodes/utils/time.py +0 -0
  262. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/migrations/__init__.py +0 -0
  263. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/models/__init__.py +0 -0
  264. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/models/accounts/__init__.py +0 -0
  265. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/models/accounts/allocation_models.py +0 -0
  266. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/models/accounts/core.py +0 -0
  267. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/models/accounts/groups.py +0 -0
  268. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/models/accounts/virtual_funds.py +0 -0
  269. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/models/assets/__init__.py +0 -0
  270. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/models/assets/bonds.py +0 -0
  271. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/models/assets/categories.py +0 -0
  272. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/models/assets/core.py +0 -0
  273. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/models/assets/currency_spot.py +0 -0
  274. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/models/assets/provider_details.py +0 -0
  275. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/models/assets/types.py +0 -0
  276. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/models/calendars/__init__.py +0 -0
  277. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/models/calendars/core.py +0 -0
  278. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/models/calendars/dates.py +0 -0
  279. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/models/calendars/events.py +0 -0
  280. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/models/calendars/sessions.py +0 -0
  281. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/models/derivatives.py +0 -0
  282. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/models/execution.py +0 -0
  283. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/models/index_dataset_availability.py +0 -0
  284. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/models/index_formulas.py +0 -0
  285. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/models/indices.py +0 -0
  286. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/models/issuers.py +0 -0
  287. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/models/portfolios/__init__.py +0 -0
  288. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/models/portfolios/core.py +0 -0
  289. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/models/portfolios/groups.py +0 -0
  290. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/models/portfolios/signals.py +0 -0
  291. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/models/registration.py +0 -0
  292. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/py.typed +0 -0
  293. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/repositories/__init__.py +0 -0
  294. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/repositories/account_allocation_models.py +0 -0
  295. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/repositories/account_groups.py +0 -0
  296. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/repositories/accounts.py +0 -0
  297. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/repositories/asset_categories.py +0 -0
  298. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/repositories/assets.py +0 -0
  299. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/repositories/base.py +0 -0
  300. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/repositories/calendars/__init__.py +0 -0
  301. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/repositories/calendars/core.py +0 -0
  302. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/repositories/calendars/dates.py +0 -0
  303. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/repositories/calendars/events.py +0 -0
  304. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/repositories/calendars/sessions.py +0 -0
  305. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/repositories/crud.py +0 -0
  306. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/repositories/execution.py +0 -0
  307. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/repositories/indices.py +0 -0
  308. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/repositories/portfolios.py +0 -0
  309. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/repositories/provider_details.py +0 -0
  310. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/repositories/virtual_funds.py +0 -0
  311. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/services/__init__.py +0 -0
  312. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/services/accounts/__init__.py +0 -0
  313. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/services/accounts/account_virtual_allocations.py +0 -0
  314. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/services/accounts/core.py +0 -0
  315. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/services/accounts/virtual_fund_holdings.py +0 -0
  316. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/services/accounts/virtual_funds.py +0 -0
  317. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/services/accounts/virtual_funds_public_api.py +0 -0
  318. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/services/asset_categories.py +0 -0
  319. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/services/asset_master_lists.py +0 -0
  320. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/services/assets/__init__.py +0 -0
  321. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/services/assets/open_figi_lists/market_sector.json +0 -0
  322. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/services/assets/open_figi_lists/security_type.json +0 -0
  323. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/services/assets/open_figi_lists/security_type_2.json +0 -0
  324. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/services/assets/openfigi.py +0 -0
  325. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/services/assets/reference_details.py +0 -0
  326. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/services/calendars/__init__.py +0 -0
  327. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/services/calendars/materialization.py +0 -0
  328. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/services/calendars/pandas_market.py +0 -0
  329. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/services/calendars/records.py +0 -0
  330. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/services/calendars/validation.py +0 -0
  331. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/services/execution.py +0 -0
  332. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/services/holdings.py +0 -0
  333. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/services/indices/__init__.py +0 -0
  334. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/services/indices/actors.py +0 -0
  335. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/services/indices/availability.py +0 -0
  336. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/services/indices/catalog.py +0 -0
  337. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/services/indices/contracts.py +0 -0
  338. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/services/indices/delete_impact.py +0 -0
  339. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/services/indices/relationships.py +0 -0
  340. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/services/portfolios.py +0 -0
  341. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/services/provider_details.py +0 -0
  342. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/services/public_api_settings.py +0 -0
  343. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/services/reference_data.py +0 -0
  344. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/services/related_meta_tables.py +0 -0
  345. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/services/table_impact.py +0 -0
  346. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/services/target_positions.py +0 -0
  347. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm/settings.py +0 -0
  348. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_cli/__init__.py +0 -0
  349. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_cli/main.py +0 -0
  350. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_migrations/__init__.py +0 -0
  351. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_migrations/env.py +0 -0
  352. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_migrations/registry.py +0 -0
  353. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_migrations/script.py.mako +0 -0
  354. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_migrations/versions/__init__.py +0 -0
  355. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_migrations/versions/mainsequence_examples/__init__.py +0 -0
  356. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_migrations/versions/mainsequence_markets/0018_initial_schema.py +0 -0
  357. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_migrations/versions/mainsequence_markets/__init__.py +0 -0
  358. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_portfolios/__init__.py +0 -0
  359. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_portfolios/accounting/__init__.py +0 -0
  360. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_portfolios/accounting/configuration.py +0 -0
  361. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_portfolios/accounting/contracts.py +0 -0
  362. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_portfolios/accounting/lifecycle.py +0 -0
  363. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_portfolios/accounting/projections.py +0 -0
  364. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_portfolios/accounting/reducer.py +0 -0
  365. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_portfolios/accounting/valuation.py +0 -0
  366. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_portfolios/api/__init__.py +0 -0
  367. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_portfolios/api/market_metadata.py +0 -0
  368. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_portfolios/api/portfolios.py +0 -0
  369. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_portfolios/asset_scope.py +0 -0
  370. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_portfolios/bootstrap.py +0 -0
  371. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_portfolios/configuration.py +0 -0
  372. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_portfolios/contrib/__init__.py +0 -0
  373. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_portfolios/contrib/prices/__init__.py +0 -0
  374. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_portfolios/contrib/prices/data_nodes.py +0 -0
  375. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_portfolios/contrib/prices/utils.py +0 -0
  376. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_portfolios/contrib/signals/__init__.py +0 -0
  377. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_portfolios/contrib/signals/external_weights.py +0 -0
  378. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_portfolios/contrib/signals/fixed_weights.py +0 -0
  379. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_portfolios/contrib/signals/intraday_trend.py +0 -0
  380. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_portfolios/contrib/signals/market_cap.py +0 -0
  381. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_portfolios/contrib/signals/portfolio_replicator.py +0 -0
  382. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_portfolios/contrib/signals/regression_utils.py +0 -0
  383. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_portfolios/data_nodes/__init__.py +0 -0
  384. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_portfolios/data_nodes/base.py +0 -0
  385. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_portfolios/data_nodes/constants.py +0 -0
  386. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_portfolios/data_nodes/metadata.py +0 -0
  387. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_portfolios/data_nodes/portfolio_identity.py +0 -0
  388. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_portfolios/data_nodes/portfolios/__init__.py +0 -0
  389. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_portfolios/data_nodes/portfolios/accounting.py +0 -0
  390. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_portfolios/data_nodes/portfolios/analytics.py +0 -0
  391. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_portfolios/data_nodes/portfolios/calendar_events.py +0 -0
  392. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_portfolios/data_nodes/portfolios/rebalance.py +0 -0
  393. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_portfolios/data_nodes/portfolios/storage.py +0 -0
  394. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_portfolios/data_nodes/portfolios/temporal.py +0 -0
  395. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_portfolios/data_nodes/portfolios/weights.py +0 -0
  396. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_portfolios/data_nodes/prices/__init__.py +0 -0
  397. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_portfolios/data_nodes/prices/storage.py +0 -0
  398. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_portfolios/data_nodes/signals/__init__.py +0 -0
  399. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_portfolios/data_nodes/signals/storage.py +0 -0
  400. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_portfolios/data_nodes/signals/weights.py +0 -0
  401. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_portfolios/enums.py +0 -0
  402. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_portfolios/models/__init__.py +0 -0
  403. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_portfolios/models/portfolios/__init__.py +0 -0
  404. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_portfolios/models/portfolios/metadata.py +0 -0
  405. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_portfolios/models/rebalancing.py +0 -0
  406. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_portfolios/models/signals.py +0 -0
  407. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_portfolios/rebalance_strategy/__init__.py +0 -0
  408. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_portfolios/rebalance_strategy/accounting.py +0 -0
  409. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_portfolios/rebalance_strategy/base.py +0 -0
  410. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_portfolios/rebalance_strategy/calendar_event.py +0 -0
  411. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_portfolios/rebalance_strategy/immediate_signal.py +0 -0
  412. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_portfolios/rebalance_strategy/liquidity_constrained.py +0 -0
  413. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_portfolios/rebalance_strategy/time_weighted.py +0 -0
  414. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_portfolios/rebalance_strategy/trailing_average_daily_volume.py +0 -0
  415. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_portfolios/rebalance_strategy/volume_participation.py +0 -0
  416. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_portfolios/repositories/__init__.py +0 -0
  417. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_portfolios/repositories/market_metadata.py +0 -0
  418. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_portfolios/services/__init__.py +0 -0
  419. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_portfolios/services/calendars.py +0 -0
  420. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_portfolios/services/market_metadata.py +0 -0
  421. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_portfolios/services/portfolio_reads.py +0 -0
  422. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_portfolios/services/portfolio_timestamp_repair.py +0 -0
  423. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_portfolios/services/public_api.py +0 -0
  424. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_portfolios/utils.py +0 -0
  425. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_pricing/README.md +0 -0
  426. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_pricing/__init__.py +0 -0
  427. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_pricing/analytics/__init__.py +0 -0
  428. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_pricing/analytics/spreads/__init__.py +0 -0
  429. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_pricing/analytics/spreads/base.py +0 -0
  430. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_pricing/analytics/spreads/fixed_income.py +0 -0
  431. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_pricing/api/__init__.py +0 -0
  432. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_pricing/api/asset_pricing_operations.py +0 -0
  433. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_pricing/api/curve_building_details.py +0 -0
  434. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_pricing/api/curves.py +0 -0
  435. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_pricing/api/index_convention_details.py +0 -0
  436. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_pricing/api/instruments.py +0 -0
  437. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_pricing/api/market_data_bindings.py +0 -0
  438. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_pricing/api/pricing_details.py +0 -0
  439. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_pricing/bootstrap.py +0 -0
  440. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_pricing/config.py +0 -0
  441. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_pricing/data_interface/__init__.py +0 -0
  442. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_pricing/data_interface/data_interface.py +0 -0
  443. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_pricing/data_nodes/__init__.py +0 -0
  444. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_pricing/data_nodes/curve_codec.py +0 -0
  445. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_pricing/data_nodes/curves/__init__.py +0 -0
  446. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_pricing/data_nodes/curves/key_nodes.py +0 -0
  447. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_pricing/data_nodes/curves/storage.py +0 -0
  448. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_pricing/data_nodes/index_fixings/__init__.py +0 -0
  449. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_pricing/data_nodes/index_fixings/storage.py +0 -0
  450. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_pricing/data_nodes/pricing_details/__init__.py +0 -0
  451. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_pricing/data_nodes/pricing_details/storage.py +0 -0
  452. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_pricing/instruments/__init__.py +0 -0
  453. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_pricing/instruments/base_instrument.py +0 -0
  454. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_pricing/instruments/bond.py +0 -0
  455. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_pricing/instruments/bond_terms.py +0 -0
  456. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_pricing/instruments/callability.py +0 -0
  457. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_pricing/instruments/interest_rate_swap.py +0 -0
  458. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_pricing/instruments/json_codec.py +0 -0
  459. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_pricing/instruments/ql_fields.py +0 -0
  460. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_pricing/meta_tables.py +0 -0
  461. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_pricing/models/__init__.py +0 -0
  462. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_pricing/models/curve_building_details.py +0 -0
  463. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_pricing/models/curves.py +0 -0
  464. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_pricing/models/index_convention_details.py +0 -0
  465. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_pricing/models/market_data_bindings.py +0 -0
  466. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_pricing/models/pricing_details.py +0 -0
  467. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_pricing/pricing_engine/__init__.py +0 -0
  468. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_pricing/pricing_engine/bond_analytics.py +0 -0
  469. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_pricing/pricing_engine/bond_pricer.py +0 -0
  470. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_pricing/pricing_engine/coupon_schedules.py +0 -0
  471. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_pricing/pricing_engine/curve_overlays.py +0 -0
  472. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_pricing/pricing_engine/curves/__init__.py +0 -0
  473. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_pricing/pricing_engine/curves/adapters.py +0 -0
  474. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_pricing/pricing_engine/curves/bond_helper_key_nodes.py +0 -0
  475. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_pricing/pricing_engine/curves/bond_helpers.py +0 -0
  476. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_pricing/pricing_engine/curves/cross_currency_helpers.py +0 -0
  477. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_pricing/pricing_engine/curves/cross_currency_key_nodes.py +0 -0
  478. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_pricing/pricing_engine/curves/fixed_income_key_nodes.py +0 -0
  479. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_pricing/pricing_engine/curves/helper_key_nodes.py +0 -0
  480. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_pricing/pricing_engine/curves/helper_resolution.py +0 -0
  481. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_pricing/pricing_engine/curves/helpers.py +0 -0
  482. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_pricing/pricing_engine/curves/observations.py +0 -0
  483. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_pricing/pricing_engine/curves/quote_units.py +0 -0
  484. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_pricing/pricing_engine/curves/reconstruction.py +0 -0
  485. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_pricing/pricing_engine/indices.py +0 -0
  486. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_pricing/pricing_engine/indices_builders.py +0 -0
  487. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_pricing/pricing_engine/resolvers.py +0 -0
  488. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_pricing/pricing_engine/swap_pricer.py +0 -0
  489. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_pricing/scenarios/__init__.py +0 -0
  490. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_pricing/scenarios/curves/__init__.py +0 -0
  491. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_pricing/scenarios/curves/engine.py +0 -0
  492. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_pricing/scenarios/curves/key_node_bumps.py +0 -0
  493. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_pricing/scenarios/curves/models.py +0 -0
  494. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_pricing/scenarios/valuation/__init__.py +0 -0
  495. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_pricing/scenarios/valuation/engine.py +0 -0
  496. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_pricing/scenarios/valuation/impacts.py +0 -0
  497. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_pricing/scenarios/valuation/line_pricing.py +0 -0
  498. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_pricing/scenarios/valuation/models.py +0 -0
  499. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_pricing/settings.py +0 -0
  500. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_pricing/utils.py +0 -0
  501. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/src/msm_pricing/valuation.py +0 -0
  502. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/__init__.py +0 -0
  503. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/conftest.py +0 -0
  504. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/contracts/command-center-sdk-v0.1.13/PINNED_FROM.txt +0 -0
  505. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/contracts/command-center-sdk-v0.1.13/README.md +0 -0
  506. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/adapter-from-api-discovery-v1.inline-health-endpoint.json +0 -0
  507. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/adapter-from-api-discovery-v1.retired-response-mappings.json +0 -0
  508. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/adapter-from-api-discovery-v1.unknown-operation-field.json +0 -0
  509. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/adapter-from-api-public-config-v1.direct-source-mismatch.json +0 -0
  510. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/adapter-from-api-query-v1.retired-response-mapping-id.json +0 -0
  511. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/adapter-from-api-query-v1.unknown-field.json +0 -0
  512. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/adapter-from-api-secure-config-v1.unknown-field.json +0 -0
  513. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/app-component-authoring-v1.invalid-binding-port.json +0 -0
  514. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/app-component-authoring-v1.invalid-mock-version.json +0 -0
  515. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/bulk-action-discovery-v1.duplicate-selection-mode.json +0 -0
  516. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/bulk-action-discovery-v1.unsafe-endpoint.json +0 -0
  517. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/bulk-action-execution-v1.empty-explicit.json +0 -0
  518. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/bulk-action-execution-v1.presentation-filter.json +0 -0
  519. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/bulk-action-preflight-v1.invalid-blockers.json +0 -0
  520. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/bulk-action-preflight-v1.missing-allowed.json +0 -0
  521. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/resource-collection-v1.negative-total.json +0 -0
  522. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/resource-collection-v1.select-without-options.json +0 -0
  523. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/resource-discovery-v1.incomplete-generic-column.json +0 -0
  524. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/resource-discovery-v1.unknown-field.json +0 -0
  525. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/resource-discovery-v1.unsafe-identity.json +0 -0
  526. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/static-site-iframe-v1.invalid-target-uid.json +0 -0
  527. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/static-site-iframe-v1.missing-token.json +0 -0
  528. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/static-site-iframe-v1.unknown-credential-error.json +0 -0
  529. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/static-site-iframe-v1.unrestricted-user-credential.json +0 -0
  530. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/static-site-iframe-v1.wrong-version.json +0 -0
  531. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/table-widget-authoring-v1.community-formula.json +0 -0
  532. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/table-widget-authoring-v1.invalid-selection.json +0 -0
  533. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/table-widget-authoring-v1.unknown-widget.json +0 -0
  534. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/tabular-frame-v1.invalid-table-visuals.json +0 -0
  535. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/tabular-frame-v1.long-with-value-fields.json +0 -0
  536. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/tabular-frame-v1.missing-rows.json +0 -0
  537. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/tabular-frame-v1.unknown-field-type.json +0 -0
  538. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/tabular-transform-authoring-v1.incomplete-pivot.json +0 -0
  539. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/tabular-transform-authoring-v1.latest-without-keys.json +0 -0
  540. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/workspace-document-v1.missing-id.json +0 -0
  541. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/workspace-document-v1.numeric-id.json +0 -0
  542. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/adapter-from-api-discovery-v1.orders.json +0 -0
  543. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/adapter-from-api-public-config-v1.backend.json +0 -0
  544. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/adapter-from-api-public-config-v1.direct.json +0 -0
  545. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/adapter-from-api-query-v1.operation.json +0 -0
  546. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/adapter-from-api-secure-config-v1.values.json +0 -0
  547. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/app-component-authoring-v1.manual.json +0 -0
  548. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/app-component-authoring-v1.mock-json.json +0 -0
  549. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/bulk-action-discovery-v1.archive.json +0 -0
  550. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/bulk-action-discovery-v1.empty.json +0 -0
  551. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/bulk-action-execution-v1.all-matching.json +0 -0
  552. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/bulk-action-execution-v1.explicit.json +0 -0
  553. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/bulk-action-preflight-v1.allowed.json +0 -0
  554. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/bulk-action-preflight-v1.blocked.json +0 -0
  555. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/resource-collection-v1.minimal.json +0 -0
  556. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/resource-collection-v1.with-controls.json +0 -0
  557. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/resource-discovery-v1.records.json +0 -0
  558. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/static-site-iframe-v1.fastapi-credential-error.json +0 -0
  559. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/static-site-iframe-v1.fastapi-credential-request.json +0 -0
  560. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/static-site-iframe-v1.fastapi-credential-response.json +0 -0
  561. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/static-site-iframe-v1.fastapi-runtime-starting.json +0 -0
  562. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/static-site-iframe-v1.initialize.json +0 -0
  563. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/static-site-iframe-v1.ready.json +0 -0
  564. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/table-widget-authoring-v1.pro-table.json +0 -0
  565. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/table-widget-authoring-v1.table.json +0 -0
  566. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/tabular-frame-v1.minimal.json +0 -0
  567. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/tabular-frame-v1.table-visuals.json +0 -0
  568. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/tabular-frame-v1.time-series.json +0 -0
  569. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/tabular-transform-authoring-v1.filter.json +0 -0
  570. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/tabular-transform-authoring-v1.pivot-latest.json +0 -0
  571. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/workspace-document-v1.minimal.json +0 -0
  572. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/workspace-document-v1.nested.json +0 -0
  573. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/contracts/command-center-sdk-v0.1.13/manifest.json +0 -0
  574. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/contracts/command-center-sdk-v0.1.13/schemas/adapter-from-api-discovery-v1.schema.json +0 -0
  575. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/contracts/command-center-sdk-v0.1.13/schemas/adapter-from-api-public-config-v1.schema.json +0 -0
  576. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/contracts/command-center-sdk-v0.1.13/schemas/adapter-from-api-query-v1.schema.json +0 -0
  577. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/contracts/command-center-sdk-v0.1.13/schemas/adapter-from-api-secure-config-v1.schema.json +0 -0
  578. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/contracts/command-center-sdk-v0.1.13/schemas/app-component-authoring-v1.schema.json +0 -0
  579. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/contracts/command-center-sdk-v0.1.13/schemas/bulk-action-discovery-v1.schema.json +0 -0
  580. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/contracts/command-center-sdk-v0.1.13/schemas/bulk-action-execution-v1.schema.json +0 -0
  581. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/contracts/command-center-sdk-v0.1.13/schemas/bulk-action-preflight-v1.schema.json +0 -0
  582. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/contracts/command-center-sdk-v0.1.13/schemas/resource-collection-v1.schema.json +0 -0
  583. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/contracts/command-center-sdk-v0.1.13/schemas/resource-discovery-v1.schema.json +0 -0
  584. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/contracts/command-center-sdk-v0.1.13/schemas/static-site-iframe-v1.schema.json +0 -0
  585. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/contracts/command-center-sdk-v0.1.13/schemas/table-widget-authoring-v1.schema.json +0 -0
  586. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/contracts/command-center-sdk-v0.1.13/schemas/tabular-frame-v1.schema.json +0 -0
  587. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/contracts/command-center-sdk-v0.1.13/schemas/tabular-transform-authoring-v1.schema.json +0 -0
  588. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/contracts/command-center-sdk-v0.1.13/schemas/workspace-document-v1.schema.json +0 -0
  589. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm/__init__.py +0 -0
  590. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm/api/__init__.py +0 -0
  591. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm/api/calendars/__init__.py +0 -0
  592. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm/api/calendars/test_rows.py +0 -0
  593. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm/api/test_assets.py +0 -0
  594. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm/api/test_bonds.py +0 -0
  595. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm/api/test_derivatives.py +0 -0
  596. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm/api/test_http.py +0 -0
  597. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm/api/test_indices.py +0 -0
  598. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm/api/test_issuers.py +0 -0
  599. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm/api/test_portfolio_groups.py +0 -0
  600. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm/api/test_rows.py +0 -0
  601. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm/assets/__init__.py +0 -0
  602. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm/assets/test_asset_snapshots.py +0 -0
  603. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm/assets/test_openfigi.py +0 -0
  604. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm/bootstrap/__init__.py +0 -0
  605. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm/bootstrap/test_bootstrap.py +0 -0
  606. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm/data_nodes/__init__.py +0 -0
  607. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm/data_nodes/test_asset_indexed_data_nodes.py +0 -0
  608. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm/data_nodes/test_contracts.py +0 -0
  609. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm/data_nodes/test_datetime_normalization.py +0 -0
  610. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm/data_nodes/test_index_stamped_data_nodes.py +0 -0
  611. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm/data_nodes/test_package_structure.py +0 -0
  612. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm/data_nodes/test_provisioning_boundary.py +0 -0
  613. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm/data_nodes/test_target_positions_contracts.py +0 -0
  614. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm/fastapi/__init__.py +0 -0
  615. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm/fastapi/v1/__init__.py +0 -0
  616. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm/fastapi/v1/test_accounts.py +0 -0
  617. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm/fastapi/v1/test_asset_categories.py +0 -0
  618. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm/fastapi/v1/test_assets.py +0 -0
  619. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm/fastapi/v1/test_calendars.py +0 -0
  620. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm/fastapi/v1/test_command_center_adapter.py +0 -0
  621. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm/fastapi/v1/test_common.py +0 -0
  622. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm/fastapi/v1/test_deployment_entrypoint.py +0 -0
  623. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm/fastapi/v1/test_dev_cors.py +0 -0
  624. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm/fastapi/v1/test_indices.py +0 -0
  625. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm/fastapi/v1/test_openapi.py +0 -0
  626. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm/fastapi/v1/test_portfolio_groups.py +0 -0
  627. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm/fastapi/v1/test_portfolio_signals.py +0 -0
  628. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm/fastapi/v1/test_portfolios.py +0 -0
  629. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm/fastapi/v1/test_pricing_assets.py +0 -0
  630. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm/fastapi/v1/test_pricing_curves.py +0 -0
  631. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm/fastapi/v1/test_pricing_market_data.py +0 -0
  632. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm/fastapi/v1/test_runtime_bootstrap.py +0 -0
  633. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm/fastapi/v1/test_settings.py +0 -0
  634. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm/fastapi/v1/test_virtual_funds.py +0 -0
  635. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm/imports/__init__.py +0 -0
  636. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm/imports/test_import.py +0 -0
  637. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm/indices/test_data_nodes.py +0 -0
  638. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm/indices/test_engine.py +0 -0
  639. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm/indices/test_examples.py +0 -0
  640. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm/indices/test_formula_index_contract.py +0 -0
  641. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm/indices/test_index_availability.py +0 -0
  642. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm/indices/test_index_delete_impact.py +0 -0
  643. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm/indices/test_index_lifecycle_services.py +0 -0
  644. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm/indices/test_index_values.py +0 -0
  645. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm/indices/test_models_and_migration.py +0 -0
  646. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm/indices/test_public_api.py +0 -0
  647. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm/indices/test_related_meta_tables.py +0 -0
  648. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm/indices/test_resolution_and_repository.py +0 -0
  649. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm/indices/test_spread_compatibility.py +0 -0
  650. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm/maintenance/test_migrations.py +0 -0
  651. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm/models/__init__.py +0 -0
  652. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm/models/calendars/__init__.py +0 -0
  653. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm/models/calendars/test_tables.py +0 -0
  654. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm/models/test_metatable_models.py +0 -0
  655. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm/repositories/__init__.py +0 -0
  656. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm/repositories/test_repositories.py +0 -0
  657. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm/services/assets/test_reference_details.py +0 -0
  658. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm/services/calendars/__init__.py +0 -0
  659. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm/services/calendars/test_materialization.py +0 -0
  660. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm/services/test_account_virtual_allocations.py +0 -0
  661. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm/services/test_latest_asset_references.py +0 -0
  662. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm/test_cli.py +0 -0
  663. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm/test_constants.py +0 -0
  664. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm/test_schema_names.py +0 -0
  665. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm_portfolios/accounting/test_accounting.py +0 -0
  666. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm_portfolios/api/test_rows.py +0 -0
  667. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm_portfolios/configuration/test_prices_configuration.py +0 -0
  668. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm_portfolios/data_nodes/test_daily_price_interpolation.py +0 -0
  669. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm_portfolios/data_nodes/test_datetime_normalization.py +0 -0
  670. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm_portfolios/data_nodes/test_portfolio_contracts.py +0 -0
  671. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm_portfolios/data_nodes/test_storage_first_surface.py +0 -0
  672. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm_portfolios/data_nodes/test_virtual_fund_holdings_contracts.py +0 -0
  673. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm_portfolios/examples/test_equal_weight_portfolio_schema.py +0 -0
  674. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm_portfolios/examples/test_trailing_adv_participation_preview.py +0 -0
  675. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm_portfolios/imports/test_bootstrap.py +0 -0
  676. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm_portfolios/imports/test_boundaries.py +0 -0
  677. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm_portfolios/models/test_model_graph.py +0 -0
  678. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm_portfolios/services/test_calendars.py +0 -0
  679. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm_portfolios/services/test_portfolio_reads.py +0 -0
  680. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm_portfolios/services/test_portfolio_timestamp_repair.py +0 -0
  681. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm_pricing/__init__.py +0 -0
  682. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm_pricing/analytics/spreads/test_base.py +0 -0
  683. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm_pricing/analytics/spreads/test_fixed_income.py +0 -0
  684. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm_pricing/api/__init__.py +0 -0
  685. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm_pricing/api/test_asset_pricing_operations.py +0 -0
  686. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm_pricing/api/test_curve_building_details.py +0 -0
  687. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm_pricing/api/test_curves.py +0 -0
  688. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm_pricing/api/test_index_convention_details.py +0 -0
  689. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm_pricing/api/test_instruments.py +0 -0
  690. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm_pricing/api/test_market_data_bindings.py +0 -0
  691. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm_pricing/api/test_pricing_details.py +0 -0
  692. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm_pricing/data_interface/test_data_interface.py +0 -0
  693. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm_pricing/data_nodes/test_curves.py +0 -0
  694. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm_pricing/data_nodes/test_index_fixings.py +0 -0
  695. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm_pricing/examples/test_mock_market_data.py +0 -0
  696. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm_pricing/instruments/__init__.py +0 -0
  697. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm_pricing/instruments/test_base_instrument.py +0 -0
  698. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm_pricing/instruments/test_benchmark_curve_resolution.py +0 -0
  699. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm_pricing/instruments/test_bond_terms.py +0 -0
  700. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm_pricing/instruments/test_floating_bond_roundtrip.py +0 -0
  701. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm_pricing/instruments/test_index_uid_references.py +0 -0
  702. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm_pricing/models/__init__.py +0 -0
  703. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm_pricing/models/test_pricing_details.py +0 -0
  704. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm_pricing/pricing_engine/curves/test_bond_helper_reconstruction.py +0 -0
  705. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm_pricing/pricing_engine/curves/test_bond_helpers.py +0 -0
  706. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm_pricing/pricing_engine/curves/test_cross_currency_helpers.py +0 -0
  707. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm_pricing/pricing_engine/curves/test_reconstruction.py +0 -0
  708. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm_pricing/pricing_engine/test_curve_overlays.py +0 -0
  709. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm_pricing/pricing_engine/test_resolvers.py +0 -0
  710. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm_pricing/scenarios/curves/test_curve_scenarios.py +0 -0
  711. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm_pricing/scenarios/curves/test_key_node_bumps.py +0 -0
  712. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm_pricing/scenarios/curves/test_resolved_curve_scenarios.py +0 -0
  713. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm_pricing/scenarios/valuation/test_line_pricing.py +0 -0
  714. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm_pricing/scenarios/valuation/test_workflow.py +0 -0
  715. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm_pricing/test_bond_pricing_example.py +0 -0
  716. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm_pricing/test_bootstrap.py +0 -0
  717. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm_pricing/test_config.py +0 -0
  718. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm_pricing/test_meta_tables.py +0 -0
  719. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm_pricing/test_package_boundaries.py +0 -0
  720. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/msm_pricing/test_valuation.py +0 -0
  721. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/packaging/__init__.py +0 -0
  722. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/packaging/test_dev_release_version.py +0 -0
  723. {ms_markets-2.2.3.dev12 → ms_markets-2.2.4}/tests/packaging/test_distribution_sources.py +0 -0
@@ -7,18 +7,48 @@ and this project follows versioned releases.
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [2.2.4] - 2026-10-04
11
+
12
+ ### Fixed
13
+
14
+ - `BulkActionDefinition` omits `tone`, `confirmation` and `preflight_endpoint`,
15
+ and `BulkActionPreflightResponse` omits `detail`, `matched_count`, `blockers`
16
+ and `warnings`, when they are unset, instead of serializing them as `null`.
17
+ The Command Center SDK accepts these fields only when they are absent or
18
+ valid, so a discovery route that advertised an action without a `tone` or
19
+ `confirmation` failed with "Bulk-action discovery returned an invalid action
20
+ definition.", and a preflight that left any of those fields unset failed to
21
+ parse ([#22](https://github.com/mainsequence-projects/MainSequenceMarkets/issues/22)).
22
+ The ms-markets bulk-delete routes set every field and were not affected. A
23
+ contract test dumps the resource-discovery and preflight models with only
24
+ their required fields and checks that the output has no `null` values and
25
+ validates against the pinned SDK schemas.
26
+
27
+ ## [2.2.3] - 2026-10-03
28
+
10
29
  ### Added
11
30
 
12
31
  - The portfolio, portfolio-group and asset-category bulk-delete preflights
13
32
  report what the delete reaches through foreign keys. They return the
14
- MetaTables `delete_rows` impact as `impact`, describe each cascade,
15
- `SET NULL` or `SET DEFAULT` action in `warnings`, and add MetaTables'
16
- blockers (for example a cascade into a table the caller cannot write), which
17
- also stop the bulk delete with `409`. If MetaTables cannot compute the
33
+ MetaTables `delete_rows` impact as `impact` and describe each cascade,
34
+ `SET NULL` or `SET DEFAULT` action in `warnings`. MetaTables' blockers (the
35
+ caller cannot write the table, the table does not accept writes, or its
36
+ DataSource is read-only) are added to `blockers` and also stop the bulk
37
+ delete with `409`; cascades never block. If MetaTables cannot compute the
18
38
  impact, a warning says so and the delete is not blocked.
19
39
  `BulkDeletePreflightResponse` and the `TableImpact` models are exported from
20
40
  `msm.api.http`, and `delete_rows_impact` from `msm.services`.
21
41
 
42
+ ### Changed
43
+
44
+ - Requires `mainsequence-metatable>=0.1.18,<0.2`; the lock and exported
45
+ `requirements.txt` select `mainsequence-metatable` 0.1.18. MetaTables 0.1.18
46
+ removes the cascade write narrowing released in 0.1.17: write on a table
47
+ depends only on its own grants, so a foreign key on a referencing table no
48
+ longer locks the referenced table's Writers out. Its impact pre-flight
49
+ reports cascades as information, never as blockers.
50
+ - Refreshed the MetaTables agent skills to 0.1.18.
51
+
22
52
  ## [2.2.2] - 2026-10-03
23
53
 
24
54
  ### Changed
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: ms-markets
3
- Version: 2.2.3.dev12
3
+ Version: 2.2.4
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
@@ -227,7 +227,7 @@ Requires-Python: <3.14,>=3.13
227
227
  Requires-Dist: alembic>=1.18.4
228
228
  Requires-Dist: cachetools
229
229
  Requires-Dist: fastapi>=0.136.3
230
- Requires-Dist: mainsequence-metatable<0.2,>=0.1.17
230
+ Requires-Dist: mainsequence-metatable<0.2,>=0.1.18
231
231
  Requires-Dist: mainsequence<10,>=9.0.5
232
232
  Requires-Dist: numpy
233
233
  Requires-Dist: pandas
@@ -385,7 +385,7 @@ Recommended entry points:
385
385
  ## Quick Start
386
386
 
387
387
  `ms-markets` 2.x requires Python 3.13, Main Sequence SDK `>=9.0.5,<10`, and
388
- the MetaTables client `mainsequence-metatable>=0.1.17,<0.2`, which is imported
388
+ the MetaTables client `mainsequence-metatable>=0.1.18,<0.2`, which is imported
389
389
  as `metatables`. SDK 8 and earlier are not supported; install a 1.x
390
390
  `ms-markets` release when maintaining an SDK 8 project. See
391
391
  [ADR 0043](https://mainsequence-projects.github.io/MainSequenceMarkets/ADR/0043-sdk-9-metatables-client-hard-cut/)
@@ -503,7 +503,7 @@ The core stack starts with:
503
503
 
504
504
  - `mainsequence>=9.0.5,<10` for identity, login, Git source context,
505
505
  CodeRepository, jobs, and agents
506
- - `mainsequence-metatable>=0.1.17,<0.2` (import `metatables`) for MetaTables,
506
+ - `mainsequence-metatable>=0.1.18,<0.2` (import `metatables`) for MetaTables,
507
507
  time-index table updaters, governed compiled SQL, and application-owned
508
508
  Alembic migrations
509
509
  - `SQLAlchemy` for market-domain ORM models
@@ -108,7 +108,7 @@ Recommended entry points:
108
108
  ## Quick Start
109
109
 
110
110
  `ms-markets` 2.x requires Python 3.13, Main Sequence SDK `>=9.0.5,<10`, and
111
- the MetaTables client `mainsequence-metatable>=0.1.17,<0.2`, which is imported
111
+ the MetaTables client `mainsequence-metatable>=0.1.18,<0.2`, which is imported
112
112
  as `metatables`. SDK 8 and earlier are not supported; install a 1.x
113
113
  `ms-markets` release when maintaining an SDK 8 project. See
114
114
  [ADR 0043](https://mainsequence-projects.github.io/MainSequenceMarkets/ADR/0043-sdk-9-metatables-client-hard-cut/)
@@ -226,7 +226,7 @@ The core stack starts with:
226
226
 
227
227
  - `mainsequence>=9.0.5,<10` for identity, login, Git source context,
228
228
  CodeRepository, jobs, and agents
229
- - `mainsequence-metatable>=0.1.17,<0.2` (import `metatables`) for MetaTables,
229
+ - `mainsequence-metatable>=0.1.18,<0.2` (import `metatables`) for MetaTables,
230
230
  time-index table updaters, governed compiled SQL, and application-owned
231
231
  Alembic migrations
232
232
  - `SQLAlchemy` for market-domain ORM models
@@ -51,17 +51,19 @@ table reaches through foreign keys. It asks MetaTables
51
51
  (`MetaTable.get_impact(action="delete_rows")`) and adds:
52
52
 
53
53
  - `impact`: the MetaTables impact graph. Nodes are the tables the delete
54
- reaches, with their effects and the caller's effective write. Edges are
55
- classified as `cascade_delete`, `cascade_update`, `set_null`, `set_default`,
56
- `restrict` or `reads`. MetaTables' blockers are included.
54
+ reaches, with their effects and whether the caller may write each one. Edges
55
+ are classified as `cascade_delete`, `cascade_update`, `set_null`,
56
+ `set_default`, `restrict` or `reads`. MetaTables' blockers are included.
57
57
  - `warnings`: one sentence for each foreign-key action the delete triggers, for
58
58
  example "PortfolioGroupMembership rows that reference deleted PortfolioGroup
59
59
  rows are deleted too (ON DELETE CASCADE)." Command Center shows warnings
60
60
  without custom rendering.
61
- - `blockers`: MetaTables' reasons the caller may not run the delete, such as a
62
- cascade into a table the caller cannot write, prefixed with that table. The
63
- preflight then answers `allowed: false` and execution answers `409` before
64
- the database refuses the delete.
61
+ - `blockers`: MetaTables' reasons the caller may not run the delete, prefixed
62
+ with the table: the caller cannot write the table, the table does not accept
63
+ writes, or its DataSource is read-only. The preflight then answers
64
+ `allowed: false` and execution answers `409` before the database refuses the
65
+ delete. Cascades never block: write on a table depends only on its own grants,
66
+ because a foreign key's action belongs to the referencing table.
65
67
 
66
68
  Deleting portfolios or portfolio groups cascades to their
67
69
  `PortfolioGroupMembership` rows; deleting asset categories cascades to their
@@ -69,6 +71,12 @@ Deleting portfolios or portfolio groups cascades to their
69
71
  `impact` is `null` and a warning says so. The preflight is not blocked, because
70
72
  the database still applies and enforces every foreign-key action.
71
73
 
74
+ On the local SQLite runtime, MetaTables documents one limitation: its authorizer
75
+ also checks the reads and writes of foreign-key actions, so a delete that
76
+ cascades fails unless the caller can access every referencing table. The
77
+ preflight cannot detect this. PostgreSQL runs these actions as the referencing
78
+ table's owner.
79
+
72
80
  Execution repeats preflight immediately before invoking domain deletion. A
73
81
  blocked selection returns HTTP `409` and does not call the delete service. The
74
82
  underlying delete operation still performs its own conflict checks, protecting
@@ -164,7 +164,7 @@ push alone as deployment success.
164
164
 
165
165
  Runtime dependencies must be resolvable from the backend build environment.
166
166
  The published `ms-markets` 2.x package therefore declares
167
- `mainsequence>=9.0.5,<10` and `mainsequence-metatable>=0.1.17,<0.2` without
167
+ `mainsequence>=9.0.5,<10` and `mainsequence-metatable>=0.1.18,<0.2` without
168
168
  exact patch pins. The lower bounds enforce the SDK 9 and MetaTables client
169
169
  extraction hard cut, while the project lock and exported runtime requirements
170
170
  select the exact releases validated for this repository. Do not replace the
@@ -1,7 +1,7 @@
1
1
  # Getting Started
2
2
 
3
3
  `ms-markets` 2.x requires Python 3.13, Main Sequence SDK `>=9.0.5,<10`, and
4
- the MetaTables client `mainsequence-metatable>=0.1.17,<0.2` (imported as
4
+ the MetaTables client `mainsequence-metatable>=0.1.18,<0.2` (imported as
5
5
  `metatables`). It cannot run against an SDK 8 or earlier contract and does not
6
6
  provide compatibility aliases or a mixed-version mode. Install a 1.x
7
7
  `ms-markets` release when maintaining an SDK 8 project.
@@ -110,7 +110,7 @@ history is the Alembic revision graph plus the provider's version table.
110
110
 
111
111
  ## Client Requirement
112
112
 
113
- The implementation requires `mainsequence-metatable>=0.1.17,<0.2` with
113
+ The implementation requires `mainsequence-metatable>=0.1.18,<0.2` with
114
114
  `mainsequence>=9.0.5,<10`. The client exposes `AlembicMetaTableMigration`,
115
115
  `AlembicVersionMetaTable`, application-owned Alembic execution, and the command
116
116
  shape where
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "ms-markets"
7
- version = "2.2.3.dev12"
7
+ version = "2.2.4"
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"
@@ -37,7 +37,7 @@ dependencies = [
37
37
  "cachetools",
38
38
  "fastapi>=0.136.3",
39
39
  "mainsequence>=9.0.5,<10",
40
- "mainsequence-metatable>=0.1.17,<0.2",
40
+ "mainsequence-metatable>=0.1.18,<0.2",
41
41
  "numpy",
42
42
  "pandas",
43
43
  "pip>=26.1.1",
@@ -95,9 +95,15 @@ class BulkActionDefinition(HttpContractModel):
95
95
  method: Literal["POST"]
96
96
  selection_modes: list[Literal["explicit", "all_matching"]] = Field(min_length=1)
97
97
  options: list[BulkActionOption]
98
- tone: Literal["default", "primary", "warning", "danger"] | None = None
99
- confirmation: BulkActionConfirmation | None = None
100
- preflight_endpoint: str | None = None
98
+ tone: Literal["default", "primary", "warning", "danger"] | None = Field(
99
+ default=None,
100
+ exclude_if=lambda value: value is None,
101
+ )
102
+ confirmation: BulkActionConfirmation | None = Field(
103
+ default=None,
104
+ exclude_if=lambda value: value is None,
105
+ )
106
+ preflight_endpoint: str | None = Field(default=None, exclude_if=lambda value: value is None)
101
107
 
102
108
  @field_validator("endpoint", "preflight_endpoint")
103
109
  @classmethod
@@ -129,10 +135,14 @@ class BulkActionPreflightResponse(HttpContractModel):
129
135
  model_config = HttpContractModel.model_config | {"extra": "allow"}
130
136
 
131
137
  allowed: bool
132
- detail: str | None = None
133
- matched_count: int | None = Field(default=None, ge=0)
134
- blockers: list[str] | None = None
135
- warnings: list[str] | None = None
138
+ detail: str | None = Field(default=None, exclude_if=lambda value: value is None)
139
+ matched_count: int | None = Field(
140
+ default=None,
141
+ ge=0,
142
+ exclude_if=lambda value: value is None,
143
+ )
144
+ blockers: list[str] | None = Field(default=None, exclude_if=lambda value: value is None)
145
+ warnings: list[str] | None = Field(default=None, exclude_if=lambda value: value is None)
136
146
 
137
147
 
138
148
  class BulkDeletePreflightResponse(BulkActionPreflightResponse):
@@ -142,9 +152,9 @@ class BulkDeletePreflightResponse(BulkActionPreflightResponse):
142
152
  default=None,
143
153
  description=(
144
154
  "MetaTables delete_rows impact for the table the selected rows are deleted "
145
- "from: the tables its foreign-key actions reach, the effect on each and the "
146
- "caller's effective write. Each cascade is also summarized in warnings. "
147
- "Null when nothing matched or MetaTables could not compute it."
155
+ "from: the tables its foreign-key actions reach, the effect on each and "
156
+ "whether the caller may write each table. Each cascade is also summarized "
157
+ "in warnings. Null when MetaTables could not compute it."
148
158
  ),
149
159
  )
150
160
 
@@ -30,7 +30,7 @@ class TableImpactNode(_TableImpactModel):
30
30
  )
31
31
  can_write: bool | None = Field(
32
32
  default=None,
33
- description="The caller's effective write after cascade narrowing; null for updates.",
33
+ description="Whether the caller may write this table; null for updates.",
34
34
  )
35
35
 
36
36
 
@@ -0,0 +1,150 @@
1
+ from __future__ import annotations
2
+
3
+ import json
4
+ from pathlib import Path
5
+ from typing import Any
6
+
7
+ import pytest
8
+ from jsonschema import Draft202012Validator
9
+ from pydantic import BaseModel, ValidationError
10
+ from referencing import Registry, Resource
11
+
12
+ from msm.api.http import (
13
+ BULK_ACTION_EXECUTION_CONTRACT,
14
+ BULK_ACTION_PREFLIGHT_CONTRACT,
15
+ CORE_TABULAR_FRAME_CONTRACT,
16
+ BulkActionDefinition,
17
+ BulkActionExecutionRequest,
18
+ BulkActionPreflightResponse,
19
+ RESOURCE_COLLECTION_CONTRACT,
20
+ RESOURCE_DISCOVERY_CONTRACT,
21
+ ResourceCollection,
22
+ ResourceColumn,
23
+ ResourceDescriptor,
24
+ ResourceDiscovery,
25
+ ResourceIdentity,
26
+ ResourceListControls,
27
+ ResourceListDiscovery,
28
+ ResourceSearchControl,
29
+ TabularFrameResponse,
30
+ )
31
+
32
+ COMMAND_CENTER_SDK_TAG = "v0.1.13"
33
+ COMMAND_CENTER_SDK_COMMIT = "f11c0ea8c5d3fc267997e476aa1522c798fdaced"
34
+ CONTRACTS_ROOT = Path(__file__).parents[3] / "contracts" / "command-center-sdk-v0.1.13"
35
+
36
+ _CONTRACT_MODELS = {
37
+ RESOURCE_COLLECTION_CONTRACT: ResourceCollection[dict[str, Any]],
38
+ RESOURCE_DISCOVERY_CONTRACT: ResourceDiscovery,
39
+ BULK_ACTION_EXECUTION_CONTRACT: BulkActionExecutionRequest,
40
+ BULK_ACTION_PREFLIGHT_CONTRACT: BulkActionPreflightResponse,
41
+ CORE_TABULAR_FRAME_CONTRACT: TabularFrameResponse,
42
+ }
43
+
44
+
45
+ def _schema_registry() -> Registry:
46
+ schemas = [
47
+ json.loads(path.read_text()) for path in (CONTRACTS_ROOT / "schemas").glob("*.schema.json")
48
+ ]
49
+ return Registry().with_resources(
50
+ (schema["$id"], Resource.from_contents(schema)) for schema in schemas
51
+ )
52
+
53
+
54
+ def test_vendored_contract_bundle_is_pinned_to_latest_verified_revision() -> None:
55
+ pin = (CONTRACTS_ROOT / "PINNED_FROM.txt").read_text()
56
+ assert f"tag={COMMAND_CENTER_SDK_TAG}" in pin
57
+ assert f"commit={COMMAND_CENTER_SDK_COMMIT}" in pin
58
+
59
+
60
+ def _manifest_entry(contract_id: str) -> dict[str, Any]:
61
+ manifest = json.loads((CONTRACTS_ROOT / "manifest.json").read_text())
62
+ return next(item for item in manifest["schemas"] if item["contract"] == contract_id)
63
+
64
+
65
+ def _contract_validator(contract_id: str) -> Draft202012Validator:
66
+ schema = json.loads((CONTRACTS_ROOT / _manifest_entry(contract_id)["file"]).read_text())
67
+ Draft202012Validator.check_schema(schema)
68
+ return Draft202012Validator(schema, registry=_schema_registry())
69
+
70
+
71
+ def _null_paths(value: Any, path: str = "$") -> list[str]:
72
+ if value is None:
73
+ return [path]
74
+ if isinstance(value, dict):
75
+ return [
76
+ null_path
77
+ for key, item in value.items()
78
+ for null_path in _null_paths(item, f"{path}.{key}")
79
+ ]
80
+ if isinstance(value, list):
81
+ return [
82
+ null_path
83
+ for index, item in enumerate(value)
84
+ for null_path in _null_paths(item, f"{path}[{index}]")
85
+ ]
86
+ return []
87
+
88
+
89
+ @pytest.mark.parametrize("contract_id", sorted(_CONTRACT_MODELS))
90
+ def test_wire_models_match_authoritative_sdk_fixtures(contract_id: str) -> None:
91
+ entry = _manifest_entry(contract_id)
92
+ validator = _contract_validator(contract_id)
93
+ model = _CONTRACT_MODELS[contract_id]
94
+
95
+ for fixture_path in entry["fixtures"]["valid"]:
96
+ payload = json.loads((CONTRACTS_ROOT / fixture_path).read_text())
97
+ validator.validate(payload)
98
+ model.model_validate(payload)
99
+
100
+ for fixture_path in entry["fixtures"]["invalid"]:
101
+ payload = json.loads((CONTRACTS_ROOT / fixture_path).read_text())
102
+ assert list(validator.iter_errors(payload)), fixture_path
103
+ with pytest.raises(ValidationError):
104
+ model.model_validate(payload)
105
+
106
+
107
+ _REQUIRED_ONLY_ACTION = BulkActionDefinition(
108
+ id="refresh",
109
+ label="Refresh",
110
+ endpoint="/v1/records/actions/refresh",
111
+ method="POST",
112
+ selection_modes=["explicit"],
113
+ options=[],
114
+ )
115
+
116
+
117
+ @pytest.mark.parametrize(
118
+ ("contract_id", "model"),
119
+ [
120
+ (
121
+ RESOURCE_DISCOVERY_CONTRACT,
122
+ ResourceDiscovery(
123
+ resource=ResourceDescriptor(
124
+ id="records",
125
+ label="Records",
126
+ item_label="record",
127
+ identity=ResourceIdentity(fields=["uid"]),
128
+ ),
129
+ list=ResourceListDiscovery(
130
+ controls=ResourceListControls(
131
+ search=ResourceSearchControl(placeholder="Search", fields=["uid"]),
132
+ filters=[],
133
+ ordering=[],
134
+ ),
135
+ columns=[ResourceColumn(id="uid", header="UID")],
136
+ ),
137
+ bulk_actions=[_REQUIRED_ONLY_ACTION],
138
+ ),
139
+ ),
140
+ (BULK_ACTION_PREFLIGHT_CONTRACT, BulkActionPreflightResponse(allowed=True)),
141
+ ],
142
+ ids=["resource-discovery", "bulk-action-preflight"],
143
+ )
144
+ def test_wire_models_omit_unset_optional_fields(contract_id: str, model: BaseModel) -> None:
145
+ """The SDK accepts optional contract fields only when absent or valid, never null."""
146
+
147
+ payload = model.model_dump(mode="json", by_alias=True)
148
+
149
+ assert _null_paths(payload) == []
150
+ _contract_validator(contract_id).validate(payload)
@@ -365,8 +365,8 @@ def test_portfolio_group_preflight_reports_cascades(monkeypatch) -> None:
365
365
  }
366
366
 
367
367
 
368
- def test_cascade_blockers_stop_bulk_delete(monkeypatch) -> None:
369
- blocker = "PortfolioGroupMembership: A cascade reaches a table you cannot write."
368
+ def test_impact_blockers_stop_bulk_delete(monkeypatch) -> None:
369
+ blocker = "PortfolioGroup: You cannot write this table."
370
370
  _stub_portfolio_group_preflight(monkeypatch, DeleteRowsImpact(impact=None, blockers=[blocker]))
371
371
 
372
372
  def unexpected_delete(*args, **kwargs):
@@ -143,17 +143,13 @@ def test_set_null_updates_and_hidden_tables_are_described() -> None:
143
143
  "on_update": "no action",
144
144
  },
145
145
  ],
146
+ # Cascades never block; only the table itself and its DataSource do.
146
147
  "blockers": [
147
148
  {"code": "data_source_read_only", "message": "The DataSource does not accept writes."},
148
149
  {
149
- "code": "cascade_target_unregistered",
150
- "message": "A foreign-key action modifies a table MetaTables does not manage.",
151
- "node": "relation:public.legacy_notes",
152
- },
153
- {
154
- "code": "cascade_target_not_writable",
155
- "message": "A cascade reaches a table you cannot write.",
156
- "node": "hidden:1",
150
+ "code": "table_not_writable",
151
+ "message": "You cannot write this table.",
152
+ "node": INDEX,
157
153
  },
158
154
  ],
159
155
  }
@@ -171,8 +167,7 @@ def test_set_null_updates_and_hidden_tables_are_described() -> None:
171
167
  ]
172
168
  assert result.blockers == [
173
169
  "The DataSource does not accept writes.",
174
- "public.legacy_notes: A foreign-key action modifies a table MetaTables does not manage.",
175
- "A table you cannot view: A cascade reaches a table you cannot write.",
170
+ "Index: You cannot write this table.",
176
171
  ]
177
172
 
178
173
 
@@ -38,8 +38,8 @@ def test_package_metadata_enforces_sdk_9_floor_without_exact_patch_pin() -> None
38
38
  def test_package_metadata_requires_extracted_metatables_client() -> None:
39
39
  requirement = _requirement("mainsequence-metatable")
40
40
 
41
- assert Version("0.1.16") not in requirement.specifier
42
- assert Version("0.1.17") in requirement.specifier
41
+ assert Version("0.1.17") not in requirement.specifier
42
+ assert Version("0.1.18") in requirement.specifier
43
43
  assert Version("0.1.99") in requirement.specifier
44
44
  assert Version("0.2.0") not in requirement.specifier
45
45
  assert all(specifier.operator != "==" for specifier in requirement.specifier)
@@ -1,71 +0,0 @@
1
- from __future__ import annotations
2
-
3
- import json
4
- from pathlib import Path
5
- from typing import Any
6
-
7
- import pytest
8
- from jsonschema import Draft202012Validator
9
- from pydantic import ValidationError
10
- from referencing import Registry, Resource
11
-
12
- from msm.api.http import (
13
- BULK_ACTION_EXECUTION_CONTRACT,
14
- BULK_ACTION_PREFLIGHT_CONTRACT,
15
- CORE_TABULAR_FRAME_CONTRACT,
16
- BulkActionExecutionRequest,
17
- BulkActionPreflightResponse,
18
- RESOURCE_COLLECTION_CONTRACT,
19
- RESOURCE_DISCOVERY_CONTRACT,
20
- ResourceCollection,
21
- ResourceDiscovery,
22
- TabularFrameResponse,
23
- )
24
-
25
- COMMAND_CENTER_SDK_TAG = "v0.1.13"
26
- COMMAND_CENTER_SDK_COMMIT = "f11c0ea8c5d3fc267997e476aa1522c798fdaced"
27
- CONTRACTS_ROOT = Path(__file__).parents[3] / "contracts" / "command-center-sdk-v0.1.13"
28
-
29
- _CONTRACT_MODELS = {
30
- RESOURCE_COLLECTION_CONTRACT: ResourceCollection[dict[str, Any]],
31
- RESOURCE_DISCOVERY_CONTRACT: ResourceDiscovery,
32
- BULK_ACTION_EXECUTION_CONTRACT: BulkActionExecutionRequest,
33
- BULK_ACTION_PREFLIGHT_CONTRACT: BulkActionPreflightResponse,
34
- CORE_TABULAR_FRAME_CONTRACT: TabularFrameResponse,
35
- }
36
-
37
-
38
- def _schema_registry() -> Registry:
39
- schemas = [
40
- json.loads(path.read_text()) for path in (CONTRACTS_ROOT / "schemas").glob("*.schema.json")
41
- ]
42
- return Registry().with_resources(
43
- (schema["$id"], Resource.from_contents(schema)) for schema in schemas
44
- )
45
-
46
-
47
- def test_vendored_contract_bundle_is_pinned_to_latest_verified_revision() -> None:
48
- pin = (CONTRACTS_ROOT / "PINNED_FROM.txt").read_text()
49
- assert f"tag={COMMAND_CENTER_SDK_TAG}" in pin
50
- assert f"commit={COMMAND_CENTER_SDK_COMMIT}" in pin
51
-
52
-
53
- @pytest.mark.parametrize("contract_id", sorted(_CONTRACT_MODELS))
54
- def test_wire_models_match_authoritative_sdk_fixtures(contract_id: str) -> None:
55
- manifest = json.loads((CONTRACTS_ROOT / "manifest.json").read_text())
56
- entry = next(item for item in manifest["schemas"] if item["contract"] == contract_id)
57
- schema = json.loads((CONTRACTS_ROOT / entry["file"]).read_text())
58
- Draft202012Validator.check_schema(schema)
59
- validator = Draft202012Validator(schema, registry=_schema_registry())
60
- model = _CONTRACT_MODELS[contract_id]
61
-
62
- for fixture_path in entry["fixtures"]["valid"]:
63
- payload = json.loads((CONTRACTS_ROOT / fixture_path).read_text())
64
- validator.validate(payload)
65
- model.model_validate(payload)
66
-
67
- for fixture_path in entry["fixtures"]["invalid"]:
68
- payload = json.loads((CONTRACTS_ROOT / fixture_path).read_text())
69
- assert list(validator.iter_errors(payload)), fixture_path
70
- with pytest.raises(ValidationError):
71
- model.model_validate(payload)
File without changes
File without changes