MainSequence Markets
ms-markets is the financial markets extension layer for the Main Sequence
platform. It provides reusable market-domain ORM models, market DataNodes,
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
- Status: initial scaffold and SDK extraction
- Current release line:
1.x - Documentation: Documentation Site
- Open issues: GitHub Issues
- Release history: CHANGELOG.md
- License: Apache License 2.0
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 APIsmsm.api.calendars: calendar identity, date, session, and event row APIsmsm.api: user-facing Pydantic row objects and typed class methods for markets MetaTable recordsmsm.api.http: installable provider-neutral collection, discovery, bulk-preflight, observable-operation, and structured-error contractsmsm.constants: static built-in keys such as asset type constants used across applications and examplesmsm.client: client-facing Main Sequence market models and API wrappersmsm.data_nodes: market TimeIndexTableUpdater contracts, including account holdings, execution events, asset snapshots, and asset pricing detailsmsm.api.execution: order managers, target quantities, orders, events, trades, and execution error row APIsmsm.models: SQLAlchemy market-domain*Tabledeclarations and MetaTable registration ordermsm_portfolios: portfolio configuration, signal weights, rebalance strategies, virtual funds, and portfolio construction workflowsmsm_pricing: optional QuantLib-backed instruments, curves, fixings, pricing helpers, and pure-data analytics installed with pricing or analytics extrasmsm.repositories: compiled persistence operations over market-domain modelsmsm.services: application-level orchestration over repositories, including asset lookup and OpenFIGI service helpersmsmCLI: package maintenance helpers such as explicit agent-skill copying and SDK-managed MetaTable migration commands
Repository areas:
docs/: MkDocs documentation, tutorials, knowledge guides, ADRs, and API reference scaffoldexamples/msm/: core assets, accounts, calendars, formula/custom indexes, platform, and row-workflow examplesexamples/msm_portfolios/: single portfolio construction example with index linkage and canonical portfolio DataNodesexamples/msm_pricing/: optional pricing and QuantLib-backed examples.agents/skills/ms_markets/: source agent skills for market-domain workflowstests/: automated tests
Documentation Map
The documentation is organized into four reading modes:
- Tutorial: guided learning material
- Knowledge: concept-oriented guides for each
msmpackage area - Architecture: ADRs that record implementation decisions
- Reference: generated API reference scaffold
Recommended entry points:
- Getting Started
- Tutorial
- FastAPI v1
- Command Center
- Knowledge Base
- Architecture Decision Records
- Changelog
- API Reference
Quick Start
ms-markets 1.x requires Python 3.13 and Main Sequence SDK >=8.1.8.
SDK 6 and SDK 7 are not supported; install a 0.x ms-markets release when
maintaining an older Main Sequence project.
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
Publish a tagged release to PyPI:
git tag v0.0.2
git push origin v0.0.2
Pushing a v* tag triggers
.github/workflows/publish-to-pypi.yml, which builds the distribution and
publishes it to PyPI through GitHub Actions using trusted publishing for the
repository pypi environment.
Core Dependencies
Runtime dependencies are declared in pyproject.toml. The core stack starts with:
mainsequence>=8.1.8for the SDK-8 platform integration and deterministic updater-configuration duration hashing contractSQLAlchemyfor market-domain ORM modelspydanticfor typed configuration and serialized row contractspandasandnumpyfor 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
- Distribution name:
ms-markets - Import packages:
msm,msm_portfolios, and optionalmsm_pricing - Provider HTTP toolkit:
msm.api.http - Python:
>=3.13,<3.14 - License: Apache-2.0
- Repository: https://github.com/mainsequence-projects/MainSequenceMarkets
Project metadata is defined in pyproject.toml.
License
This project is open source under the Apache License 2.0.
Release files for ms-markets 1.0.15
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| ms_markets-1.0.15.tar.gz | 2.3 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ms_markets-1.0.15-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 3.1 MB
Release files / ms_markets-1.0.15.tar.gz
| Download URL | ms_markets-1.0.15.tar.gz |
|---|---|
| Size | 2.3 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
cbf1b1fc22fbd380ed44c7b63a62e6ef5ab0c2606edcc622ecc3dceb647de972
|
|
BLAKE2b-256 checksum How to use checksums |
3dff6749f63cae3fafede2856c832724284558adb5f5bb751effdb4d49fb7650
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 Sep 12, 2026.
Transparency logRelease files / ms_markets-1.0.15-py3-none-any.whl
| Download URL | ms_markets-1.0.15-py3-none-any.whl |
|---|---|
| Size | 719.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
9adc7bbc67546df6bb0411185499bad9a4048d5db12d7c446a2c5ba304ff91ef
|
|
BLAKE2b-256 checksum How to use checksums |
8e6e0b9ba520040940d2682cab490118753422e2c36e029e059d1932e5284841
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 Sep 12, 2026.
Transparency log