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.3.tar.gz (27.2 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.3-py3-none-any.whl (49.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: bagelquant_data-0.1.3.tar.gz
  • Upload date:
  • Size: 27.2 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.3.tar.gz
Algorithm Hash digest
SHA256 fd5fed06793ba10179bb12b1d0b8e0f6faebea4b3c2798e5f74d4fc086dc22d9
MD5 b6663e3e017393a6f9e29d0960873bdb
BLAKE2b-256 255cb9cbe634424f7f0223c633e348aa58634debafa35d3f4552307b286ed95e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for bagelquant_data-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 18c74ebbc3a35d7b4e591e1be6c130a4129a29ca875903e4ea25283453114787
MD5 689a1f5fe9801a679805a552aadbd079
BLAKE2b-256 c809f7307ddd3cc1a4ff0490739353f711b0e60cf9c0db12af3ce77af3a263e8

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