Skip to main content

DuckDB-based reader for an options-chain data lake stored in Azure Data Lake Storage

Project description

radaroptions

DuckDB-based reader for an options-chain data lake stored in Azure Data Lake Storage Gen2. No JVM, no Spark cluster required - reads partitioned parquet directly via DuckDB's azure extension.

Auth is picked automatically based on which environment variable is set:

  • A read-only SAS URL (RADAR_LAKE_SAS_URL) - the normal way to get access. One single value someone gives you (bundles account + container + token) - no Azure account needed at all.
  • credential_chain - an Azure CLI session (az login) or a service principal (AZURE_TENANT_ID / AZURE_CLIENT_ID / AZURE_CLIENT_SECRET), for anyone with their own Azure AD identity that has read access to the storage account (set RADAR_LAKE_ACCOUNT / RADAR_LAKE_CONTAINER too in this case, since there's no URL to derive them from).

Install

pip install radaroptions

Configure

Installing the package doesn't grant you access. No access yet? Email dsantamaria@radaroptions.net.

RADAR_LAKE_SAS_URL=<the URL they give you>

That's the only variable most people need. Running a read without it set fails with a clear message pointing back to this contact.

Usage

Python

from radaroptions import read_day, read_range

df = read_day("2026-06-11")

df = read_range(
    "2026-01-01", "2026-06-30",
    columns=["strike", "option_type", "open_interest", "gamma", "current_price", "time"],
)

CLI

radaroptions read-day 2026-06-11 --out day.parquet
radaroptions read-range 2026-01-01 2026-06-30 -c strike,option_type,open_interest
radaroptions query "SELECT count(*) FROM read_parquet('abfss://<container>@<account>.dfs.core.windows.net/2026/06/*/*.parquet')"

read_range globs one file pattern per (year, month) covering the requested dates and filters on the data's own time column, using union_by_name=true so columns added or renamed over the years don't break the read.

Troubleshooting

  • TLS / proxy errors on Windows: set RADAR_LAKE_AZURE_TRANSPORT=curl to switch DuckDB's azure extension from WinHTTP to curl.
  • Schema errors reading a date range: a genuine type change in the underlying data (e.g. a column that used to be decimal and is now double) can still error even with union_by_name=true - pass columns=[...] to select only the fields you need.

License

Proprietary - see LICENSE. Installable for authorized use only; no rights are granted to copy, modify, or redistribute this software.

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

radaroptions-0.1.0.tar.gz (5.4 kB view details)

Uploaded Source

Built Distribution

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

radaroptions-0.1.0-py3-none-any.whl (7.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: radaroptions-0.1.0.tar.gz
  • Upload date:
  • Size: 5.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.13 {"installer":{"name":"uv","version":"0.9.13"},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for radaroptions-0.1.0.tar.gz
Algorithm Hash digest
SHA256 24e67a71eadd0932ccc021d9bac352a5492248495967549466197ad09af33f5a
MD5 da09e7541db8b8a44552b20018c73c70
BLAKE2b-256 0c74f68091a9bfc1d9b74a22b997dc0f3a08fe9de54288b6aa7a833b51ec59f2

See more details on using hashes here.

File details

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

File metadata

  • Download URL: radaroptions-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 7.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.13 {"installer":{"name":"uv","version":"0.9.13"},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for radaroptions-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 385214fe629d954a3a6171f9c35681d5dfcf9acb34293d555a20b72c95d8d173
MD5 be3b3495daf319de4a5607afe985e79c
BLAKE2b-256 b60c81cecd8fdcf4e41e618e3e913ff2a030ad48b635af27a2faa3da6186f84d

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