Skip to main content

Data7 streams CSV/Parquet datasets over HTTP from SQL queries.

Project description

Data7 - Dynamic datasets the easy way

Pronounced data·set (7 like sept in French).

GitHub Actions Workflow Status PyPI - Version

The idea 💡

TL;DR Data7 is a high performance web server that generates dynamic datasets (in CSV or Parquet formats) from existing databases and stream them over HTTP 🎉

Example usage

Let say you have a restaurant table in your wonderful-places PostgreSQL database, and you want to make this table an always-up-to-date dataset that can be easily used by the rest of the world. All you have to do is edit Data7 configuration as follow:

#
# Data7 configuration file
#
# config.yaml
#
datasets:
  - basename: restaurants
    query: "SELECT * FROM restaurant"

Fire up the data7 server:

data7 start

And :boom: your dataset is available at:

Getting started

To quickly start contributing to this project, we got you covered! Once you've cloned the project, use GNU Make to ease your life (make and curl are required).

# Clone the project somewhere on your system
git clone git@github.com:jmaupetit/data7.git

# Enter the project's root directory
cd data7

# Prepare your working environment
make bootstrap

You can now start the development server:

make run

Test development endpoints:

# CSV format (displayed in the terminal)
curl http://localhost:8000/d/invoices.csv

# Parquet format (downloaded locally)
curl -O http://localhost:8000/d/invoices.parquet

# Check that the file exists
ls invoices.parquet

You can run quality checks using dedicated GNU Make rules:

# Run the tests suite
make test

# Linters!
make lint

Happy hacking 😻

License

This work is released under the MIT License (see LICENSE).

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

data7-0.2.0.tar.gz (9.5 kB view details)

Uploaded Source

Built Distribution

data7-0.2.0-py3-none-any.whl (10.4 kB view details)

Uploaded Python 3

File details

Details for the file data7-0.2.0.tar.gz.

File metadata

  • Download URL: data7-0.2.0.tar.gz
  • Upload date:
  • Size: 9.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.0 CPython/3.12.4

File hashes

Hashes for data7-0.2.0.tar.gz
Algorithm Hash digest
SHA256 dd7a87387204da72683393b7f6b569b86cc5f82a86da8c11a6e3cd1257607df5
MD5 7a2949c5c9d292ae29874d769ef14927
BLAKE2b-256 d32758676604e579f14f4dd28c90919fefb837511e611be06dcb81ed20783f06

See more details on using hashes here.

Provenance

File details

Details for the file data7-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: data7-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 10.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.0 CPython/3.12.4

File hashes

Hashes for data7-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 423dfb1c70e9a18170cb2a5a2bad0874de8f761f2a2e3c39cda62306f7569fbd
MD5 e6cdcc40ce7050dbf2c1617c3e0d9677
BLAKE2b-256 7e8239c955273c72591789d80170e591459430cab5e11e02965753a3e9661291

See more details on using hashes here.

Provenance

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page