Skip to main content
Change of provenance

The repository or configuration that created this release differ from a previous release. View details.

MainSequence Markets

MainSequence Markets

Docs License Python Package Open Issues Last Commit Maintained

ms-markets is the financial markets extension layer for the Main Sequence platform. It provides reusable market-domain ORM models, market time-index updaters, portfolio construction utilities, repository operations, and application-facing helpers for building financial systems on top of Main Sequence. Portfolio and QuantLib-backed pricing capabilities are packaged as separate import surfaces so core msm stays focused on shared markets primitives.

The Python distribution is named ms-markets. The core import package is intentionally short:

import msm

Portfolio workflows import from msm_portfolios. Optional QuantLib-backed pricing imports from msm_pricing.

Project Status

The initial core package was migrated from mainsequence-sdk/mainsequence/markets into this repository under src/msm. Architecture and implementation decisions are tracked in Architecture Decision Records.

What This Repository Contains

Main package areas:

  • msm.api.accounts: account identity and account target assignment row APIs
  • msm.api.calendars: calendar identity, date, session, and event row APIs
  • msm.api: user-facing Pydantic row objects and typed class methods for markets MetaTable records
  • msm.api.http: installable provider-neutral collection, discovery, bulk-preflight, tabular-frame, observable-operation, and structured-error contracts
  • msm.constants: static built-in keys such as asset type constants used across applications and examples
  • msm.client: client for the Markets API (ADR 0047, decision 2). Its remote backend runs the same msm.api row calls through the API, so an application needs no MetaTables grant on mainsequence.markets
  • msm.time_index: market TimeIndexTableUpdater contracts, including account holdings, execution events, asset snapshots, and asset pricing details
  • msm.api.execution: order managers, target quantities, orders, events, trades, and execution error row APIs
  • msm.models: SQLAlchemy market-domain *Table declarations and MetaTable registration order
  • msm_portfolios: portfolio configuration, signal weights, rebalance strategies, virtual funds, and portfolio construction workflows
  • msm_pricing: optional QuantLib-backed instruments, curves, fixings, pricing helpers, and pure-data analytics installed with pricing or analytics extras
  • msm.repositories: compiled persistence operations over market-domain models
  • msm.services: application-level orchestration over repositories, including asset lookup and OpenFIGI service helpers
  • msm CLI: package maintenance helpers such as explicit agent-skill copying; MetaTable migrations run through the metatables migrations CLI with --provider msm_migrations:migration

Repository areas:

  • docs/: MkDocs documentation, tutorials, knowledge guides, ADRs, and API reference scaffold
  • examples/msm/: core assets, accounts, calendars, formula/custom indexes, platform, and row-workflow examples
  • examples/msm_portfolios/: portfolio construction, rebalance simulation, lifecycle cash-flow, multi-currency valuation, and accounting examples
  • examples/msm_pricing/: optional pricing and QuantLib-backed examples
  • .agents/skills/ms_markets/: source agent skills for market-domain workflows
  • tests/: automated tests

Documentation Map

The documentation is organized into four reading modes:

  1. Tutorial: guided learning material
  2. Knowledge: concept-oriented guides for each msm package area
  3. Architecture: ADRs that record implementation decisions
  4. Reference: generated API reference scaffold

Recommended entry points:

Quick Start

ms-markets 2.x requires Python 3.13, Main Sequence SDK >=9.0.29,<10, and the MetaTables client mainsequence-metatable>=0.1.51,<0.2, which is imported as metatables. SDK 8 and earlier are not supported; install a 1.x ms-markets release when maintaining an SDK 8 project. See ADR 0043 and the 2.0.0 changelog entry for the breaking changes.

Install the package from this repository in editable mode:

python -m pip install -e ".[dev]"

Or with uv:

uv sync --extra dev

Install pricing support only when needed:

uv sync --extra pricing

Install the named analytics surface when working with optional spread analytics:

uv sync --extra analytics

Install portfolio workflow support only when needed:

uv sync --extra portfolios

Install the project-level FastAPI surface only when needed:

uv sync --extra public_api

Verify the core import:

python -c "import msm; print(msm.__version__)"

Provider APIs can import the shared HTTP toolkit directly from the wheel:

from msm.api.http import ResourceCollection, api_http_error

After installing the pricing extra, verify the optional pricing import:

python -c "import msm_pricing; print(msm_pricing.FixedRateBond)"

Copy the packaged ms-markets skills into a host Main Sequence CodeRepository only when you explicitly want them available to agents in that repository:

msm copy-msm-skills --path /path/to/code-repository

Importing msm never mutates the current directory or auto-copies skills. The command writes only to <code-repository>/.agents/skills/ms_markets/ and leaves unrelated .agents content alone. Use --dry-run or --json to inspect the copy plan.

Common Development Commands

Run tests:

pytest

Run focused linting for optional pricing:

ruff check src/msm_pricing

Serve the docs locally:

mkdocs serve

Build the docs:

mkdocs build --strict

Build the package:

uv build

Releases are published by GitHub Actions, never by hand. Work lands on the development branch, where every push publishes an X.Y.Z.devN build to PyPI. main is protected: merging a pull request from development publishes the declared X.Y.Z, creates its vX.Y.Z tag and deploys the documentation. See Releasing.

Core Dependencies

Runtime dependencies are declared in pyproject.toml. The core stack starts with:

  • mainsequence>=9.0.29,<10 for identity, login, Git source context, CodeRepository, jobs, and agents
  • mainsequence-metatable>=0.1.51,<0.2 (import metatables) for MetaTables, time-index table updaters, governed compiled SQL, and application-owned Alembic migrations
  • SQLAlchemy for market-domain ORM models
  • pydantic for typed configuration and serialized row contracts
  • pandas and numpy for tabular market data

Optional extras provide analytics, documentation, development, portfolio, public API, and pricing tooling. The analytics and pricing-analytics extras reserve the dependency boundary for optional analytics helpers; the current spread helpers use the core numpy and pandas dependencies. The portfolios extra installs portfolio-only helpers such as pandas-market-calendars. The public_api extra installs FastAPI and Uvicorn for the project-level apps/v1 surface. The pricing extra installs QuantLib and the optional pricing runtime exposed as msm_pricing.

Package Metadata

Project metadata is defined in pyproject.toml.

License

This project is open source under the Apache License 2.0.

Metadata

Release files for ms-markets 3.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Change of provenance

The repository or configuration that created these release files differ from that of a previous release.

We recommend inspecting the repository and configuration before proceeding. View details.

Source distribution (sdist)

Source distribution for ms-markets 3.0.0
File Size Uploaded Provenance Actions
ms_markets-3.0.0.tar.gz 2.6 MB With provenance Details for ms_markets-3.0.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for ms-markets 3.0.0
File Interpreter ABI Platform Actions
ms_markets-3.0.0-py3-none-any.whl Python 3 none any Details for ms_markets-3.0.0-py3-none-any.whl

Total release size: 3.4 MB

Release files / ms_markets-3.0.0.tar.gz

Change of provenance

This file belongs to a release with changed provenance: the repository or configuration that created the release files differ from that of a previous release.

We recommend inspecting the repository and configuration before proceeding. View details.

Download URL ms_markets-3.0.0.tar.gz
Size 2.6 MB
Tags Source
SHA-256 checksum
How to use checksums
34070277d5fe0a1a85d1e2099dc35e4d69f69ebd2fb495b415e1a909f3f34e55
BLAKE2b-256 checksum
How to use checksums
f64e3c19c96ac4c28ef79d52d7d6c0fdf724b367965a9ee9d462c1085f7c1989
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 27, 2026.

Transparency log

Release files / ms_markets-3.0.0-py3-none-any.whl

Change of provenance

This file belongs to a release with changed provenance: the repository or configuration that created the release files differ from that of a previous release.

We recommend inspecting the repository and configuration before proceeding. View details.

Download URL ms_markets-3.0.0-py3-none-any.whl
Size 805.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9ffd480e5482467f88b6cf11b6e777b6431d935bf73ed2c29b64ed9ef7e2662b
BLAKE2b-256 checksum
How to use checksums
694167d3d4359dc199cca049a16a20b25deb0134bdfd101bacb321416902853c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 27, 2026.

Transparency log

Security for ms-markets 3.0.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Change of provenance

The configuration that created this release differs from a previous release.

While this could reflect a routine change by the project maintainers, it may also indicate that the release files have been compromised.

Select from 2 files

Attestation for ms_markets-3.0.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 27, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

3.0.0 This release

2 release files Change of provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page