Skip to main content

Python library for acquiring, storing, transforming, and validating market data

Project description

Qldata

Unified Python interface for historical and live crypto market data.

Python 3.10+

Qldata standardizes access to Binance, Bybit, and local stores through a fluent query builder, optional data-cleaning pipelines, and production-ready streaming interfaces.


Documentation

Topic Description
Getting Started Installation, optional dependencies, and the first query.
Data Access Query builder reference, batching, and execution modes.
Configuration & Storage Runtime config, caches, and store backends.
Transforms & Data Cleaning Built-in validation, resampling, and custom pipelines.
Live Streaming Streams, callbacks, resampling, and troubleshooting.
Operations & Support Maintainer-only release workflow, doc syncing, and support channels.

Quick Start

pip install qldata
import qldata as qd

df = (
    qd.data("BTCUSDT", source="binance", category="spot")
    .last(30)
    .resolution("1h")
    .clean(remove_invalid_prices=True, validate_ohlc=True)
    .get()
)

print(df.tail())

Need API keys for authenticated endpoints? Export BINANCE_API_KEY, BINANCE_API_SECRET, BYBIT_API_KEY, and BYBIT_API_SECRET before running scripts. The adapters will pick them up automatically.


Highlights

  • Unified query builder - Express historical requests, local reads, and file loads with consistent chaining (.between, .last, .resolution, .get).
  • Multiple sources - Binance (spot, USD-M, COIN-M), Bybit (spot, linear, inverse, options), plus CSV/Parquet/SQLite/DuckDB stores.
  • Data quality tools - Validation, duplicate removal, outlier handling, and custom transform pipelines.
  • Streaming API - Push callbacks or pull-based sessions for live data with client-side resampling.
  • Production configuration - Cache controls, pluggable storage, structured logging, and testable adapters.

See the docs for deep dives and additional examples.


Publishing Docs to a Public Repo

Planning to keep this codebase private while publishing documentation?

  1. Prepare (or clone) your public docs repository, e.g. ../qldata-docs.
  2. Run python scripts/export_docs.py ../qldata-docs --include-license from the project root.
  3. Commit and push the generated docs repo, then wire it to Read the Docs or another static host (the included mkdocs.yml and docs/requirements.txt work out of the box with MkDocs + Material).
  4. In pyproject.toml, point the Homepage/Documentation URLs at the published site so PyPI displays the correct links.

Repeat the export each time you update docs to keep the public site in sync with the private source.


Operations & Support

Qldata is maintained privately and does not accept external code contributions. Use the public docs repository for questions or bug reports, and see Operations & Support for the internal release and documentation-sync workflow.


License

MIT License - see LICENSE.

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

qldata-0.1.0.tar.gz (67.6 kB view details)

Uploaded Source

Built Distribution

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

qldata-0.1.0-py3-none-any.whl (98.4 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for qldata-0.1.0.tar.gz
Algorithm Hash digest
SHA256 7498ac6fa4393036891d653b757551f94358a223a660ccabb6aeac90d1037405
MD5 797fc35983f6278ca9848aebd8b138bd
BLAKE2b-256 3030e179fa0531d9c4d85d76168741755fc6fcbc8cd15469dc5bea19cf2fed23

See more details on using hashes here.

File details

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

File metadata

  • Download URL: qldata-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 98.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.0

File hashes

Hashes for qldata-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6c49fbf604900286b4ce21e0a2192a0f0e378443e46e6d4723a0ddc5be7d1215
MD5 a0e2bcb53b4d1b6249ee8a1695e760ef
BLAKE2b-256 48dffc722b22ebce8a174b487933e2fb09c3dae2469c5aec202e020e1002e8d7

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