This release is a pre-release and may not be stable for production use.
dataio-artpark
Dataio is a Postgres + FastAPI based Dataset Management System (DMS) built by the Data Science Innovation Hub, ARTPARK, for cataloguing, validating, and distributing datasets. It ships as three things from one repo:
- A Python package (
dataio-artparkon PyPI) with a CLI, an SDK, and a standalone manifest-validation library (dataio.validate) that can be reused outside this project. - A FastAPI backend (
src/dataio/api/) serving both the programmatic API and a session-based web application API. - An Astro + Preact web app (
web/) — the admin panel and public dataset catalogue/browser.
You can find the documentation for the project here, and we're also on PyPI here.
For contributor/agent workflow conventions (git workflow, environment variables, code style), see AGENTS.md.
Features
- Dataset catalogue — browse, search, and download versioned datasets with per-table data dictionaries, manifests, and README documentation, gated by access level.
- Admin panel (
web/src/components/admin/) — import/curate datasets and raw datasets, manage manifests, run manifest validation, and manage users/groups/roles. - Dataset & raw dataset ID generation —
ds_idis assigned from a single catalogue-wide counter andrds_idfrom a per-category counter, matching the numbering used in the master Excel catalogue and S3. Seesuggest_next_dataset_id/suggest_next_raw_dataset_id_for_categoryinsrc/dataio/api/database/functions.py, and the "Next Available IDs" tool in the admin panel. - Manifest validation (
dataio.validate) — a standalone Pydantic-based library that validates a dataset'smetadata.yaml+ CSV/GeoJSON data against a versioned schema contract (tabular and geojson dataset kinds), independent of the API. - Auth — passwordless web login via Email OTP or Passkey (WebAuthn), plus API-key auth for programmatic/SDK access.
- AI chat assistant (
/chat) — an MCP-backed assistant that helps users discover datasets, backed by AWS Bedrock or OpenRouter.
Installation
Install the Python package using pip:
pip install dataio-artpark
or using uv:
uv add dataio-artpark
Development
We use uv to manage the Python project. Clone the repository and run:
uv sync --group api
Backend
Set up the local database (API keys for seeded users are generated in db/init/data_inserts):
bash ./src/dataio/db/init/recreate_full.sh
Apply any new migrations:
uv run all-migrations
Start the API server:
uv run fastapi dev src/dataio/api
or, with logging and autoreload:
uvicorn src.dataio.api.main:app --log-config log_config.yml --reload
Frontend
cd web
npm install
npm run dev # dev server
npm run build # astro check + production build
See AGENTS.md for required environment variables (backend .env and web/.env), the full project structure, and git/PR conventions.
Metadata
Release files for dataio-artpark 0.4.0b17
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| dataio_artpark-0.4.0b17.tar.gz | 44.1 kB | Without provenance | Details for dataio_artpark-0.4.0b17.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| dataio_artpark-0.4.0b17-py3-none-any.whl | Python 3 | none | any | Details for dataio_artpark-0.4.0b17-py3-none-any.whl |
Total release size: 98.5 kB
Release files / dataio_artpark-0.4.0b17.tar.gz
| Download URL | dataio_artpark-0.4.0b17.tar.gz |
|---|---|
| Size | 44.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
5424419a9970fb2e9c0875f8352b0918295e32a1305cf2c13ce8bcdb5f2165a7
|
|
BLAKE2b-256 checksum How to use checksums |
2a663d06d07b9f0ae35f927f3390151818683e5416753654cf6878b818abc0ff
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.13.6 {"installer":{"name":"uv","version":"0.13.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / dataio_artpark-0.4.0b17-py3-none-any.whl
| Download URL | dataio_artpark-0.4.0b17-py3-none-any.whl |
|---|---|
| Size | 54.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
2addc7b5d3695512094dc5e48f1922e61a3a2dc7b3ed4c505be0c9a260c2807f
|
|
BLAKE2b-256 checksum How to use checksums |
010b2dd2cab3f5c2f8b2fdbc1c1e97813d6b66a2aa437346213da400dcc88a13
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.13.6 {"installer":{"name":"uv","version":"0.13.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Security for dataio-artpark 0.4.0b17
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.