ms-markets 3.0.0.dev40__tar.gz → 3.0.1.dev41__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/CHANGELOG.md +9 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/PKG-INFO +1 -1
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/ADR/0047-markets-api-application-boundary.md +11 -14
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/fast_api/v1/index.md +5 -36
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/fast_api/v1/rows.md +2 -4
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/knowledge/msm/client/index.md +4 -7
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/knowledge/msm/indices/formula_indexes.md +1 -1
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/knowledge/msm_portfolios/portfolios/index.md +3 -3
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/planning/implementation_tasks/markets_contracts_package_and_client_plan.md +1 -1
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/pyproject.toml +1 -1
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/api/remote.py +1 -1
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/conftest.py +0 -17
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/client/test_remote_backend.py +8 -26
- ms_markets-3.0.0.dev40/tests/msm/fastapi/v1/test_registry_write_policy.py +0 -191
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/.agents/skills/ms_markets/accounts/account_workflow/SKILL.md +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/.agents/skills/ms_markets/accounts/valuation_resolver/SKILL.md +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/.agents/skills/ms_markets/assets/asset_indexed_updaters/SKILL.md +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/.agents/skills/ms_markets/assets/asset_model_extension/SKILL.md +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/.agents/skills/ms_markets/indices/index_workflow/SKILL.md +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/.agents/skills/ms_markets/platform/bootstrap_registration/SKILL.md +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/.agents/skills/ms_markets/platform/metatable_migrations/SKILL.md +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/.agents/skills/ms_markets/portfolios/portfolio_workflow/SKILL.md +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/.agents/skills/ms_markets/portfolios/portfolio_workflow/references/position_accounting.md +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/.agents/skills/ms_markets/pricing/fixed_income_curve_building/SKILL.md +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/.agents/skills/ms_markets/pricing/general_pricing/SKILL.md +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/.gitignore +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/LICENSE +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/README.md +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/ADR/0005-pricing-package-refactor.md +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/ADR/0006-asset-package-boundary.md +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/ADR/0008-metatable-table-and-api-model-split.md +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/ADR/0019-msm-portfolios-package-boundary.md +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/ADR/0022-alembic-metatable-migration-alignment.md +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/ADR/0023-deterministic-alembic-naming.md +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/ADR/0024-namespace-scoped-alembic-version-locations.md +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/ADR/0025-direct-metatable-runtime-binding.md +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/ADR/0026-explicit-pricing-market-data-sets.md +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/ADR/0027-account-target-position-portfolio-exposure.md +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/ADR/0028-core-calendar-reference-data.md +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/ADR/0029-account-holdings-virtual-fund-allocation-policy.md +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/ADR/0030-explicit-portfolio-price-source-dependency.md +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/ADR/0031-generic-portfolio-valuation-source.md +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/ADR/0032-portfolio-group-many-to-many.md +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/ADR/0033-pricing-valuation-position-boundary.md +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/ADR/0034-command-center-asset-monitor-helpers.md +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/ADR/0035-pricing-curve-identity-and-market-data-curve-bindings.md +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/ADR/0036-prepared-pricing-valuation-context.md +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/ADR/0037-index-formula-and-custom-calculation-framework.md +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/ADR/0038-index-user-api-and-fastapi-exploration.md +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/ADR/0039-sdk-8-hard-cut-and-1-0-package-contract.md +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/ADR/0040-portfolio-temporal-ownership.md +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/ADR/0041-installable-provider-http-toolkit.md +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/ADR/0042-position-cash-flow-portfolio-accounting.md +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/ADR/0043-sdk-9-metatables-client-hard-cut.md +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/ADR/0044-namespaced-migration-provider-package.md +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/ADR/0045-squashed-initial-schema-and-namespaced-packages.md +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/ADR/0046-legacy-0017-schema-bridge.md +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/ADR/0048-time-index-vocabulary-rename.md +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/ADR/README.md +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/ADR/fast_api/v1/0001-calendar-crud-route.md +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/ADR/fast_api/v1/0002-command-center-adapter-discovery.md +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/ADR/fast_api/v1/0003-fixed-income-pricer-api.md +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/ADR/fast_api/v1/0004-delete-impact-contract.md +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/changelog.md +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/concepts.md +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/fast_api/v1/accounts.md +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/fast_api/v1/assets.md +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/fast_api/v1/calendars.md +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/fast_api/v1/command_center_bulk_actions.md +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/fast_api/v1/fixed_income_pricer.md +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/fast_api/v1/indexes.md +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/fast_api/v1/portfolio.md +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/fast_api/v1/portfolio_groups.md +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/fast_api/v1/portfolio_signal_metadata.md +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/fast_api/v1/pricing_curves.md +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/fast_api/v1/pricing_market_data.md +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/fast_api/v1/provider_adapter_toolkit.md +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/fast_api/v1/resource_contracts.md +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/fast_api/v1/settings.md +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/fast_api/v1/virtualfund.md +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/getting-started.md +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/img/main-sequence-markets/main_sequence_markets_alternate_lockup_black_bg.png +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/img/main-sequence-markets/main_sequence_markets_alternate_lockup_transparent.png +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/img/main-sequence-markets/main_sequence_markets_icon_emblem_black_bg.png +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/img/main-sequence-markets/main_sequence_markets_icon_emblem_transparent.png +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/img/main-sequence-markets/main_sequence_markets_market_mark_only_black_bg.png +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/img/main-sequence-markets/main_sequence_markets_market_mark_only_transparent.png +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/img/main-sequence-markets/main_sequence_markets_primary_wordmark_black_bg.png +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/img/main-sequence-markets/main_sequence_markets_primary_wordmark_transparent.png +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/index.md +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/knowledge/msm/accounts/index.md +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/knowledge/msm/accounts/virtual_funds.md +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/knowledge/msm/assets/asset_indexed_updaters.md +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/knowledge/msm/assets/bonds.md +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/knowledge/msm/assets/currency.md +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/knowledge/msm/assets/index.md +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/knowledge/msm/calendars/index.md +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/knowledge/msm/derivatives/futures.md +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/knowledge/msm/derivatives/index.md +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/knowledge/msm/execution/index.md +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/knowledge/msm/index.md +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/knowledge/msm/indices/index.md +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/knowledge/msm/migrations/index.md +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/knowledge/msm/models/index.md +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/knowledge/msm/platform/index.md +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/knowledge/msm/platform/meta_table_registration.md +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/knowledge/msm/platform/metatable_migrations.md +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/knowledge/msm/repositories/index.md +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/knowledge/msm/services/index.md +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/knowledge/msm_portfolios/index.md +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/knowledge/msm_portfolios/portfolios/accounting.md +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/knowledge/msm_pricing/analytics.md +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/knowledge/msm_pricing/curves.md +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/knowledge/msm_pricing/fixings.md +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/knowledge/msm_pricing/index.md +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/knowledge/msm_pricing/instruments.md +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/knowledge/msm_pricing/market_data_sets.md +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/knowledge/msm_pricing/runtime_resolution.md +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/knowledge/msm_pricing/scenarios/curves.md +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/knowledge/msm_pricing/scenarios/index.md +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/knowledge/msm_pricing/scenarios/valuation.md +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/planning/implementation_tasks/benchmark_curve_resolution_plan.md +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/planning/implementation_tasks/bond_helper_curve_reconstruction_upstream_plan.md +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/planning/implementation_tasks/cross_currency_helper_curve_reconstruction_upstream_plan.md +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/planning/implementation_tasks/generic_curve_reconstruction_upstream_plan.md +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/planning/implementation_tasks/generic_valuation_scenario_workflow_plan.md +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/planning/implementation_tasks/index_formula_and_custom_calculation_plan.md +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/planning/implementation_tasks/python_3_13_mainsequence_5_upgrade_plan.md +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/planning/implementation_tasks/reusable_valuation_portfolio_scenario_analytics_plan.md +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/reference/index.md +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/reference/indices.md +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/releasing.md +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/stylesheets/custom.css +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/tutorial/01-assets.md +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/tutorial/02-calendars.md +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/tutorial/03-accounts.md +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/tutorial/04-portfolios.md +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/tutorial/05-pricing.md +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/tutorial/06-index-formulas.md +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/tutorial/index.md +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/upgrading-to-3.md +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/__init__.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm/__init__.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm/accounts/__init__.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm/accounts/account_portfolio_full_workflow.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm/accounts/account_virtual_fund_allocation_example.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm/accounts/utils/__init__.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm/accounts/utils/reference_data.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm/assets/__init__.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm/assets/asset_category_workflow.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm/assets/asset_crud_workflow.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm/assets/asset_type_constants.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm/assets/bond_workflow.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm/assets/currency_spot_workflow.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm/assets/derivatives/__init__.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm/assets/derivatives/crypto_future_without_figi.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm/assets/derivatives/index_future_from_openfigi.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm/assets/us_treasury_bond_workflow.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm/assets/utils/__init__.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm/assets/utils/reference_data.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm/calendars/__init__.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm/calendars/calendar_materialization_workflow.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm/http_provider_contracts.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm/indices/__init__.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm/indices/delta_hedged_option_index.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm/indices/extension_owned_index_storage.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm/indices/formula_index.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm/indices/index_values_frequency_migration.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm/indices/plain_index_values.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm/platform/__init__.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm/platform/bootstrap.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm/platform/custom_asset_details_extension.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm/platform/inspect_markets_metatable_models.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm/platform/metatable_migration_lifecycle.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm/workflows/__init__.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm/workflows/asset_category_workflow.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm_portfolios/portfolio_cashflows_and_fx_valuation_example.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm_portfolios/portfolio_custom_cashflow_model_example.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm_portfolios/portfolio_custom_valuation_column_example.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm_portfolios/portfolio_equal_weights_config.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm_portfolios/portfolio_equal_weights_dynamic_migration.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm_portfolios/portfolio_equal_weights_example.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm_portfolios/portfolio_equal_weights_prepare_schema.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm_portfolios/portfolio_equal_weights_run.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm_portfolios/portfolio_groups_example.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm_portfolios/portfolio_midnight_timestamp_repair.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm_portfolios/portfolio_perpetual_funding_example.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm_portfolios/portfolio_read_services.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm_portfolios/portfolio_trailing_adv_participation_example.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm_portfolios/portfolio_trailing_adv_participation_preview.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm_pricing/__init__.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm_pricing/bond_pricing_example/README.md +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm_pricing/bond_pricing_example/__init__.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm_pricing/bond_pricing_example/main.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm_pricing/bond_terms.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm_pricing/curve_reconstruction.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm_pricing/curve_scenario.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm_pricing/fixed_income_spread_analytics.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm_pricing/import_pricing_runtime.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm_pricing/instrument_identity_boundary.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm_pricing/pricing_registry_rows.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm_pricing/pricing_valuation_context.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm_pricing/resolved_curve_scenario.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm_pricing/utils/__init__.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm_pricing/utils/mock_market_data.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm_pricing/valuation_inputs.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/examples/msm_pricing/valuation_scenario_workflow.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/mkdocs.yml +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/__init__.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/_deprecated_imports.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/analytics/__init__.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/analytics/indices/__init__.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/analytics/indices/contracts.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/analytics/indices/engine.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/analytics/indices/spreads.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/api/__init__.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/api/accounts.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/api/assets.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/api/base.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/api/calendars/__init__.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/api/calendars/_validation.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/api/calendars/core.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/api/calendars/dates.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/api/calendars/events.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/api/calendars/sessions.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/api/derivatives.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/api/execution.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/api/formula_indices.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/api/http/__init__.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/api/http/_base.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/api/http/bulk_actions.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/api/http/collections.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/api/http/discovery.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/api/http/errors.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/api/http/operations.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/api/http/table_impact.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/api/http/tabular.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/api/indices.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/api/issuers.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/api/portfolios.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/api/virtual_funds.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/base.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/bootstrap.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/client/__init__.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/client/client.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/client/discovery.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/constants.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/data_nodes/__init__.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/data_nodes/accounts/__init__.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/data_nodes/accounts/constants.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/data_nodes/accounts/storage.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/data_nodes/accounts/virtual_funds/__init__.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/data_nodes/accounts/virtual_funds/storage.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/data_nodes/assets/__init__.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/data_nodes/assets/asset_indexed.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/data_nodes/assets/snapshots.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/data_nodes/assets/storage.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/data_nodes/execution/__init__.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/data_nodes/execution/storage.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/data_nodes/indices/__init__.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/data_nodes/indices/formula.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/data_nodes/indices/storage.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/data_nodes/indices/timestamped.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/data_nodes/indices/values.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/data_nodes/utils/__init__.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/data_nodes/utils/namespaces.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/data_nodes/utils/output_metadata.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/data_nodes/utils/stamped.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/data_nodes/utils/storage_schema.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/data_nodes/utils/time.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/distribution.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/identity.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/migrations/__init__.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/models/__init__.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/models/accounts/__init__.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/models/accounts/allocation_models.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/models/accounts/core.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/models/accounts/groups.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/models/accounts/virtual_funds.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/models/assets/__init__.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/models/assets/bonds.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/models/assets/categories.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/models/assets/core.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/models/assets/currency_spot.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/models/assets/provider_details.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/models/assets/types.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/models/calendars/__init__.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/models/calendars/core.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/models/calendars/dates.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/models/calendars/events.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/models/calendars/sessions.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/models/derivatives.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/models/execution.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/models/index_dataset_availability.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/models/index_formulas.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/models/indices.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/models/issuers.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/models/portfolio_dataset_availability.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/models/portfolios/__init__.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/models/portfolios/core.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/models/portfolios/groups.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/models/portfolios/signals.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/models/registration.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/py.typed +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/repositories/__init__.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/repositories/account_allocation_models.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/repositories/account_groups.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/repositories/accounts.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/repositories/asset_categories.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/repositories/assets.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/repositories/base.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/repositories/calendars/__init__.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/repositories/calendars/core.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/repositories/calendars/dates.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/repositories/calendars/events.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/repositories/calendars/sessions.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/repositories/crud.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/repositories/execution.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/repositories/indices.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/repositories/portfolios.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/repositories/provider_details.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/repositories/virtual_funds.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/services/__init__.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/services/accounts/__init__.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/services/accounts/account_virtual_allocations.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/services/accounts/core.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/services/accounts/virtual_fund_holdings.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/services/accounts/virtual_funds.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/services/accounts/virtual_funds_public_api.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/services/asset_categories.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/services/asset_master_lists.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/services/assets/__init__.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/services/assets/open_figi_lists/market_sector.json +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/services/assets/open_figi_lists/security_type.json +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/services/assets/open_figi_lists/security_type_2.json +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/services/assets/openfigi.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/services/assets/reference_details.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/services/calendars/__init__.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/services/calendars/materialization.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/services/calendars/pandas_market.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/services/calendars/records.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/services/calendars/validation.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/services/execution.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/services/holdings.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/services/indices/__init__.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/services/indices/actors.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/services/indices/availability.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/services/indices/catalog.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/services/indices/contracts.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/services/indices/delete_impact.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/services/indices/relationships.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/services/portfolios.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/services/provider_details.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/services/public_api_settings.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/services/reference_data.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/services/related_meta_tables.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/services/table_impact.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/services/target_positions.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/settings.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/storage_copies.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/storage_instances.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/time_index/__init__.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/time_index/accounts/__init__.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/time_index/accounts/constants.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/time_index/accounts/storage.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/time_index/accounts/virtual_funds/__init__.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/time_index/accounts/virtual_funds/storage.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/time_index/assets/__init__.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/time_index/assets/asset_indexed.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/time_index/assets/snapshots.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/time_index/assets/storage.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/time_index/execution/__init__.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/time_index/execution/storage.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/time_index/indices/__init__.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/time_index/indices/formula.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/time_index/indices/storage.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/time_index/indices/timestamped.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/time_index/indices/values.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/time_index/utils/__init__.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/time_index/utils/namespaces.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/time_index/utils/output_metadata.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/time_index/utils/stamped.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/time_index/utils/storage_schema.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm/time_index/utils/time.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_cli/__init__.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_cli/main.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_cli/rename_preflight.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_migrations/__init__.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_migrations/env.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_migrations/registry.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_migrations/script.py.mako +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_migrations/versions/__init__.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_migrations/versions/mainsequence_examples/__init__.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_migrations/versions/mainsequence_markets/0017_legacy_schema_anchor.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_migrations/versions/mainsequence_markets/0018_initial_schema.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_migrations/versions/mainsequence_markets/0019_ledger_hypertable_uniqueness.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_migrations/versions/mainsequence_markets/0020_expected_columns.json +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_migrations/versions/mainsequence_markets/0020_merge_legacy_schema.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_migrations/versions/mainsequence_markets/0021_portfolio_dataset_catalog.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_migrations/versions/mainsequence_markets/0022_identity_named_uid_columns.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_migrations/versions/mainsequence_markets/__init__.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/__init__.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/accounting/__init__.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/accounting/configuration.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/accounting/contracts.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/accounting/lifecycle.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/accounting/projections.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/accounting/reducer.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/accounting/valuation.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/api/__init__.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/api/datasets.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/api/market_metadata.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/api/portfolios.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/asset_scope.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/bootstrap.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/configuration.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/contrib/__init__.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/contrib/prices/__init__.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/contrib/prices/data_nodes.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/contrib/prices/updaters.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/contrib/prices/utils.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/contrib/signals/__init__.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/contrib/signals/external_weights.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/contrib/signals/fixed_weights.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/contrib/signals/intraday_trend.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/contrib/signals/market_cap.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/contrib/signals/portfolio_replicator.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/contrib/signals/regression_utils.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/data_nodes/__init__.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/data_nodes/base.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/data_nodes/constants.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/data_nodes/contract_instances.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/data_nodes/metadata.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/data_nodes/portfolio_identity.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/data_nodes/portfolios/__init__.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/data_nodes/portfolios/accounting.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/data_nodes/portfolios/analytics.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/data_nodes/portfolios/calendar_events.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/data_nodes/portfolios/rebalance.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/data_nodes/portfolios/storage.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/data_nodes/portfolios/temporal.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/data_nodes/portfolios/weights.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/data_nodes/prices/__init__.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/data_nodes/prices/storage.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/data_nodes/signals/__init__.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/data_nodes/signals/storage.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/data_nodes/signals/weights.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/enums.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/models/__init__.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/models/portfolios/__init__.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/models/portfolios/metadata.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/models/rebalancing.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/models/signals.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/rebalance_strategy/__init__.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/rebalance_strategy/accounting.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/rebalance_strategy/base.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/rebalance_strategy/calendar_event.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/rebalance_strategy/immediate_signal.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/rebalance_strategy/liquidity_constrained.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/rebalance_strategy/time_weighted.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/rebalance_strategy/trailing_average_daily_volume.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/rebalance_strategy/volume_participation.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/repositories/__init__.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/repositories/market_metadata.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/services/__init__.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/services/calendars.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/services/market_metadata.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/services/portfolio_datasets.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/services/portfolio_reads.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/services/portfolio_timestamp_repair.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/services/public_api.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/services/series_moves.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/time_index/__init__.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/time_index/base.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/time_index/constants.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/time_index/contract_instances.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/time_index/metadata.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/time_index/portfolio_identity.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/time_index/portfolios/__init__.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/time_index/portfolios/accounting.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/time_index/portfolios/analytics.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/time_index/portfolios/calendar_events.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/time_index/portfolios/rebalance.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/time_index/portfolios/storage.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/time_index/portfolios/temporal.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/time_index/portfolios/weights.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/time_index/prices/__init__.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/time_index/prices/storage.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/time_index/signals/__init__.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/time_index/signals/storage.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/time_index/signals/weights.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_portfolios/utils.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/README.md +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/__init__.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/analytics/__init__.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/analytics/spreads/__init__.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/analytics/spreads/base.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/analytics/spreads/fixed_income.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/api/__init__.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/api/asset_pricing_operations.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/api/curve_building_details.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/api/curves.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/api/index_convention_details.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/api/instruments.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/api/market_data_bindings.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/api/pricing_details.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/bootstrap.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/config.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/data_interface/__init__.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/data_interface/data_interface.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/data_nodes/__init__.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/data_nodes/curve_codec.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/data_nodes/curves/__init__.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/data_nodes/curves/key_nodes.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/data_nodes/curves/storage.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/data_nodes/index_fixings/__init__.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/data_nodes/index_fixings/storage.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/data_nodes/pricing_details/__init__.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/data_nodes/pricing_details/storage.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/instruments/__init__.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/instruments/base_instrument.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/instruments/bond.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/instruments/bond_terms.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/instruments/callability.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/instruments/interest_rate_swap.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/instruments/json_codec.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/instruments/ql_fields.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/meta_tables.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/models/__init__.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/models/curve_building_details.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/models/curves.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/models/index_convention_details.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/models/market_data_bindings.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/models/pricing_details.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/pricing_engine/__init__.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/pricing_engine/bond_analytics.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/pricing_engine/bond_pricer.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/pricing_engine/coupon_schedules.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/pricing_engine/curve_overlays.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/pricing_engine/curves/__init__.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/pricing_engine/curves/adapters.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/pricing_engine/curves/bond_helper_key_nodes.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/pricing_engine/curves/bond_helpers.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/pricing_engine/curves/cross_currency_helpers.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/pricing_engine/curves/cross_currency_key_nodes.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/pricing_engine/curves/fixed_income_key_nodes.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/pricing_engine/curves/helper_key_nodes.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/pricing_engine/curves/helper_resolution.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/pricing_engine/curves/helpers.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/pricing_engine/curves/observations.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/pricing_engine/curves/quote_units.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/pricing_engine/curves/reconstruction.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/pricing_engine/indices.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/pricing_engine/indices_builders.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/pricing_engine/resolvers.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/pricing_engine/swap_pricer.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/scenarios/__init__.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/scenarios/curves/__init__.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/scenarios/curves/engine.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/scenarios/curves/key_node_bumps.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/scenarios/curves/models.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/scenarios/valuation/__init__.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/scenarios/valuation/engine.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/scenarios/valuation/impacts.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/scenarios/valuation/line_pricing.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/scenarios/valuation/models.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/settings.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/time_index/__init__.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/time_index/curve_codec.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/time_index/curves/__init__.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/time_index/curves/key_nodes.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/time_index/curves/storage.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/time_index/index_fixings/__init__.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/time_index/index_fixings/storage.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/time_index/pricing_details/__init__.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/time_index/pricing_details/storage.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/utils.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/src/msm_pricing/valuation.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/__init__.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/PINNED_FROM.txt +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/README.md +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/adapter-from-api-discovery-v1.inline-health-endpoint.json +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/adapter-from-api-discovery-v1.retired-response-mappings.json +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/adapter-from-api-discovery-v1.unknown-operation-field.json +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/adapter-from-api-public-config-v1.direct-source-mismatch.json +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/adapter-from-api-query-v1.retired-response-mapping-id.json +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/adapter-from-api-query-v1.unknown-field.json +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/adapter-from-api-secure-config-v1.unknown-field.json +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/app-component-authoring-v1.invalid-binding-port.json +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/app-component-authoring-v1.invalid-mock-version.json +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/bulk-action-discovery-v1.duplicate-selection-mode.json +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/bulk-action-discovery-v1.unsafe-endpoint.json +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/bulk-action-execution-v1.empty-explicit.json +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/bulk-action-execution-v1.presentation-filter.json +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/bulk-action-preflight-v1.invalid-blockers.json +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/bulk-action-preflight-v1.missing-allowed.json +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/resource-collection-v1.negative-total.json +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/resource-collection-v1.select-without-options.json +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/resource-discovery-v1.incomplete-generic-column.json +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/resource-discovery-v1.unknown-field.json +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/resource-discovery-v1.unsafe-identity.json +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/static-site-iframe-v1.invalid-target-uid.json +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/static-site-iframe-v1.missing-token.json +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/static-site-iframe-v1.unknown-credential-error.json +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/static-site-iframe-v1.unrestricted-user-credential.json +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/static-site-iframe-v1.wrong-version.json +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/table-widget-authoring-v1.community-formula.json +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/table-widget-authoring-v1.invalid-selection.json +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/table-widget-authoring-v1.unknown-widget.json +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/tabular-frame-v1.invalid-table-visuals.json +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/tabular-frame-v1.long-with-value-fields.json +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/tabular-frame-v1.missing-rows.json +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/tabular-frame-v1.unknown-field-type.json +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/tabular-transform-authoring-v1.incomplete-pivot.json +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/tabular-transform-authoring-v1.latest-without-keys.json +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/workspace-document-v1.missing-id.json +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/workspace-document-v1.numeric-id.json +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/adapter-from-api-discovery-v1.orders.json +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/adapter-from-api-public-config-v1.backend.json +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/adapter-from-api-public-config-v1.direct.json +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/adapter-from-api-query-v1.operation.json +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/adapter-from-api-secure-config-v1.values.json +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/app-component-authoring-v1.manual.json +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/app-component-authoring-v1.mock-json.json +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/bulk-action-discovery-v1.archive.json +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/bulk-action-discovery-v1.empty.json +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/bulk-action-execution-v1.all-matching.json +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/bulk-action-execution-v1.explicit.json +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/bulk-action-preflight-v1.allowed.json +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/bulk-action-preflight-v1.blocked.json +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/resource-collection-v1.minimal.json +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/resource-collection-v1.with-controls.json +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/resource-discovery-v1.records.json +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/static-site-iframe-v1.fastapi-credential-error.json +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/static-site-iframe-v1.fastapi-credential-request.json +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/static-site-iframe-v1.fastapi-credential-response.json +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/static-site-iframe-v1.fastapi-runtime-starting.json +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/static-site-iframe-v1.initialize.json +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/static-site-iframe-v1.ready.json +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/table-widget-authoring-v1.pro-table.json +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/table-widget-authoring-v1.table.json +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/tabular-frame-v1.minimal.json +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/tabular-frame-v1.table-visuals.json +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/tabular-frame-v1.time-series.json +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/tabular-transform-authoring-v1.filter.json +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/tabular-transform-authoring-v1.pivot-latest.json +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/workspace-document-v1.minimal.json +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/workspace-document-v1.nested.json +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/manifest.json +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/schemas/adapter-from-api-discovery-v1.schema.json +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/schemas/adapter-from-api-public-config-v1.schema.json +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/schemas/adapter-from-api-query-v1.schema.json +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/schemas/adapter-from-api-secure-config-v1.schema.json +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/schemas/app-component-authoring-v1.schema.json +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/schemas/bulk-action-discovery-v1.schema.json +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/schemas/bulk-action-execution-v1.schema.json +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/schemas/bulk-action-preflight-v1.schema.json +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/schemas/resource-collection-v1.schema.json +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/schemas/resource-discovery-v1.schema.json +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/schemas/static-site-iframe-v1.schema.json +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/schemas/table-widget-authoring-v1.schema.json +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/schemas/tabular-frame-v1.schema.json +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/schemas/tabular-transform-authoring-v1.schema.json +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/contracts/command-center-sdk-v0.1.13/schemas/workspace-document-v1.schema.json +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/identity/__init__.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/identity/test_date_and_time_identities.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/identity/test_pinned_identities.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/__init__.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/api/__init__.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/api/calendars/__init__.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/api/calendars/test_rows.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/api/test_assets.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/api/test_bonds.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/api/test_composite_bulk_reads.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/api/test_derivatives.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/api/test_http.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/api/test_indices.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/api/test_issuers.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/api/test_portfolio_groups.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/api/test_renamed_fields.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/api/test_row_bulk_and_count.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/api/test_rows.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/assets/__init__.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/assets/test_asset_snapshots.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/assets/test_openfigi.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/bootstrap/__init__.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/bootstrap/test_bootstrap.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/client/__init__.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/client/test_discovery.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/client/test_remote_attachment.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/fastapi/__init__.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/fastapi/v1/__init__.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/fastapi/v1/test_accounts.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/fastapi/v1/test_acting_identity.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/fastapi/v1/test_asset_categories.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/fastapi/v1/test_assets.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/fastapi/v1/test_batch_lookups.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/fastapi/v1/test_bulk_action_contracts.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/fastapi/v1/test_bulk_actions.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/fastapi/v1/test_calendars.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/fastapi/v1/test_catalog_aware_deletes.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/fastapi/v1/test_command_center_adapter.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/fastapi/v1/test_common.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/fastapi/v1/test_deployment_entrypoint.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/fastapi/v1/test_dev_cors.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/fastapi/v1/test_index_formula_routes.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/fastapi/v1/test_indices.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/fastapi/v1/test_lifespan_discovery.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/fastapi/v1/test_openapi.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/fastapi/v1/test_portfolio_groups.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/fastapi/v1/test_portfolio_signals.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/fastapi/v1/test_portfolios.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/fastapi/v1/test_pricing_assets.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/fastapi/v1/test_pricing_curves.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/fastapi/v1/test_pricing_market_data.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/fastapi/v1/test_request_identity.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/fastapi/v1/test_runtime_bootstrap.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/fastapi/v1/test_settings.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/fastapi/v1/test_sidecar_includes.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/fastapi/v1/test_virtual_funds.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/imports/__init__.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/imports/test_import.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/indices/test_engine.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/indices/test_examples.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/indices/test_formula_index_contract.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/indices/test_index_actor.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/indices/test_index_availability.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/indices/test_index_delete_impact.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/indices/test_index_lifecycle_services.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/indices/test_index_values.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/indices/test_models_and_migration.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/indices/test_provider_index_values.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/indices/test_public_api.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/indices/test_related_meta_tables.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/indices/test_resolution_and_repository.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/indices/test_spread_compatibility.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/indices/test_updaters.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/maintenance/fixtures/legacy_0017.sql +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/maintenance/test_identity_named_uid_columns_migration.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/maintenance/test_ledger_hypertable_migration.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/maintenance/test_legacy_schema_migration.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/maintenance/test_migration_job.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/maintenance/test_migrations.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/models/__init__.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/models/calendars/__init__.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/models/calendars/test_tables.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/models/test_metatable_models.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/repositories/__init__.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/repositories/test_renamed_columns.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/repositories/test_repositories.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/services/assets/test_reference_details.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/services/calendars/__init__.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/services/calendars/test_materialization.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/services/test_account_virtual_allocations.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/services/test_latest_asset_references.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/services/test_table_impact.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/test_cli.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/test_constants.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/test_distribution.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/test_package_metadata.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/test_rename_preflight.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/test_schema_names.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/test_storage_copies.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/test_storage_instances.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/time_index/__init__.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/time_index/test_asset_indexed_updaters.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/time_index/test_contracts.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/time_index/test_datetime_normalization.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/time_index/test_deprecated_aliases.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/time_index/test_index_stamped_updaters.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/time_index/test_package_structure.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/time_index/test_provisioning_boundary.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm/time_index/test_target_positions_contracts.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm_portfolios/accounting/test_accounting.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm_portfolios/api/test_rows.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm_portfolios/configuration/test_prices_configuration.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm_portfolios/examples/test_equal_weight_portfolio_schema.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm_portfolios/examples/test_trailing_adv_participation_preview.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm_portfolios/imports/test_bootstrap.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm_portfolios/imports/test_boundaries.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm_portfolios/models/test_model_graph.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm_portfolios/services/test_calendars.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm_portfolios/services/test_portfolio_datasets.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm_portfolios/services/test_portfolio_reads.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm_portfolios/services/test_portfolio_timestamp_repair.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm_portfolios/services/test_series_moves.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm_portfolios/test_portfolios_logger.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm_portfolios/time_index/test_contract_instances.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm_portfolios/time_index/test_daily_price_interpolation.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm_portfolios/time_index/test_datetime_normalization.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm_portfolios/time_index/test_engine_instance_tables.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm_portfolios/time_index/test_portfolio_contracts.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm_portfolios/time_index/test_storage_first_surface.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm_portfolios/time_index/test_virtual_fund_holdings_contracts.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm_pricing/__init__.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm_pricing/analytics/spreads/test_base.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm_pricing/analytics/spreads/test_fixed_income.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm_pricing/api/__init__.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm_pricing/api/test_asset_pricing_operations.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm_pricing/api/test_curve_building_details.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm_pricing/api/test_curves.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm_pricing/api/test_index_convention_details.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm_pricing/api/test_instruments.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm_pricing/api/test_market_data_bindings.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm_pricing/api/test_pricing_details.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm_pricing/data_interface/test_data_interface.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm_pricing/examples/test_mock_market_data.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm_pricing/instruments/__init__.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm_pricing/instruments/test_base_instrument.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm_pricing/instruments/test_benchmark_curve_resolution.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm_pricing/instruments/test_bond_terms.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm_pricing/instruments/test_floating_bond_roundtrip.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm_pricing/instruments/test_index_uid_references.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm_pricing/models/__init__.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm_pricing/models/test_pricing_details.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm_pricing/pricing_engine/curves/test_bond_helper_reconstruction.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm_pricing/pricing_engine/curves/test_bond_helpers.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm_pricing/pricing_engine/curves/test_cross_currency_helpers.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm_pricing/pricing_engine/curves/test_reconstruction.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm_pricing/pricing_engine/test_curve_overlays.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm_pricing/pricing_engine/test_resolvers.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm_pricing/scenarios/curves/test_curve_scenarios.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm_pricing/scenarios/curves/test_key_node_bumps.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm_pricing/scenarios/curves/test_resolved_curve_scenarios.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm_pricing/scenarios/valuation/test_line_pricing.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm_pricing/scenarios/valuation/test_workflow.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm_pricing/test_bond_pricing_example.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm_pricing/test_bootstrap.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm_pricing/test_config.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm_pricing/test_meta_tables.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm_pricing/test_package_boundaries.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm_pricing/test_valuation.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm_pricing/time_index/test_curves.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/msm_pricing/time_index/test_index_fixings.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/packaging/__init__.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/packaging/test_dev_release_version.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/packaging/test_distribution_sources.py +0 -0
- {ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/tests/packaging/test_requirements_export.py +0 -0
|
@@ -7,6 +7,15 @@ and this project follows versioned releases.
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
### Removed
|
|
11
|
+
|
|
12
|
+
- The registry write allow-list of 3.0.0: `apps.v1.policy` and the Main Sequence
|
|
13
|
+
Constant `MARKETS_REGISTRY_WRITERS`. Which applications may trigger registry
|
|
14
|
+
writes is the platform's grant: an application reaches the Markets API only
|
|
15
|
+
when its workflow grants it the `MainSequenceMarkets` branch, and every
|
|
16
|
+
caller the API admits may write. `registry_write` still records the acting
|
|
17
|
+
identity of every write. A deployment that created the constant can delete it.
|
|
18
|
+
|
|
10
19
|
## [3.0.0] - 2026-10-26
|
|
11
20
|
|
|
12
21
|
Breaking release 3.0.0. It renames the DataNode vocabulary to the MetaTables
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: ms-markets
|
|
3
|
-
Version: 3.0.
|
|
3
|
+
Version: 3.0.1.dev41
|
|
4
4
|
Summary: Financial markets ORM, engines, and application management extensions for Main Sequence.
|
|
5
5
|
Project-URL: Changelog, https://github.com/mainsequence-projects/MainSequenceMarkets/blob/main/CHANGELOG.md
|
|
6
6
|
Project-URL: Source, https://github.com/mainsequence-projects/MainSequenceMarkets
|
{ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/ADR/0047-markets-api-application-boundary.md
RENAMED
|
@@ -154,10 +154,11 @@ Organization admin can enable it: the declaration takes effect only when the
|
|
|
154
154
|
person who pushes it is an Organization admin, and otherwise the resource fails
|
|
155
155
|
before it deploys. Services enforce
|
|
156
156
|
domain policy: ownership and Team scoping for
|
|
157
|
-
portfolios, accounts, indexes and formula definitions
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
157
|
+
portfolios, accounts, indexes and formula definitions. Writes keep running as
|
|
158
|
+
the Markets workload, whose Writer grant is the single place writes are
|
|
159
|
+
allowed. Which applications may trigger them is the platform's grant: an
|
|
160
|
+
application reaches the Markets API only when its workflow grants it the
|
|
161
|
+
`MainSequenceMarkets` branch.
|
|
161
162
|
|
|
162
163
|
### 4. Provider-owned namespaces and sidecars
|
|
163
164
|
|
|
@@ -393,13 +394,9 @@ Deviations and open items:
|
|
|
393
394
|
- Ownership and Team scoping policies are not enforced yet; the helper gives
|
|
394
395
|
every service one identity to authorize against, and the platform's own
|
|
395
396
|
grants still apply to requester-bound reads.
|
|
396
|
-
- Application-level permission
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
User uid for that resource or for `"*"`; otherwise the route returns `403`.
|
|
400
|
-
People, requester-bound calls, Organization admins and calls outside a
|
|
401
|
-
request are not restricted by it. A missing constant allows no application;
|
|
402
|
-
an unreadable or malformed one fails closed with `503`.
|
|
397
|
+
- Application-level permission is the platform's grant, not a Markets
|
|
398
|
+
setting: an application whose workflow grants it the `MainSequenceMarkets`
|
|
399
|
+
branch reaches the API and may trigger registry writes.
|
|
403
400
|
- `acts_for_requester: true` on the `markets-api` resource is required for a
|
|
404
401
|
requester to be present. It is declared in
|
|
405
402
|
`.mainsequence/workflows/ms-markets-api.yaml`, and it takes effect only when
|
|
@@ -419,7 +416,7 @@ route for:
|
|
|
419
416
|
rebalancing uses, and the instance methods `FormulaIndex.activate()` and
|
|
420
417
|
`retire()`. Schedules now read `CalendarSession.filter` with range bounds;
|
|
421
418
|
activation and retirement go through `FormulaIndex.activate_definition` and
|
|
422
|
-
`retire_definition`, which are
|
|
419
|
+
`retire_definition`, which are registry writes.
|
|
423
420
|
- Added reads: `filter`/`count` range lookups (`__gte`, `__gt`, `__lte`,
|
|
424
421
|
`__lt`); `AssetSnapshots.latest` by identifier, uid or ticker; `offset` on
|
|
425
422
|
`GET /portfolio/values/`, which `MarketsClient.portfolio_values` uses to page
|
|
@@ -484,8 +481,8 @@ application still installs `ms-markets`. Deviations and refinements:
|
|
|
484
481
|
branch, as the Markets API does for MetaTables.
|
|
485
482
|
- Remote `delete` runs the resource's service delete with its preflight
|
|
486
483
|
checks, and exists only where one exists.
|
|
487
|
-
- Registry writes through these routes
|
|
488
|
-
|
|
484
|
+
- Registry writes through these routes run through `registry_write`, like the
|
|
485
|
+
service routes.
|
|
489
486
|
|
|
490
487
|
### 2026-10-25: step 1, missing routes
|
|
491
488
|
|
|
@@ -223,42 +223,11 @@ write and, after a successful write, records resource, action, row uid and the
|
|
|
223
223
|
acting identity's uid and kind on the `apps.v1.identity` logger. No registry
|
|
224
224
|
table has an author or owner column yet; when one does, the same hook supplies
|
|
225
225
|
its value. Writes keep running as the Markets workload, whose `data_writer`
|
|
226
|
-
role on `mainsequence.markets` is the single place writes are allowed
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
| Acting identity | Registry writes |
|
|
233
|
-
|---|---|
|
|
234
|
-
| none (Markets' own Jobs, scripts, direct service calls) | allowed |
|
|
235
|
-
| a requester-bound call (a person acting through an application) | allowed |
|
|
236
|
-
| an Organization admin | allowed |
|
|
237
|
-
| a person calling directly | allowed |
|
|
238
|
-
| an application (workload identity) listed for the resource | allowed |
|
|
239
|
-
| any other application | `403` |
|
|
240
|
-
|
|
241
|
-
The allow-list is the Main Sequence Constant `MARKETS_REGISTRY_WRITERS` in the
|
|
242
|
-
Markets deployment's Environment: a JSON object that maps a registry resource,
|
|
243
|
-
as `registry_write` names it (`account`, `asset`, `asset-category`, `calendar`,
|
|
244
|
-
`index`, `portfolio`, `portfolio-group`, `portfolio-signal`, `pricing-curve`,
|
|
245
|
-
`pricing-market-data` and the resources added with the provider write routes), or
|
|
246
|
-
`"*"`, to the User uids of the applications allowed to write it:
|
|
247
|
-
|
|
248
|
-
```json
|
|
249
|
-
{"asset": ["<provider workload user uid>"], "*": ["<trusted workload user uid>"]}
|
|
250
|
-
```
|
|
251
|
-
|
|
252
|
-
A missing constant allows no application. A value that is not such an object,
|
|
253
|
-
or a constant the Markets workload cannot read, refuses every application write
|
|
254
|
-
with `503`. Whether a caller is a person or an application is read from its
|
|
255
|
-
User once and cached for ten minutes; the SDK caches the constant for ten
|
|
256
|
-
minutes as well, so an edit takes effect within that time. The Markets workload
|
|
257
|
-
needs `reader` on the constant:
|
|
258
|
-
|
|
259
|
-
```bash
|
|
260
|
-
mainsequence constants access grant <MARKETS_REGISTRY_WRITERS constant uid> reader --user <markets workload user uid>
|
|
261
|
-
```
|
|
226
|
+
role on `mainsequence.markets` is the single place writes are allowed. Who may
|
|
227
|
+
trigger them is the platform's grant: an application's workload reaches the
|
|
228
|
+
Markets API only when its workflow grants it the `MainSequenceMarkets` branch
|
|
229
|
+
(see the [client guide](../../knowledge/msm/client/index.md)), and every caller
|
|
230
|
+
the API admits, person or application, may trigger registry writes.
|
|
262
231
|
|
|
263
232
|
A requester is only present when the `markets-api` resource declares
|
|
264
233
|
`acts_for_requester: true` in `.mainsequence/workflows/ms-markets-api.yaml`.
|
|
@@ -49,8 +49,7 @@ Writes (`create`, `upsert`, `update`, `delete`, `add`, `bulk_delete`,
|
|
|
49
49
|
`create_from_pandas_calendar`, `reconcile_dataset_availability`, `upsert_many`,
|
|
50
50
|
`add_many`, `create_index_curve_selection`, `upsert_index_curve_selection`,
|
|
51
51
|
`publish`, `register`, `register_signal`, `unregister`, `unregister_signal`, `reconcile`, `activate_definition`,
|
|
52
|
-
`retire_definition`) run through `registry_write`,
|
|
53
|
-
applies to applications.
|
|
52
|
+
`retire_definition`) run through `registry_write`, which records who made them.
|
|
54
53
|
A table row class's `delete` runs the resource's service delete with its
|
|
55
54
|
preflight checks and exists only for `asset`, `asset-category`, `calendar`,
|
|
56
55
|
`index`, `portfolio` and `portfolio-group`. Composites that implement `delete`
|
|
@@ -67,8 +66,7 @@ the `msm_pricing.api` composites (`curve`, `curve-building-details`,
|
|
|
67
66
|
| Status | Meaning | `error_type` |
|
|
68
67
|
|---|---|---|
|
|
69
68
|
| 400 | Invalid arguments | `ValueError`, `TypeError` |
|
|
70
|
-
| 403 | The
|
|
69
|
+
| 403 | The operation refused the acting identity | `PermissionError` or a subclass |
|
|
71
70
|
| 404 | Unknown resource or operation, or the row was not found | `LookupError` |
|
|
72
71
|
| 409 | The operation conflicted with existing rows | the conflict class name |
|
|
73
72
|
| 501 | The operation is not offered remotely | `NotImplementedError` |
|
|
74
|
-
| 503 | The registry write policy could not be read | |
|
|
@@ -61,14 +61,12 @@ access:
|
|
|
61
61
|
| `MARKETS_API_RELEASE_UID` | Use this release instead of searching. |
|
|
62
62
|
| `MARKETS_API_RELEASE_NAME`, `MARKETS_API_REPOSITORY_NAME` | Search for another release or repository name. |
|
|
63
63
|
|
|
64
|
-
## Writes
|
|
64
|
+
## Writes
|
|
65
65
|
|
|
66
66
|
Every create, upsert, update and delete runs through the Markets API's
|
|
67
|
-
`registry_write`,
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
write raises `msm.api.remote.MarketsAccessError`, a `PermissionError`. See
|
|
71
|
-
[the FastAPI guide](../../../fast_api/v1/index.md) for the constant's format.
|
|
67
|
+
`registry_write`, which records the acting identity on the API's audit log. Any
|
|
68
|
+
workload the platform admits to the Markets API may write; a refused operation
|
|
69
|
+
(`403`) raises `msm.api.remote.MarketsAccessError`, a `PermissionError`.
|
|
72
70
|
|
|
73
71
|
A table row class's remote `delete` runs the resource's service delete, with
|
|
74
72
|
its preflight checks, and exists only for `asset`, `asset-category`,
|
|
@@ -143,7 +141,6 @@ AssetSnapshots.publish([{"asset_identifier": "ACME", "time_index": as_of, "name"
|
|
|
143
141
|
current = AssetSnapshots.latest(tickers=["ACME"])
|
|
144
142
|
```
|
|
145
143
|
|
|
146
|
-
Their write-policy resources are `account-holdings` and `asset-snapshots`.
|
|
147
144
|
`AssetSnapshots.latest` takes exactly one of `asset_identifiers`, `asset_uids`
|
|
148
145
|
or `tickers` and returns each existing asset with its latest snapshot
|
|
149
146
|
(`AssetSnapshotReference`: name, ticker, exchange code, snapshot time; `None`
|
{ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/knowledge/msm/indices/formula_indexes.md
RENAMED
|
@@ -153,7 +153,7 @@ Activating a successor closes the open predecessor at the successor's
|
|
|
153
153
|
`valid_from`. Retired versions cannot be reactivated. `activate()` and
|
|
154
154
|
`retire()` call the class methods `FormulaIndex.activate_definition(uid)` and
|
|
155
155
|
`FormulaIndex.retire_definition(uid, valid_to=...)`, so they also run under the
|
|
156
|
-
remote row backend
|
|
156
|
+
remote row backend.
|
|
157
157
|
|
|
158
158
|
## Preview Persisted Formulas
|
|
159
159
|
|
{ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/knowledge/msm_portfolios/portfolios/index.md
RENAMED
|
@@ -467,7 +467,7 @@ enters `update_hash`.
|
|
|
467
467
|
An application on the remote row backend registers and reconciles the catalog
|
|
468
468
|
with `msm_portfolios.api.datasets.PortfolioDatasets.register(...)`,
|
|
469
469
|
`.reconcile(...)` and `.get(...)`, which run the services below on the Markets
|
|
470
|
-
API
|
|
470
|
+
API. `register` binds the
|
|
471
471
|
portfolio's current signal; `PortfolioDatasets.register_signal({"signal_uid":
|
|
472
472
|
..., "signal_meta_table_uid": ...})` binds any other signal, such as the earlier
|
|
473
473
|
signals of a producer whose signal uid changes each run, after verifying the
|
|
@@ -587,8 +587,8 @@ first on a rollback. Calendar events are not copied: the engine rebuilds them.
|
|
|
587
587
|
run the moves a provider callable returns (it receives `rollback=` when it
|
|
588
588
|
accepts that argument); without `--execute` they only count.
|
|
589
589
|
The operator needs `data_viewer` on the tables read, write access to the tables
|
|
590
|
-
written (a rollback writes the core tables)
|
|
591
|
-
|
|
590
|
+
written (a rollback writes the core tables); pause the provider's runs while a
|
|
591
|
+
move or rollback runs.
|
|
592
592
|
|
|
593
593
|
## Repair legacy midnight-indexed portfolio values
|
|
594
594
|
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
Design note, drafted 2026-10-25 for [ADR 0047](../../ADR/0047-markets-api-application-boundary.md)
|
|
6
6
|
decision 2 and migration path step 2. Updated 2026-10-26: the remote row
|
|
7
|
-
backend
|
|
7
|
+
backend and `msm.client` are implemented, with the
|
|
8
8
|
deviations recorded in the ADR's "step 2" implementation note (per-method
|
|
9
9
|
dispatch instead of a `RowBackend` protocol, mixed backends per row class,
|
|
10
10
|
release name `api`). The distribution split (order of work, step 5) is not. Step 1
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "ms-markets"
|
|
7
|
-
version = "3.0.
|
|
7
|
+
version = "3.0.1.dev41"
|
|
8
8
|
description = "Financial markets ORM, engines, and application management extensions for Main Sequence."
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.13,<3.14"
|
|
@@ -75,7 +75,7 @@ WRITE_OPERATIONS = frozenset(
|
|
|
75
75
|
}
|
|
76
76
|
)
|
|
77
77
|
"""Operations that create, update or delete registry rows; the API wraps them in
|
|
78
|
-
``registry_write
|
|
78
|
+
``registry_write``, which records who made them."""
|
|
79
79
|
|
|
80
80
|
|
|
81
81
|
class RemoteBackend(Protocol):
|
|
@@ -129,20 +129,3 @@ def offline_postgresql_runtime(monkeypatch):
|
|
|
129
129
|
|
|
130
130
|
monkeypatch.setattr(metatables.runtime_context, "get_runtime_context", get_runtime_context)
|
|
131
131
|
return runtime
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
@pytest.fixture(autouse=True)
|
|
135
|
-
def offline_registry_write_policy(monkeypatch):
|
|
136
|
-
"""Evaluate the registry write policy without the platform (ADR 0047).
|
|
137
|
-
|
|
138
|
-
By default no application is on the allow-list and every caller is a
|
|
139
|
-
person, which is how the API behaved before the policy. Policy tests replace
|
|
140
|
-
these with ``monkeypatch``.
|
|
141
|
-
"""
|
|
142
|
-
|
|
143
|
-
from apps.v1 import policy
|
|
144
|
-
|
|
145
|
-
monkeypatch.setattr(
|
|
146
|
-
policy, "load_registry_writer_policy", lambda: policy.RegistryWriterPolicy(writers={})
|
|
147
|
-
)
|
|
148
|
-
monkeypatch.setattr(policy, "resolve_identity_type", lambda uid: "human")
|
|
@@ -17,7 +17,6 @@ from typing import Any
|
|
|
17
17
|
import pytest
|
|
18
18
|
from fastapi.testclient import TestClient
|
|
19
19
|
|
|
20
|
-
from apps.v1 import policy
|
|
21
20
|
from apps.v1.main import app
|
|
22
21
|
from msm.api.accounts import Account
|
|
23
22
|
from msm.api.assets import Asset, AssetCategory, CurrencySpot
|
|
@@ -218,28 +217,6 @@ def test_validation_errors_come_back_as_value_errors(remote) -> None:
|
|
|
218
217
|
Asset.upsert(asset_type="equity")
|
|
219
218
|
|
|
220
219
|
|
|
221
|
-
def test_the_write_policy_applies_to_remote_writes(monkeypatch, remote) -> None:
|
|
222
|
-
monkeypatch.setattr(policy, "resolve_identity_type", lambda uid: "workload")
|
|
223
|
-
monkeypatch.setattr(
|
|
224
|
-
"msm.repositories.crud.upsert_model",
|
|
225
|
-
lambda *args, **kwargs: pytest.fail("a refused write must not reach the runtime"),
|
|
226
|
-
)
|
|
227
|
-
|
|
228
|
-
with pytest.raises(MarketsAccessError, match="MARKETS_REGISTRY_WRITERS"):
|
|
229
|
-
Asset.upsert(unique_identifier="ACME")
|
|
230
|
-
assert isinstance(MarketsAccessError("x"), PermissionError)
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
def test_reads_are_not_subject_to_the_write_policy(monkeypatch, remote) -> None:
|
|
234
|
-
monkeypatch.setattr(policy, "resolve_identity_type", lambda uid: "workload")
|
|
235
|
-
monkeypatch.setattr(
|
|
236
|
-
"msm.repositories.crud.get_model_by_uid",
|
|
237
|
-
lambda context, *, model, uid: {"rows": []},
|
|
238
|
-
)
|
|
239
|
-
|
|
240
|
-
assert Asset.get_by_uid(uuid.uuid4()) is None
|
|
241
|
-
|
|
242
|
-
|
|
243
220
|
def test_start_engine_attaches_nothing_under_the_remote_backend(monkeypatch, remote) -> None:
|
|
244
221
|
monkeypatch.setattr(
|
|
245
222
|
"msm.bootstrap.start_engine",
|
|
@@ -410,15 +387,20 @@ def test_holdings_and_snapshots_publish_through_markets(monkeypatch, remote) ->
|
|
|
410
387
|
("formula-index", "retire_definition", {"definition_uid": str(uuid.uuid4())}),
|
|
411
388
|
],
|
|
412
389
|
)
|
|
413
|
-
def
|
|
390
|
+
def test_every_publication_and_catalog_write_is_a_registry_write(
|
|
414
391
|
monkeypatch, remote, resource, operation, arguments
|
|
415
392
|
) -> None:
|
|
416
393
|
from msm.api.remote import WRITE_OPERATIONS
|
|
417
394
|
|
|
418
|
-
|
|
395
|
+
def resolve() -> None:
|
|
396
|
+
raise PermissionError("registry_write resolved the acting identity")
|
|
397
|
+
|
|
398
|
+
# registry_write resolves the acting identity before the operation runs; the
|
|
399
|
+
# refusal comes back as the client's PermissionError.
|
|
400
|
+
monkeypatch.setattr("apps.v1.identity.acting_identity", resolve)
|
|
419
401
|
|
|
420
402
|
assert operation in WRITE_OPERATIONS
|
|
421
|
-
with pytest.raises(MarketsAccessError, match="
|
|
403
|
+
with pytest.raises(MarketsAccessError, match="registry_write resolved the acting identity"):
|
|
422
404
|
remote.client.run_row_operation(resource, operation, arguments)
|
|
423
405
|
|
|
424
406
|
|
|
@@ -1,191 +0,0 @@
|
|
|
1
|
-
"""ADR 0047, decision 3: who may trigger a registry write.
|
|
2
|
-
|
|
3
|
-
Applications (workload identities) write registry rows only when the
|
|
4
|
-
``MARKETS_REGISTRY_WRITERS`` constant lists them for the resource; people,
|
|
5
|
-
requester-bound calls, Organization admins and calls without a request keep
|
|
6
|
-
working as before.
|
|
7
|
-
"""
|
|
8
|
-
|
|
9
|
-
from __future__ import annotations
|
|
10
|
-
|
|
11
|
-
import uuid
|
|
12
|
-
from types import SimpleNamespace
|
|
13
|
-
|
|
14
|
-
import pytest
|
|
15
|
-
from fastapi.testclient import TestClient
|
|
16
|
-
from mainsequence.server.caller_assertions import ASSERTION_HEADER
|
|
17
|
-
|
|
18
|
-
from apps.v1 import policy
|
|
19
|
-
from apps.v1.identity import ActingIdentity, registry_write
|
|
20
|
-
from apps.v1.main import app
|
|
21
|
-
|
|
22
|
-
# Captured at import, before the autouse fixture in tests/conftest.py stubs them.
|
|
23
|
-
REAL_LOAD_POLICY = policy.load_registry_writer_policy
|
|
24
|
-
REAL_RESOLVE_IDENTITY_TYPE = policy.resolve_identity_type
|
|
25
|
-
|
|
26
|
-
APPLICATION_UID = "7d0c8e1a-2b3c-4d5e-8f9a-0b1c2d3e4f5a"
|
|
27
|
-
OTHER_APPLICATION_UID = "8e1d9f2b-3c4d-4e5f-9a0b-1c2d3e4f5a6b"
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
def _use(monkeypatch, *, writers: dict, identity_types: dict | None = None) -> None:
|
|
31
|
-
monkeypatch.setattr(
|
|
32
|
-
policy,
|
|
33
|
-
"load_registry_writer_policy",
|
|
34
|
-
lambda: policy.RegistryWriterPolicy.from_value(writers),
|
|
35
|
-
)
|
|
36
|
-
types = identity_types or {}
|
|
37
|
-
monkeypatch.setattr(policy, "resolve_identity_type", lambda uid: types.get(uid, "human"))
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
def _caller(uid: str, **kwargs) -> ActingIdentity:
|
|
41
|
-
return ActingIdentity(uid=uid, kind="caller", **kwargs)
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
def test_an_application_needs_an_allow_list_entry(monkeypatch) -> None:
|
|
45
|
-
_use(
|
|
46
|
-
monkeypatch,
|
|
47
|
-
writers={"asset": [APPLICATION_UID]},
|
|
48
|
-
identity_types={APPLICATION_UID: "workload", OTHER_APPLICATION_UID: "workload"},
|
|
49
|
-
)
|
|
50
|
-
|
|
51
|
-
policy.authorize_registry_write("asset", "create", _caller(APPLICATION_UID))
|
|
52
|
-
with pytest.raises(policy.RegistryWriteForbidden, match="MARKETS_REGISTRY_WRITERS"):
|
|
53
|
-
policy.authorize_registry_write("portfolio", "create", _caller(APPLICATION_UID))
|
|
54
|
-
with pytest.raises(policy.RegistryWriteForbidden):
|
|
55
|
-
policy.authorize_registry_write("asset", "create", _caller(OTHER_APPLICATION_UID))
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
def test_the_wildcard_entry_covers_every_resource(monkeypatch) -> None:
|
|
59
|
-
_use(
|
|
60
|
-
monkeypatch,
|
|
61
|
-
writers={"*": [APPLICATION_UID]},
|
|
62
|
-
identity_types={APPLICATION_UID: "workload"},
|
|
63
|
-
)
|
|
64
|
-
|
|
65
|
-
policy.authorize_registry_write("portfolio", "update", _caller(APPLICATION_UID))
|
|
66
|
-
policy.authorize_registry_write("index", "create", _caller(APPLICATION_UID))
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
def test_people_requesters_admins_and_direct_calls_are_not_restricted(monkeypatch) -> None:
|
|
70
|
-
_use(monkeypatch, writers={}, identity_types={APPLICATION_UID: "workload"})
|
|
71
|
-
|
|
72
|
-
policy.authorize_registry_write("asset", "create", None)
|
|
73
|
-
policy.authorize_registry_write("asset", "create", _caller("a-person"))
|
|
74
|
-
policy.authorize_registry_write(
|
|
75
|
-
"asset", "create", ActingIdentity(uid="a-person", kind="requester")
|
|
76
|
-
)
|
|
77
|
-
policy.authorize_registry_write(
|
|
78
|
-
"asset", "create", _caller(APPLICATION_UID, is_organization_admin=True)
|
|
79
|
-
)
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
def test_an_allow_listed_caller_needs_no_user_lookup(monkeypatch) -> None:
|
|
83
|
-
monkeypatch.setattr(
|
|
84
|
-
policy,
|
|
85
|
-
"load_registry_writer_policy",
|
|
86
|
-
lambda: policy.RegistryWriterPolicy.from_value({"asset": [APPLICATION_UID]}),
|
|
87
|
-
)
|
|
88
|
-
|
|
89
|
-
def lookup(_uid):
|
|
90
|
-
raise AssertionError("an allow-listed caller must not need a User lookup")
|
|
91
|
-
|
|
92
|
-
monkeypatch.setattr(policy, "resolve_identity_type", lookup)
|
|
93
|
-
|
|
94
|
-
policy.authorize_registry_write("asset", "create", _caller(APPLICATION_UID))
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
@pytest.mark.parametrize(
|
|
98
|
-
"value",
|
|
99
|
-
['{"asset": "not-a-list"}', "[1, 2]", "{not json", '{"asset": 7}'],
|
|
100
|
-
)
|
|
101
|
-
def test_a_malformed_allow_list_fails_closed(value) -> None:
|
|
102
|
-
with pytest.raises(policy.RegistryWritePolicyError):
|
|
103
|
-
policy.RegistryWriterPolicy.from_value(value)
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
def test_missing_constant_allows_no_application(monkeypatch) -> None:
|
|
107
|
-
from mainsequence.client import Constant
|
|
108
|
-
from mainsequence.client.utils import DoesNotExist
|
|
109
|
-
|
|
110
|
-
def missing(_name):
|
|
111
|
-
raise DoesNotExist("no constant")
|
|
112
|
-
|
|
113
|
-
monkeypatch.setattr(Constant, "get_value", classmethod(lambda cls, name: missing(name)))
|
|
114
|
-
|
|
115
|
-
assert REAL_LOAD_POLICY().writers == {}
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
def test_an_unreachable_constant_fails_closed(monkeypatch) -> None:
|
|
119
|
-
from mainsequence.client import Constant
|
|
120
|
-
|
|
121
|
-
def unreachable(cls, name):
|
|
122
|
-
raise ConnectionError("platform unreachable")
|
|
123
|
-
|
|
124
|
-
monkeypatch.setattr(Constant, "get_value", classmethod(unreachable))
|
|
125
|
-
|
|
126
|
-
with pytest.raises(policy.RegistryWritePolicyError, match="ConnectionError"):
|
|
127
|
-
REAL_LOAD_POLICY()
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
def test_identity_type_is_read_once_and_cached(monkeypatch) -> None:
|
|
131
|
-
from mainsequence.client.models_user import User
|
|
132
|
-
|
|
133
|
-
calls: list[str] = []
|
|
134
|
-
|
|
135
|
-
def get_by_uid(uid):
|
|
136
|
-
calls.append(uid)
|
|
137
|
-
return SimpleNamespace(identity_type="workload")
|
|
138
|
-
|
|
139
|
-
monkeypatch.setattr(User, "get_by_uid", classmethod(lambda cls, uid: get_by_uid(uid)))
|
|
140
|
-
policy.clear_identity_type_cache()
|
|
141
|
-
|
|
142
|
-
assert REAL_RESOLVE_IDENTITY_TYPE(APPLICATION_UID) == "workload"
|
|
143
|
-
assert REAL_RESOLVE_IDENTITY_TYPE(APPLICATION_UID) == "workload"
|
|
144
|
-
assert calls == [APPLICATION_UID]
|
|
145
|
-
policy.clear_identity_type_cache()
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
def test_registry_write_refuses_before_the_service_runs(monkeypatch) -> None:
|
|
149
|
-
_use(monkeypatch, writers={}, identity_types={APPLICATION_UID: "workload"})
|
|
150
|
-
monkeypatch.setattr(
|
|
151
|
-
"apps.v1.identity.acting_identity", lambda: _caller(APPLICATION_UID)
|
|
152
|
-
)
|
|
153
|
-
ran: list[bool] = []
|
|
154
|
-
|
|
155
|
-
@registry_write("asset", "create")
|
|
156
|
-
def create_asset():
|
|
157
|
-
ran.append(True)
|
|
158
|
-
|
|
159
|
-
with pytest.raises(policy.RegistryWriteForbidden):
|
|
160
|
-
create_asset()
|
|
161
|
-
assert ran == []
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
def test_a_refused_write_returns_403(monkeypatch, caller_assertions) -> None:
|
|
165
|
-
_use(monkeypatch, writers={}, identity_types={APPLICATION_UID: "workload"})
|
|
166
|
-
monkeypatch.setattr(
|
|
167
|
-
"apps.v1.services.portfolios._get_runtime",
|
|
168
|
-
lambda: pytest.fail("a refused write must not reach the runtime"),
|
|
169
|
-
)
|
|
170
|
-
|
|
171
|
-
response = TestClient(app).delete(
|
|
172
|
-
f"/api/v1/portfolio/{uuid.uuid4()}/",
|
|
173
|
-
headers={ASSERTION_HEADER: caller_assertions.sign(APPLICATION_UID)},
|
|
174
|
-
)
|
|
175
|
-
|
|
176
|
-
assert response.status_code == 403
|
|
177
|
-
assert "MARKETS_REGISTRY_WRITERS" in response.json()["detail"]
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
def test_an_unreadable_policy_returns_503(monkeypatch, caller_assertions) -> None:
|
|
181
|
-
def broken():
|
|
182
|
-
raise policy.RegistryWritePolicyError("constant service unavailable")
|
|
183
|
-
|
|
184
|
-
monkeypatch.setattr(policy, "load_registry_writer_policy", broken)
|
|
185
|
-
|
|
186
|
-
response = TestClient(app).delete(
|
|
187
|
-
f"/api/v1/portfolio/{uuid.uuid4()}/",
|
|
188
|
-
headers={ASSERTION_HEADER: caller_assertions.sign(APPLICATION_UID)},
|
|
189
|
-
)
|
|
190
|
-
|
|
191
|
-
assert response.status_code == 503
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/ADR/0019-msm-portfolios-package-boundary.md
RENAMED
|
File without changes
|
|
File without changes
|
{ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/ADR/0023-deterministic-alembic-naming.md
RENAMED
|
File without changes
|
|
File without changes
|
{ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/ADR/0025-direct-metatable-runtime-binding.md
RENAMED
|
File without changes
|
{ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/ADR/0026-explicit-pricing-market-data-sets.md
RENAMED
|
File without changes
|
|
File without changes
|
{ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/ADR/0028-core-calendar-reference-data.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/ADR/0032-portfolio-group-many-to-many.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/ADR/0040-portfolio-temporal-ownership.md
RENAMED
|
File without changes
|
{ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/ADR/0041-installable-provider-http-toolkit.md
RENAMED
|
File without changes
|
|
File without changes
|
{ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/ADR/0043-sdk-9-metatables-client-hard-cut.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/ADR/0046-legacy-0017-schema-bridge.md
RENAMED
|
File without changes
|
{ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/ADR/0048-time-index-vocabulary-rename.md
RENAMED
|
File without changes
|
|
File without changes
|
{ms_markets-3.0.0.dev40 → ms_markets-3.0.1.dev41}/docs/ADR/fast_api/v1/0001-calendar-crud-route.md
RENAMED
|
File without changes
|
|
File without changes
|