Skip to main content

ml-data-access

Read side of the malatium data store. One load_* per table that ml-data-pipelines writes, over a bear-lake database, in the shape of at-research's data helpers.

pip install ml-data-access
import datetime as dt

import ml_data_access

db = ml_data_access.connect()  # ML_DATA_STORE, or connect(path)
start, end = dt.date(2018, 7, 2), dt.date(2025, 6, 30)

reference_df = ml_data_access.load_reference_returns(db, start, end)
scores_df = ml_data_access.load_signals(db, "vrp", start, end)
loadings_df = ml_data_access.load_factor_loadings(db, start, end)
chain_df = ml_data_access.load_option_greeks(db, "AAPL", dt.date(2025, 1, 1), dt.date(2025, 3, 31))

Every loader is load_x(db, start=None, end=None) and returns a collected DataFrame for the inclusive window; the three per-symbol chain loaders take the symbol first. Nothing is screened, joined or derived: the store holds canonical tables (symbol is the option root, right is C/P, iv is null where the vendor's inversion failed, vega is per vol point).

The frames slot straight into malatium:

from malatium.providers import PanelProvider, TradingCalendar

calendar = TradingCalendar(ml_data_access.load_sessions(db, start, end))
reference = PanelProvider(reference_df)
scores = PanelProvider(scores_df)

Loaders

loader table
load_calendar, load_sessions exchange sessions, as a frame or a list of dates
load_universe point-in-time S&P 500 membership, ticker and symbol
load_sectors GICS sector snapshot
load_indices, load_yields, load_rates index levels (2024 on), the CBOE yield curve, SOFR
load_corporate_actions, load_earnings splits and dividends; announcement dates with a session
load_underlying EOD stock OHLCV, 2023-06 on
load_option_greeks(db, symbol, ...), load_index_greeks, load_open_interest one name's chain, index chain, open interest
load_symbology_check, usable_symbol_years which symbol-years are the right company
load_reference_returns the reference straddle's per-vega P&L, SPX included
load_factor_returns, load_factor_loadings, load_factor_covariances, load_idio_vol the vol risk model
load_surface, load_realized_vol, load_forecast, load_stock_features the derived panels
load_signals(db, name, ...) one signal's (date, symbol, score)
in_universe semi-join a (date, symbol) panel to membership

ml_data_access.describe() lists what the store holds. ml_data_access.scan(name, years, symbols) is the lazy scan under every loader; it opens only the partitions asked for, using bear-lake's <table>/<year>/<symbol>.parquet layout.

Things to know before trusting a number

  • Eighteen symbol-years are another company's chain. Semi-join against usable_symbol_years(db) for any multi-year study.
  • Open interest is one day stale by construction and joins on the same date.
  • iv is null, not wrong, on the ~3% of contract-days that failed to invert.
  • Repaired index sessions (mostly 2020-21) carry null gamma and a 15:59 underlying.

Development

uv sync
uv run pytest        # builds a synthetic store in a temp dir
uv run ruff check . && uv run ruff format .

Metadata

Release files for ml-data-access 0.1.0

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

Source distribution (sdist)

Source distribution for ml-data-access 0.1.0
File Size Uploaded Provenance Actions
ml_data_access-0.1.0.tar.gz 61.6 kB With provenance Details for ml_data_access-0.1.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for ml-data-access 0.1.0
File Interpreter ABI Platform Actions
ml_data_access-0.1.0-py3-none-any.whl Python 3 none any Details for ml_data_access-0.1.0-py3-none-any.whl

Total release size: 69.2 kB

Release files / ml_data_access-0.1.0.tar.gz

Download URL ml_data_access-0.1.0.tar.gz
Size 61.6 kB
Tags Source
SHA-256 checksum
How to use checksums
418ec05f4ddadbd3af8f3e87d858241860f9bf80b2d3820b484a8343baacf2bc
BLAKE2b-256 checksum
How to use checksums
7b0dfdac417bf072c259115f9e0d936280a8afcb2b5fd61c00ab6915459ac0bb
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 13, 2026.

Transparency log

Release files / ml_data_access-0.1.0-py3-none-any.whl

Download URL ml_data_access-0.1.0-py3-none-any.whl
Size 7.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9019f72dc8c26ded3e68ec35a279252b66c9485cd542d36c2ee5792283971319
BLAKE2b-256 checksum
How to use checksums
3e9c5759674b60372792b5bd19132ef05426c1b16c844868ff2f9199f70e3fe6
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 13, 2026.

Transparency log

Security for ml-data-access 0.1.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.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for ml_data_access-0.1.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 Sep 13, 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

0.1.0 This release

2 release files Full 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