Skip to main content

Data provider for Python - Query data from local DuckDB

Project description

nextpoly-data-provider

NextPoly data provider for Python, built with Rust and PyO3.

Features

  • Query Polymarket on-chain data (order filled events, FPMM transactions)
  • Query Polymarket off-chain data (markets, market tokens)
  • Query timeseries data for trading analysis
  • Time-travel queries with simulation_time parameter
  • Built on DuckDB for fast local queries
  • Python 3.11+ support with abi3 compatibility

Installation

pip install nextpoly-data-provider

uv

uv add nextpoly-data-provider
# or
uv pip install nextpoly-data-provider

Quick Start

from data_provider import DataProvider

# Create provider with default DB paths
provider = DataProvider()

# Query markets
markets = provider.off_chain.list_markets(limit=10)
for market in markets:
    print(f"{market.raw_data.get('question')}")

# Query on-chain events
orders = provider.on_chain.list_orders(limit=10)

# Query time series data
ts = provider.trading.get_timeseries(token_id="...")

Time Travel Queries

from datetime import datetime, timezone

# Query data as of a specific time
ts = int(datetime(2024, 1, 1, tzinfo=timezone.utc).timestamp())
provider = DataProvider(simulation_time=ts)

# Or set it later
provider.set_simulation_time(ts)

Development

Building from source

cd crates/data-provider
uv sync
uv run maturin develop

Running tests

# Install test dependencies
uv pip install pytest duckdb --python .venv/bin/python

# Run all tests
.venv/bin/python -m pytest tests/ -v

# Run specific test file
.venv/bin/python -m pytest tests/test_queries.py -v

Code quality

# Lint with ruff
ruff check tests/

# Type check with ty
uv tool run ty check tests/

Requirements

  • Python 3.11+
  • Local DuckDB database files

Type stubs

Type stubs live next to the package in crates/data-provider/data_provider/*.pyi.

To build the extension with maturin and verify stubs against runtime objects:

uv --version
cargo run -p xtask -- stub-check

stub-check uses uv run in crates/provider, creating .venv if needed and installing maturin, mypy, ruff, and ty automatically. Pass --debug to skip --release.

Publishing

maturin publish --release

License

MIT

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

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

nextpoly_data_provider-0.9.1-cp311-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (11.2 MB view details)

Uploaded CPython 3.11+manylinux: glibc 2.17+ x86-64

nextpoly_data_provider-0.9.1-cp311-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (10.2 MB view details)

Uploaded CPython 3.11+manylinux: glibc 2.17+ ARM64

nextpoly_data_provider-0.9.1-cp311-abi3-macosx_11_0_arm64.whl (10.9 MB view details)

Uploaded CPython 3.11+macOS 11.0+ ARM64

File details

Details for the file nextpoly_data_provider-0.9.1-cp311-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for nextpoly_data_provider-0.9.1-cp311-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 83e05962ef19c95c9bb4d89b465ca1691f420e9f7839056b1096b950d6a4649b
MD5 7bd2ea51c800152a23f09342902e8443
BLAKE2b-256 779e2839dc25eb1e8ffcf3ba1855e3c60db1eeb58f203dbfc31c4324466b3258

See more details on using hashes here.

File details

Details for the file nextpoly_data_provider-0.9.1-cp311-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for nextpoly_data_provider-0.9.1-cp311-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 be4c63a81e390b93fe0494d2f5a1b37ef2ff621aec5452f0c5abd6a20334793f
MD5 c809f731697404bd0a94a6dbdd40ed96
BLAKE2b-256 7c4be7facc31b4141a29e73b962a1d99cb8ae4f9f002ec17c11d441af72c691e

See more details on using hashes here.

File details

Details for the file nextpoly_data_provider-0.9.1-cp311-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for nextpoly_data_provider-0.9.1-cp311-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 69a3dfd2f0d34921d95d587cc907dae4701558824a873d0a69325813a4521a88
MD5 1ed40d51e562782aaf288c675e0a8f72
BLAKE2b-256 e82abc2e2545299528a51af7eed7c836a0fa2b0b1b1e7571895646b7495740e2

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