Polaris SDKs
The official Rust, Python, and TypeScript SDKs for the Polaris API. Rust and
Python share one Rust engine; TypeScript is an independent Node.js and browser
package. All three distributions are named polaris-data, with Python
importing as polaris_data.
Documentation can be found at https://polaris.supply/docs
Install
Install the Python SDK from PyPI:
pip install polaris-data
If you use uv, install it into a project with:
uv add polaris-data
Or install it into the active environment with:
uv pip install polaris-data
Install optional notebook and Arrow support with:
pip install "polaris-data[dataframe]" # Pandas + PyArrow
pip install "polaris-data[arrow]" # PyArrow batches only
Install the Rust SDK from crates.io:
cargo add polaris-data
Install the TypeScript SDK from npm:
npm install polaris-data
Python wheels always include the Rust core. CPython 3.9+ is supported through PyO3's stable ABI; there is no pure-Python runtime fallback.
Quickstart
from polaris_data import PolarisClient
with PolarisClient(api_key="polaris_key_your_key") as client:
row_count = sum(
1
for _ in client.replay(
source="binance",
market="BTC-USDT",
from_="2024-01-01T00:00:00Z",
to="2024-01-01T01:00:00Z",
)
)
print(f"Replayed {row_count} rows")
If api_key is omitted, the client reads POLARIS_API_KEY from the environment.
The equivalent async Rust workflow is:
use futures_util::StreamExt;
use polaris_data::{PolarisClient, ReplayQuery};
#[tokio::main]
async fn main() -> Result<(), polaris_data::PolarisError> {
let client = PolarisClient::builder().build()?;
let mut rows = client
.replay(ReplayQuery {
source: "binance".into(),
market: "BTC-USDT".into(),
from: Some("2024-01-01T00:00:00Z".into()),
to: Some("2024-01-01T01:00:00Z".into()),
allow_gaps: false,
materialize_orderbooks: true,
})
.await?;
while let Some(row) = rows.next().await {
println!("{:?}", row?);
}
Ok(())
}
For synchronous Rust applications use
polaris_data::blocking::PolarisClient. It owns a Tokio runtime and returns
PolarisError::BlockingInAsyncRuntime when called from an active Tokio runtime,
instead of panicking.
Realtime streams
stream(...) opens an unbounded WebSocket feed of the same standardized event
shape returned by replay(...). A stream covers one source and up to 1,000
markets, reconnects automatically after transport failures, and closes when its
iterator is dropped or explicitly closed.
from polaris_data import PolarisClient
with PolarisClient(api_key="polaris_key_your_key") as client:
with client.stream(source="binance", markets=["BTC-USDT", "ETH-USDT"]) as events:
for event in events:
print(event)
The equivalent async Rust workflow is:
use futures_util::StreamExt;
use polaris_data::{PolarisClient, StreamQuery};
#[tokio::main]
async fn main() -> Result<(), polaris_data::PolarisError> {
let client = PolarisClient::builder().build()?;
let mut events = client.stream(StreamQuery {
source: "binance".into(),
markets: vec!["BTC-USDT".into(), "ETH-USDT".into()],
include_buffer: false,
materialize_orderbooks: true,
}).await?;
while let Some(event) = events.next().await {
println!("{:?}", event?);
}
Ok(())
}
Orderbooks are materialized by default. A standardized orderbook event replaces
the complete book; each orderbook_delta updates only its listed prices, and a
zero quantity deletes that price. Materialized output is relabeled orderbook
and uses sorted {price, quantity} levels. Set materialize_orderbooks=False
(Python), materialize_orderbooks: false (Rust), or
materializeOrderbooks: false (TypeScript) to receive raw deltas.
Reconnection is best-effort: the current live protocol has no resume cursor, so a reconnect can introduce a gap or duplicate event. The SDK clears reconstructed books on reconnect and suppresses later deltas until a new snapshot arrives. Protocol and authentication errors are terminal and are not retried.
Use l2_updates() in Python and Rust or l2Updates() in TypeScript to read the
initial snapshots and sparse deltas without reconstructing every intermediate
book. Reusable OrderbookBuilder exports in all three SDKs let applications
materialize those updates when needed:
from polaris_data import OrderbookBuilder
books = OrderbookBuilder()
books.update(snapshot)
books.update(delta) # False until a snapshot initializes this book
complete = books.snapshot("lighter", "BTC-USD")
books.clear_book("lighter", "BTC-USD")
update() mutates book state without constructing a full result. Call
snapshot() only when you need sorted levels. The existing apply() method
remains available as a compatibility shortcut that performs both operations.
PolarisClient API
PolarisClient is the main sync client for the SDK:
PolarisClient(
api_key=None,
base_url="https://api.polaris.supply",
timeout=30.0,
dataset_root=None,
stream_url=None,
)
Use it to inspect available data, query historical market data, and open realtime streams.
Discovery
| Method | Returns | Use case |
|---|---|---|
health() |
API health/status payload | Connectivity checks and startup validation |
catalog(source=None, market=None, q=None) |
Source/market metadata, including normalized instrument fields | Discover supported datasets, markets, instrument metadata, and time coverage |
Access patterns
| Method | Returns | Use case |
|---|---|---|
replay(source=..., market=..., from_=None, to=None, standard=True, allow_gaps=False, parallel=False, materialize_orderbooks=True) |
Iterator of historical events | Backfills, notebooks, and replay-style processing without materializing everything up front |
stream(source=..., markets=[...], include_buffer=False, materialize_orderbooks=True) |
Closeable iterator of realtime events | Open-ended normalized market data with automatic reconnection |
raw(source=..., market=..., from_=None, to=None, limit=1000) |
List of raw source payloads | Inspect exchange-native payloads and compare raw vs standardized schemas |
Standardized Data Schemas
| Method | Returns | Use case |
|---|---|---|
events(source=..., market=..., from_=None, to=None, allow_gaps=False, materialize_orderbooks=True) |
Iterator of standardized historical events | General-purpose historical analysis without retaining every row |
trades(source=..., market=..., from_=None, to=None, allow_gaps=False, output="iterator", batch_size=65536) |
Iterator, Arrow batches, or Pandas DataFrame | Trade-level analytics, execution studies, and notebook analysis |
l2_snapshots(source=..., market=..., from_=None, to=None, allow_gaps=False, materialize_orderbooks=True) |
Iterator of complete orderbook rows | Order book reconstruction and microstructure analysis |
l2_updates(source=..., market=..., from_=None, to=None, allow_gaps=False) |
Iterator of raw orderbook snapshots and deltas | High-throughput application-managed books |
funding_rates(source=..., market=..., from_=None, to=None, allow_gaps=False, output="iterator", batch_size=65536) |
Iterator, Arrow batches, or Pandas DataFrame | Perpetual funding studies and carry modeling |
mark_prices(source=..., market=..., from_=None, to=None, allow_gaps=False, output="iterator", batch_size=65536) |
Iterator, Arrow batches, or Pandas DataFrame | Basis analysis, mark tracking, and liquidation-related research |
ohlcv(source=..., market=..., from_=None, to=None, interval=..., format=None, allow_gaps=False) |
Aggregated OHLCV bars | Charting, bar-based strategies, and downstream TA workflows |
volume(source=..., market=..., from_=None, to=None, interval=..., allow_gaps=False) |
Bucketed trade volume series | Volume profiling and participation analysis |
vwap(source=..., market=..., from_=None, to=None, interval=..., allow_gaps=False) |
Bucketed VWAP series | Execution benchmarking and price smoothing |
volatility(source=..., market=..., from_=None, to=None, interval=..., method="log_returns", allow_gaps=False) |
Bucketed realized volatility series | Risk modeling and intraperiod volatility analysis |
bbo(source=..., market=..., from_=None, to=None, interval=None, allow_gaps=False, output="iterator", batch_size=65536) |
Iterator, Arrow batches, or Pandas DataFrame | Spread tracking, quote analytics, and top-of-book monitoring |
depth_metrics(source=..., market=..., from_=None, to=None, depth_pct=0.01, slippage_notional=10000.0, allow_gaps=False, output="iterator", batch_size=65536) |
Iterator, Arrow batches, or Pandas DataFrame | Liquidity analysis and market impact estimation |
Historical row methods are single-pass iterators. Iterate them directly for bounded memory, or call list(...) when you intentionally want an eager result. Setup and coverage errors occur when the method is called; decode errors can occur later while iterating. If you stop early, call the generator's close() method to promptly release its native reader. bbo(interval="1s") emits the last quote from each non-empty, UTC-aligned interval.
The five typed methods above also accept output="batches" for a bounded
iterator of pyarrow.RecordBatch objects or output="dataframe" for an eager
Pandas DataFrame. Columnar output flattens typed fields, uses UTC millisecond
timestamps, and dictionary-encodes source, market, and side. Venue-specific
trade and point fields appear as sorted extra.<name> columns; discovering
those fields requires one schema pass before batches are emitted.
For parameter details, response shapes, and end-to-end examples, see the Python SDK docs.
Benchmarks
Streaming and memory
Run the opt-in end-to-end benchmark after building the Python extension:
uv run python benchmarks/streaming_memory.py
It generates a 3,000-level local book with one million deltas, consumes raw standardized events, direct BBO, raw L2 updates, and lazy application-managed books in isolated processes, and reports end-to-end wall time, rows per second, and peak RSS. The command fails when peak RSS from 100,000 to one million deltas grows by more than the larger of 20% or 64 MiB, or when long-run throughput falls below 75% of short-run throughput.
Optionally set machine-specific throughput floors:
uv run python benchmarks/streaming_memory.py \
--min-rps events=50000 --min-rps bbo=100000 \
--min-rps l2_updates=500000 --min-rps l2_builder=250000
Compare iterator, native RecordBatch, and native DataFrame paths over the 788,383-trade fixture with:
uv run python benchmarks/columnar.py
The benchmark runs each mode in a separate process and reports elapsed time,
throughput, peak and incremental RSS, row count, and a price checksum. It does
not enforce machine-specific performance thresholds. Its
list-json-normalize mode is a worst-case convenience pattern: it first
materializes every nested row dictionary with list(client.trades(...)), then
calls pandas.json_normalize(...). The resulting peak RSS includes the Python
row objects and Pandas conversion temporaries, not just the final DataFrame.
Full-book materialization remains available as an explicitly scaled benchmark:
uv run python benchmarks/streaming_memory.py --modes l2 \
--short-deltas 100 --long-deltas 1000
Absolute throughput floors are intentionally opt-in because results vary by hardware and build profile.
Local event replay
Use the focused local replay benchmark to compare direct zstd+orjson decoding
with events() and replay():
uv run python benchmarks/local_replay.py \
--fixture trade --events 788383
The benchmark warms the filesystem cache, runs each path in an isolated
process, and reports iterator construction time, time to first event,
steady-state throughput, and peak RSS growth. Pass --enforce-targets to require
the SDK to deliver the first event in under 10 ms, process at least 500,000
events/s, and stay within 2× of direct zstd+orjson.
Reference results
The streaming and memory results below came from a local development build. The raw modes used the default million-update scale; materialized L2 used the explicit 1,000-update scale shown above. The local replay results came from one Apple Silicon macOS release run using the synthetic 788,383-event UNI-sized trade fixture.
| Benchmark | Path | Scale | Construction | First event | Throughput | Memory result |
|---|---|---|---|---|---|---|
| Streaming and memory | Raw events | 1,000,001 rows | — | — | 1.10M rows/s | 30.7 MiB peak RSS |
| Streaming and memory | Direct BBO | 1,000,001 quotes | — | — | 866k rows/s | 30.4 MiB peak RSS |
| Streaming and memory | Raw L2 updates | 1,000,001 updates | — | — | 1.15M rows/s | 30.8 MiB peak RSS |
| Streaming and memory | Lazy 3,000-level builder | 1,000,001 updates | — | — | 443k rows/s | 36.3 MiB peak RSS |
| Streaming and memory | Materialized 3,000-level L2 | 1,001 books | — | — | 646 books/s | 36.9 MiB peak RSS |
| Local replay | Direct zstd+orjson | 788,383 events | <0.01 ms | 0.09 ms | 2.21M events/s | +0.3 MiB peak RSS |
| Local replay | SDK events() |
788,383 events | 1.07 ms | 0.11 ms | 1.16M events/s | +2.4 MiB peak RSS |
| Local replay | SDK replay() |
788,383 events | 0.70 ms | 0.14 ms | 1.18M events/s | +3.1 MiB peak RSS |
In this run, events() was 1.91× the direct decoder time while exceeding the
500,000 events/s target by more than 2×. Construction and first-event latency
were reported separately; together they remained under 1.2 ms for events().
Local dataset storage
Standardized snapshots are stored under the shared Polaris app-data root so the Python SDK and CLI can reuse the same files. Legacy materialized day files are also recognized when present.
Default roots:
- macOS:
~/Library/Application Support/polaris - Linux:
$XDG_DATA_HOME/polarisor~/.local/share/polaris - Windows:
%APPDATA%\\polaris
Within that root, the SDK uses the same layout as the CLI:
<root>/
data/
daily/
tmp/
cache/
locks/
Standardized snapshot downloads are stored under:
<root>/data/<tier>/<source>/<market>/<YYYY-MM-DD>/<opaque-key>.jsonl.zst
When the snapshot service provides authoritative bounds, the SDK stores them in
an atomic <opaque-key>.jsonl.zst.coverage.json sidecar. Explicitly bounded
replays whose local files cover the requested interval do not perform a remote
coverage lookup. Older caches without sidecars remain readable using estimated
filename coverage and emit a warning until exact metadata is available.
The opaque key is the flat upstream snapshot identifier, for example:
standard-aster-ASTERUSDT-2026-06-01-00
which is stored on disk as:
<root>/data/standard/aster/ASTERUSDT/2026-06-01/standard-aster-ASTERUSDT-2026-06-01-00.jsonl.zst
Compatible materialized day files, when present, are stored under:
<root>/daily/<source>/<market>/<YYYY-MM-DD>.jsonl.zst
Pass dataset_root=... to PolarisClient(...) to override the root explicitly.
POLARIS_ROOT overrides the shared root globally.
POLARIS_DATASET_DOWNLOAD_DIR is still accepted as a deprecated compatibility override.
Snapshot-first replay
For standardized historical data, replay(...), events(...), trades(...), vwap(...), volatility(...), bbo(...), depth_metrics(...), l2_snapshots(...), l2_updates(...), volume(...), and default/tradingview ohlcv(...) now prefer /snapshots plus daily bulk /download?source=...&market=...&date=...&mode=json manifests, and reuse local snapshot files when they already exist:
from polaris_data import PolarisClient
with PolarisClient(api_key="polaris_key_your_key") as client:
for row in client.replay(
source="binance",
market="BTC-USDT",
from_="2024-01-01T00:00:00Z",
to="2024-01-01T01:00:00Z",
):
print(row)
If the requested standardized range cannot be satisfied from available standardized snapshots, replay(...), events(...), trades(...), vwap(...), volatility(...), bbo(...), depth_metrics(...), l2_snapshots(...), l2_updates(...), volume(...), and ohlcv(...) raise by default instead of falling back. Pass allow_gaps=True on standardized methods to return only covered data and receive a warning with the missing intervals.
Error handling
from polaris_data import PolarisClient, RateLimitedError, UnauthorizedError
client = PolarisClient()
try:
client.replay(
source="binance",
market="BTC-USDT",
from_="2024-01-01T00:00:00Z",
to="2024-01-01T01:00:00Z",
)
except UnauthorizedError:
print("API key is required")
except RateLimitedError as err:
print(f"Rate limited. Reset at: {err.reset_at}")
Tests
uv run pytest
cargo test --workspace
cd typescript && npm ci && npm run typecheck && npm test
Build and inspect the native Python wheel with:
uv run --with maturin maturin build --release
Python, Rust, and TypeScript are versioned independently. Python releases use
python-vX.Y.Z tags and publish polaris-data to PyPI; Rust releases use
rust-vX.Y.Z tags and publish polaris-data to crates.io; TypeScript releases
use typescript-vX.Y.Z tags and publish polaris-data to npm.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file polaris_data-0.12.0.tar.gz.
File metadata
- Download URL: polaris_data-0.12.0.tar.gz
- Upload date:
- Size: 88.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d4cf991c053b2f07cc8dbbd941014226e663e56e4b3a2a4e658ad0c6baaae52a
|
|
| MD5 |
fcb0269699e2a9eb7827e7540a54b4ba
|
|
| BLAKE2b-256 |
9693f5ed7f99e0e9468d4e6b1441f021663a81d5ba067ab6b3f73ec5021e796d
|
Provenance
The following attestation bundles were made for polaris_data-0.12.0.tar.gz:
Publisher:
release-python.yml on polaris-data/sdks
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
polaris_data-0.12.0.tar.gz -
Subject digest:
d4cf991c053b2f07cc8dbbd941014226e663e56e4b3a2a4e658ad0c6baaae52a - Sigstore transparency entry: 2414865471
- Sigstore integration time:
-
Permalink:
polaris-data/sdks@9f60177edf0e96ce0282a04f9ab143dd2e857d4e -
Branch / Tag:
refs/tags/python-v0.12.0 - Owner: https://github.com/polaris-data
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release-python.yml@9f60177edf0e96ce0282a04f9ab143dd2e857d4e -
Trigger Event:
push
-
Statement type:
File details
Details for the file polaris_data-0.12.0-cp39-abi3-win_arm64.whl.
File metadata
- Download URL: polaris_data-0.12.0-cp39-abi3-win_arm64.whl
- Upload date:
- Size: 3.7 MB
- Tags: CPython 3.9+, Windows ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
779a68a8795476df9c92f332025a5ef881ed62e0cb1279bb785039b0c59a3c5f
|
|
| MD5 |
b71512a9bea247cddad5ccbc6a7d3e89
|
|
| BLAKE2b-256 |
70d0d72ef77598935974cbc197ec68251ae55cd6ff6d73be3d8401b721bc6aa3
|
Provenance
The following attestation bundles were made for polaris_data-0.12.0-cp39-abi3-win_arm64.whl:
Publisher:
release-python.yml on polaris-data/sdks
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
polaris_data-0.12.0-cp39-abi3-win_arm64.whl -
Subject digest:
779a68a8795476df9c92f332025a5ef881ed62e0cb1279bb785039b0c59a3c5f - Sigstore transparency entry: 2414865755
- Sigstore integration time:
-
Permalink:
polaris-data/sdks@9f60177edf0e96ce0282a04f9ab143dd2e857d4e -
Branch / Tag:
refs/tags/python-v0.12.0 - Owner: https://github.com/polaris-data
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release-python.yml@9f60177edf0e96ce0282a04f9ab143dd2e857d4e -
Trigger Event:
push
-
Statement type:
File details
Details for the file polaris_data-0.12.0-cp39-abi3-win_amd64.whl.
File metadata
- Download URL: polaris_data-0.12.0-cp39-abi3-win_amd64.whl
- Upload date:
- Size: 4.0 MB
- Tags: CPython 3.9+, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8fc21134669c7158c0cfb18da6461e262b842c0c80d2b5f85472cd177545c5a6
|
|
| MD5 |
05cd8965f8832c06fe7e73d766a90c66
|
|
| BLAKE2b-256 |
417c638350944e9e827f045c1fe25188bb2775ee1c511c8a2decf8a4ca69a8e7
|
Provenance
The following attestation bundles were made for polaris_data-0.12.0-cp39-abi3-win_amd64.whl:
Publisher:
release-python.yml on polaris-data/sdks
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
polaris_data-0.12.0-cp39-abi3-win_amd64.whl -
Subject digest:
8fc21134669c7158c0cfb18da6461e262b842c0c80d2b5f85472cd177545c5a6 - Sigstore transparency entry: 2414865833
- Sigstore integration time:
-
Permalink:
polaris-data/sdks@9f60177edf0e96ce0282a04f9ab143dd2e857d4e -
Branch / Tag:
refs/tags/python-v0.12.0 - Owner: https://github.com/polaris-data
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release-python.yml@9f60177edf0e96ce0282a04f9ab143dd2e857d4e -
Trigger Event:
push
-
Statement type:
File details
Details for the file polaris_data-0.12.0-cp39-abi3-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: polaris_data-0.12.0-cp39-abi3-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 5.0 MB
- Tags: CPython 3.9+, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
12e1e2ab8691f35c96164aaec951e88942cff41542a1087cdc2fe17db1d57b99
|
|
| MD5 |
2d592f1c7cb2d55ee8353c46b790cece
|
|
| BLAKE2b-256 |
4e3bd1549bb56cbe094ead9321cc8673404d929d8438528fb1df93ea35e6dd0b
|
Provenance
The following attestation bundles were made for polaris_data-0.12.0-cp39-abi3-musllinux_1_2_x86_64.whl:
Publisher:
release-python.yml on polaris-data/sdks
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
polaris_data-0.12.0-cp39-abi3-musllinux_1_2_x86_64.whl -
Subject digest:
12e1e2ab8691f35c96164aaec951e88942cff41542a1087cdc2fe17db1d57b99 - Sigstore transparency entry: 2414865586
- Sigstore integration time:
-
Permalink:
polaris-data/sdks@9f60177edf0e96ce0282a04f9ab143dd2e857d4e -
Branch / Tag:
refs/tags/python-v0.12.0 - Owner: https://github.com/polaris-data
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release-python.yml@9f60177edf0e96ce0282a04f9ab143dd2e857d4e -
Trigger Event:
push
-
Statement type:
File details
Details for the file polaris_data-0.12.0-cp39-abi3-musllinux_1_2_aarch64.whl.
File metadata
- Download URL: polaris_data-0.12.0-cp39-abi3-musllinux_1_2_aarch64.whl
- Upload date:
- Size: 4.8 MB
- Tags: CPython 3.9+, musllinux: musl 1.2+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ff8e436f1c18524e21132f56cfe21cdc6afee370e7154f05e41864df40a664b4
|
|
| MD5 |
b101d4329e0851bd0c90f4ee5317be2d
|
|
| BLAKE2b-256 |
76dc5c8169756d70c2c5fec324f5ca254c0c8a98dcbef2b9fc64430c26595b5d
|
Provenance
The following attestation bundles were made for polaris_data-0.12.0-cp39-abi3-musllinux_1_2_aarch64.whl:
Publisher:
release-python.yml on polaris-data/sdks
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
polaris_data-0.12.0-cp39-abi3-musllinux_1_2_aarch64.whl -
Subject digest:
ff8e436f1c18524e21132f56cfe21cdc6afee370e7154f05e41864df40a664b4 - Sigstore transparency entry: 2414865520
- Sigstore integration time:
-
Permalink:
polaris-data/sdks@9f60177edf0e96ce0282a04f9ab143dd2e857d4e -
Branch / Tag:
refs/tags/python-v0.12.0 - Owner: https://github.com/polaris-data
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release-python.yml@9f60177edf0e96ce0282a04f9ab143dd2e857d4e -
Trigger Event:
push
-
Statement type:
File details
Details for the file polaris_data-0.12.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: polaris_data-0.12.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 4.6 MB
- Tags: CPython 3.9+, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
32cd15bf01cb01957b97860262d554f39cc3100fab1a8597398b32c1f20534d0
|
|
| MD5 |
da75067860d1dc23a3c7b0137ba637fb
|
|
| BLAKE2b-256 |
4dd5dd51a0ba775ab5adfc36f3a31c881328c25e508e8a8c65e863216c79590c
|
Provenance
The following attestation bundles were made for polaris_data-0.12.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:
Publisher:
release-python.yml on polaris-data/sdks
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
polaris_data-0.12.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl -
Subject digest:
32cd15bf01cb01957b97860262d554f39cc3100fab1a8597398b32c1f20534d0 - Sigstore transparency entry: 2414865918
- Sigstore integration time:
-
Permalink:
polaris-data/sdks@9f60177edf0e96ce0282a04f9ab143dd2e857d4e -
Branch / Tag:
refs/tags/python-v0.12.0 - Owner: https://github.com/polaris-data
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release-python.yml@9f60177edf0e96ce0282a04f9ab143dd2e857d4e -
Trigger Event:
push
-
Statement type:
File details
Details for the file polaris_data-0.12.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: polaris_data-0.12.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 4.6 MB
- Tags: CPython 3.9+, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8a3e1a9cbf7aa975d1742fc02f69c344ce89f44ce6cb167568b9b46066b23c21
|
|
| MD5 |
3e3bd320e9a184ca5111500e9cb6bdbe
|
|
| BLAKE2b-256 |
93a6dfdd7e0c72c01f8a01c263c32a58ae5a3abecc6d82d47427df44cfb8da7b
|
Provenance
The following attestation bundles were made for polaris_data-0.12.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:
Publisher:
release-python.yml on polaris-data/sdks
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
polaris_data-0.12.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl -
Subject digest:
8a3e1a9cbf7aa975d1742fc02f69c344ce89f44ce6cb167568b9b46066b23c21 - Sigstore transparency entry: 2414865648
- Sigstore integration time:
-
Permalink:
polaris-data/sdks@9f60177edf0e96ce0282a04f9ab143dd2e857d4e -
Branch / Tag:
refs/tags/python-v0.12.0 - Owner: https://github.com/polaris-data
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release-python.yml@9f60177edf0e96ce0282a04f9ab143dd2e857d4e -
Trigger Event:
push
-
Statement type:
File details
Details for the file polaris_data-0.12.0-cp39-abi3-macosx_11_0_arm64.whl.
File metadata
- Download URL: polaris_data-0.12.0-cp39-abi3-macosx_11_0_arm64.whl
- Upload date:
- Size: 4.0 MB
- Tags: CPython 3.9+, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ab0f7326d1044b0d639081060c80c6fe65ae4f4a526522767a4b63e54c7f655d
|
|
| MD5 |
ca1db46398caf20cbbfb1e9fd05a022a
|
|
| BLAKE2b-256 |
94c1673f2abbafc3eac19e06425df3b8218592a122fd694b3f07194188576978
|
Provenance
The following attestation bundles were made for polaris_data-0.12.0-cp39-abi3-macosx_11_0_arm64.whl:
Publisher:
release-python.yml on polaris-data/sdks
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
polaris_data-0.12.0-cp39-abi3-macosx_11_0_arm64.whl -
Subject digest:
ab0f7326d1044b0d639081060c80c6fe65ae4f4a526522767a4b63e54c7f655d - Sigstore transparency entry: 2414866065
- Sigstore integration time:
-
Permalink:
polaris-data/sdks@9f60177edf0e96ce0282a04f9ab143dd2e857d4e -
Branch / Tag:
refs/tags/python-v0.12.0 - Owner: https://github.com/polaris-data
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release-python.yml@9f60177edf0e96ce0282a04f9ab143dd2e857d4e -
Trigger Event:
push
-
Statement type:
File details
Details for the file polaris_data-0.12.0-cp39-abi3-macosx_10_12_x86_64.whl.
File metadata
- Download URL: polaris_data-0.12.0-cp39-abi3-macosx_10_12_x86_64.whl
- Upload date:
- Size: 4.2 MB
- Tags: CPython 3.9+, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
95aaee7006dd3aeafcc40f53c4e85618ed2f68b7d780e3a0e2f820ff2b8867f4
|
|
| MD5 |
d5b9976a5e2bc2ae9bc533dc3e3cbe7b
|
|
| BLAKE2b-256 |
90d6e5770097724317546f3e6b9b6794dddbdfbf30b5ffb9ee4f775a1409ab52
|
Provenance
The following attestation bundles were made for polaris_data-0.12.0-cp39-abi3-macosx_10_12_x86_64.whl:
Publisher:
release-python.yml on polaris-data/sdks
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
polaris_data-0.12.0-cp39-abi3-macosx_10_12_x86_64.whl -
Subject digest:
95aaee7006dd3aeafcc40f53c4e85618ed2f68b7d780e3a0e2f820ff2b8867f4 - Sigstore transparency entry: 2414865990
- Sigstore integration time:
-
Permalink:
polaris-data/sdks@9f60177edf0e96ce0282a04f9ab143dd2e857d4e -
Branch / Tag:
refs/tags/python-v0.12.0 - Owner: https://github.com/polaris-data
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release-python.yml@9f60177edf0e96ce0282a04f9ab143dd2e857d4e -
Trigger Event:
push
-
Statement type: