Skip to main content

Financial markets ORM, engines, and application management extensions for Main Sequence.

Project description

Main Sequence Logo

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 DataNodes, pricing engines, portfolio construction utilities, repository operations, and application-facing helpers for building financial systems on top of Main Sequence.

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

import msm

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.accounts: account identity, holdings, virtual funds, and account target assignments
  • msm.api: user-facing Pydantic row objects and typed class methods for markets MetaTable records
  • msm.client: client-facing Main Sequence market models and API wrappers
  • msm.data_nodes: market DataNode contracts, including asset snapshots and asset pricing details
  • msm.execution: order managers, target quantities, orders, events, trades, and execution errors
  • msm.models: SQLAlchemy market-domain *Table declarations and MetaTable registration order
  • msm.portfolios: portfolio configuration, signal weights, rebalance strategies, and Virtual Fund Builder workflows
  • msm.pricing: QuantLib-backed instruments, curves, fixings, and pricing helpers
  • msm.repositories: compiled persistence operations over market-domain models
  • msm.services: application-level orchestration over repositories, including asset lookup and OpenFIGI service helpers

Repository areas:

  • docs/: MkDocs documentation, tutorials, knowledge guides, ADRs, and API reference scaffold
  • examples/: migrated market examples from the SDK
  • .agents/skills/: local agent skills for market-domain workflows
  • tests/: automated tests
  • src/cli/: placeholder for a future command-line interface

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

Install the package from this repository in editable mode:

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

Or with uv:

uv sync --extra dev

Verify the import:

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

Common Development Commands

Run tests:

pytest

Run focused linting for 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 for platform integration
  • SQLAlchemy for market-domain ORM models
  • QuantLib for instrument and pricing primitives
  • pydantic for typed configuration and serialized instrument terms
  • pandas and numpy for tabular market data and portfolio workflows

Optional extras provide documentation, development, portfolio, pricing, and Streamlit UI tooling.

Package Metadata

Project metadata is defined in pyproject.toml.

License

This project is open source under the Apache License 2.0.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ms_markets-0.0.3.tar.gz (236.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ms_markets-0.0.3-py3-none-any.whl (243.1 kB view details)

Uploaded Python 3

File details

Details for the file ms_markets-0.0.3.tar.gz.

File metadata

  • Download URL: ms_markets-0.0.3.tar.gz
  • Upload date:
  • Size: 236.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for ms_markets-0.0.3.tar.gz
Algorithm Hash digest
SHA256 121ce81fff990833d54c7b81cfd1c715e213630426ded846289177a64d23166a
MD5 1388d73ff724f5aff36ca13980854b26
BLAKE2b-256 a7e0680816a9e6da2914451ef2def6dd749b6b32b390bb868fcc6c9f35c45dd6

See more details on using hashes here.

Provenance

The following attestation bundles were made for ms_markets-0.0.3.tar.gz:

Publisher: publish-to-pypi.yml on mainsequence-projects/MainSequenceMarkets

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ms_markets-0.0.3-py3-none-any.whl.

File metadata

  • Download URL: ms_markets-0.0.3-py3-none-any.whl
  • Upload date:
  • Size: 243.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for ms_markets-0.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 2a657dc9bc667c26a04677104c8a978b66a7db76b7b177b3fcc9274136d18bb0
MD5 1518ec2f767683eba8837309e6e33b99
BLAKE2b-256 1fa16482e1ecab6a28caf028d7aa3b13c1052c5d4a1fdcbf8d037fd73326627f

See more details on using hashes here.

Provenance

The following attestation bundles were made for ms_markets-0.0.3-py3-none-any.whl:

Publisher: publish-to-pypi.yml on mainsequence-projects/MainSequenceMarkets

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page