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.1.tar.gz (9.7 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.1-py3-none-any.whl (12.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: datapond-0.1.1.tar.gz
  • Upload date:
  • Size: 9.7 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.1.tar.gz
Algorithm Hash digest
SHA256 df2a39df9b3da5c658eb70a580203ffdebabbafc27ed0be9f7928f68013109e4
MD5 56696a0fb154e1bd231fc86bb405966a
BLAKE2b-256 38d9760988ce509715e21ca9b2de5688d2ae2c283a193cc273ad8d11a369aec1

See more details on using hashes here.

File details

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

File metadata

  • Download URL: datapond-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 12.1 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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 bb6d5b4bd15b77a897d48ec785097b8b74550cf4b248bddba14159a519012174
MD5 e220ed2a713664d13492c93fb615abd6
BLAKE2b-256 c18f0ee243b5490b1b94f021a65815bc32faa1075d5826974675bb8dfeb9d956

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