# Data7 ⚡ Open your data in minutes
> Pronounced data·set (**7** like **sept** in French).
![GitHub Actions Workflow Status](https://img.shields.io/github/actions/workflow/status/jmaupetit/data7/quality.yml)
![PyPI - Version](https://img.shields.io/pypi/v/data7)
## The idea 💡
**TL;DR** Data7 is a high performance web server that generates dynamic datasets
(in [CSV](https://en.wikipedia.org/wiki/Comma-separated_values) or
[Parquet](https://en.wikipedia.org/wiki/Apache_Parquet) formats) from existing
databases and streams them over HTTP 🎉
## A quick example
Let say you have a `restaurant` table in your 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 to initialize your project:
```sh
data7 init
```
✍️ Edit configuration files:
```yaml
# settings.yaml
production:
host: "https://data7.wonderful-places.org"
port: 80
# .secrets.yaml
production:
DATABASE_URL: "postgresql+asyncpg://user:pass@server:port/wonderful-places"
# data7.yaml
production:
datasets:
- basename: restaurants
query: "SELECT * FROM restaurant"
```
🏎️ Fire up the `data7` server:
```sh
data7 run
```
💥 Your dataset is available at:
- [https://data7.wonderful-places.org/d/restaurants.csv](https://data7.wonderful-places.org/d/restaurants.csv)
(CSV)
- [https://data7.wonderful-places.org/d/restaurants.parquet](https://data7.wonderful-places.org/d/restaurants.parquet)
(Parquet)
## Documentation
The complete documentation of the project is avaiable at:
[https://jmaupetit.github.io/data7/](https://jmaupetit.github.io/data7/)
## License
This work is released under the MIT License.
Raw data
{
"_id": null,
"home_page": "https://jmaupetit.github.io/data7/",
"name": "data7",
"maintainer": null,
"docs_url": null,
"requires_python": "<4.0,>=3.11",
"maintainer_email": null,
"keywords": "database, dataset, SQL, Parquet, CSV, HTTP",
"author": "Julien Maupetit",
"author_email": "julien@maupetit.net",
"download_url": "https://files.pythonhosted.org/packages/10/0b/0d3c36a701629cffd4bb14a2e1f1619c38312e0ff995eaee9165fc743473/data7-0.8.0.tar.gz",
"platform": null,
"description": "# Data7 \u26a1 Open your data in minutes\n\n> Pronounced data\u00b7set (**7** like **sept** in French).\n\n![GitHub Actions Workflow Status](https://img.shields.io/github/actions/workflow/status/jmaupetit/data7/quality.yml)\n![PyPI - Version](https://img.shields.io/pypi/v/data7)\n\n## The idea \ud83d\udca1\n\n**TL;DR** Data7 is a high performance web server that generates dynamic datasets\n(in [CSV](https://en.wikipedia.org/wiki/Comma-separated_values) or\n[Parquet](https://en.wikipedia.org/wiki/Apache_Parquet) formats) from existing\ndatabases and streams them over HTTP \ud83c\udf89\n\n## A quick example\n\nLet say you have a `restaurant` table in your PostgreSQL database, and you want\nto make this table an always-up-to-date dataset that can be easily used by the\nrest of the world.\n\nAll you have to do is to initialize your project:\n\n```sh\ndata7 init\n```\n\n\u270d\ufe0f Edit configuration files:\n\n```yaml\n# settings.yaml\nproduction:\n host: \"https://data7.wonderful-places.org\"\n port: 80\n\n# .secrets.yaml\nproduction:\n DATABASE_URL: \"postgresql+asyncpg://user:pass@server:port/wonderful-places\"\n\n# data7.yaml\nproduction:\n datasets:\n - basename: restaurants\n query: \"SELECT * FROM restaurant\"\n```\n\n\ud83c\udfce\ufe0f Fire up the `data7` server:\n\n```sh\ndata7 run\n```\n\n\ud83d\udca5 Your dataset is available at:\n\n- [https://data7.wonderful-places.org/d/restaurants.csv](https://data7.wonderful-places.org/d/restaurants.csv)\n (CSV)\n- [https://data7.wonderful-places.org/d/restaurants.parquet](https://data7.wonderful-places.org/d/restaurants.parquet)\n (Parquet)\n\n## Documentation\n\nThe complete documentation of the project is avaiable at:\n[https://jmaupetit.github.io/data7/](https://jmaupetit.github.io/data7/)\n\n## License\n\nThis work is released under the MIT License.\n\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Data7 streams CSV/Parquet datasets over HTTP from SQL queries.",
"version": "0.8.0",
"project_urls": {
"Documentation": "https://jmaupetit.github.io/data7/",
"Homepage": "https://jmaupetit.github.io/data7/",
"Repository": "https://github.com/jmaupetit/data7"
},
"split_keywords": [
"database",
" dataset",
" sql",
" parquet",
" csv",
" http"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "e76243e53c7c151f0f7d48c9ced6fc99853de3544fafcff24d751066425ce7bb",
"md5": "e3b7240a708222092dee9e8643482517",
"sha256": "3c15029ef0e05e3b3de93c6f3d366163bda6708d588c4cf846fe8d9f4fac2ca5"
},
"downloads": -1,
"filename": "data7-0.8.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "e3b7240a708222092dee9e8643482517",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<4.0,>=3.11",
"size": 10976,
"upload_time": "2024-10-17T09:42:41",
"upload_time_iso_8601": "2024-10-17T09:42:41.397368Z",
"url": "https://files.pythonhosted.org/packages/e7/62/43e53c7c151f0f7d48c9ced6fc99853de3544fafcff24d751066425ce7bb/data7-0.8.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "100b0d3c36a701629cffd4bb14a2e1f1619c38312e0ff995eaee9165fc743473",
"md5": "7654240a62763f66e0645e47a763d829",
"sha256": "24969e52b9c545c081f77ec78a5d72dafb54e70abc6b0ac2057211ffe685bde8"
},
"downloads": -1,
"filename": "data7-0.8.0.tar.gz",
"has_sig": false,
"md5_digest": "7654240a62763f66e0645e47a763d829",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<4.0,>=3.11",
"size": 9924,
"upload_time": "2024-10-17T09:42:42",
"upload_time_iso_8601": "2024-10-17T09:42:42.418463Z",
"url": "https://files.pythonhosted.org/packages/10/0b/0d3c36a701629cffd4bb14a2e1f1619c38312e0ff995eaee9165fc743473/data7-0.8.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-10-17 09:42:42",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "jmaupetit",
"github_project": "data7",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "data7"
}