Skip to main content

Instantly connect to curated DuckDB databases built from public data

Project description

datapond

Public data, instantly queryable.

datapond gives you instant SQL access to curated DuckDB databases built from public data sources -- no downloads, no API keys, no setup.

Install

pip install datapond

For faster downloads from Hugging Face:

pip install datapond[download]

Quick start

Browse available databases

import datapond

# See what's available
datapond.list()

# Get details about a specific database
datapond.info("eoir")

Connect and query

import datapond

con = datapond.connect("eoir")
con.sql("SHOW TABLES").show()
con.sql("SELECT * FROM cases LIMIT 10").show()

The connection is a standard duckdb.Connection -- use it however you normally use DuckDB, including with pandas and Polars.

df = con.sql("SELECT * FROM cases LIMIT 1000").df()  # pandas
pl = con.sql("SELECT * FROM cases LIMIT 1000").pl()   # polars

Download for offline use

datapond.download("eoir")

# Later, connect locally
con = datapond.connect("eoir", local=True)

Update a local database

datapond.update("eoir")

Multi-database queries

Attach multiple databases at once and query across them:

con = datapond.connect(["eoir", "foia"])

# Tables are namespaced by database ID
con.sql("SELECT * FROM eoir.cases LIMIT 5").show()
con.sql("SELECT * FROM foia.requests LIMIT 5").show()

CLI

datapond also includes a command-line interface:

# List available databases
datapond list

# Show database details
datapond info eoir

# Download a database
datapond download eoir --path ./data/

# Open an interactive SQL session
datapond connect eoir

How it works

datapond connects to read-only DuckDB files hosted remotely via the httpfs extension. The registry maintains a catalog of available databases with their URLs and metadata.

When you call datapond.connect(), it:

  1. Looks up the database in the registry
  2. Installs and loads the httpfs extension
  3. Attaches the remote DuckDB file as read-only
  4. Returns a connection ready for queries

No data is downloaded unless you explicitly call datapond.download().

Links

Contributing

Contributions are welcome. To add a new database to datapond, submit a pull request to the registry repository.

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 Distribution

datapond-0.1.0.tar.gz (8.8 kB view details)

Uploaded Source

Built Distribution

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

datapond-0.1.0-py3-none-any.whl (11.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: datapond-0.1.0.tar.gz
  • Upload date:
  • Size: 8.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.11 {"installer":{"name":"uv","version":"0.10.11","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for datapond-0.1.0.tar.gz
Algorithm Hash digest
SHA256 49150f9a1e86a6e4dbb93c1c89d705fc5649c2dd6bb344959d60242688556d9c
MD5 22189c8635bf2595f0671ca55ba3d1bd
BLAKE2b-256 4dd1d99e789ebf1f12928c3964f5be16e7f7f8c2db5fe59058579a151287dade

See more details on using hashes here.

File details

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

File metadata

  • Download URL: datapond-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 11.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.11 {"installer":{"name":"uv","version":"0.10.11","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for datapond-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 841cc4d9cf55d4b5ac31199303f35cff812db622ab63d4d100de6581f8f21ba3
MD5 8c9943a7511de6cd5df3d2c26d986577
BLAKE2b-256 a24b92711aeb2056e257e56bf2674164daae56652b14a716a6c7b7d2a62c235a

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