Skip to main content

Unified data layer for the BagelQuant ecosystem

Project description

BagelQuant Data

bagelquant-data is a Polars-native, source-agnostic data lake framework for quantitative research.

  • Polars is the dataframe engine.
  • Parquet is the canonical analytical storage format.
  • SQLite stores mutable metadata, manifests, run state, and source/dataset registration.
  • Tushare is implemented as the first source adapter under bagelquant_data.sources.tushare.
  • Non-reference research extraction returns one field at a time as time | asset_id | value.
import polars as pl

from bagelquant_data import DataLake, DatasetSpec

lake = DataLake.open("data")
spec = DatasetSpec(
    name="daily",
    source="custom",
    source_dataset="daily",
    category="market",
    field_mapping={"ts_code": "ts_code", "trade_date": "trade_date"},
    required_columns=("asset_id", "time"),
    primary_key=("asset_id", "time"),
    asset_column="ts_code",
    time_column="trade_date",
    partition_strategy="year_month",
    deduplication="primary_key_last",
    sort_columns=("time", "asset_id"),
)
lake.ingest_frame(
    spec,
    pl.DataFrame(
        {
            "trade_date": ["2024-01-02"],
            "ts_code": ["000001.SZ"],
            "close": [100.0],
        }
    ),
)

close = lake.query.field("daily", "close", source="custom", collect=True)
print(close)  # time, asset_id, close

Documentation is available in two languages:

  • English: docs/en/index.md
  • Chinese: docs/cn/index.md

Development

uv run pytest

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

bagelquant_data-0.1.0.tar.gz (25.8 kB view details)

Uploaded Source

Built Distribution

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

bagelquant_data-0.1.0-py3-none-any.whl (46.8 kB view details)

Uploaded Python 3

File details

Details for the file bagelquant_data-0.1.0.tar.gz.

File metadata

  • Download URL: bagelquant_data-0.1.0.tar.gz
  • Upload date:
  • Size: 25.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.14

File hashes

Hashes for bagelquant_data-0.1.0.tar.gz
Algorithm Hash digest
SHA256 c12eb1c3ea1c71a0bb58b19b42cc16554bfa387e8781d712efedb7111b6a8f85
MD5 f5529583f434b70552405badebc74d84
BLAKE2b-256 eb9d5f2820c20c769897002a2611409aaeac7fb2d736956026c99625bf95316f

See more details on using hashes here.

File details

Details for the file bagelquant_data-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for bagelquant_data-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7b25c8d32295476219a89567ee613c4a76a45a10fb05c73c8a7d1dd2fc59c3a3
MD5 ae743825b204f921e3c0eac260759a9e
BLAKE2b-256 208d6c1aab33e58d8c1cbd9a6f9b151a22f1af958f7d3c0bfb5cde953ba35940

See more details on using hashes here.

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