Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
77 changes: 0 additions & 77 deletions .github/workflows/claude-code-review.yml

This file was deleted.

69 changes: 0 additions & 69 deletions .github/workflows/claude.yml

This file was deleted.

35 changes: 6 additions & 29 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,39 +10,16 @@ Check the [README](README.md) for how to get started. The [Makefile](Makefile) c

Datadex is a minimalistic and functional open data platform to help communities get, transform and publish open data.

### Data Pipeline Architecture
### Principles

- Simple and functional.
- Low abstractions, no frameworks.
- Each file is a self-contained dataset.
- Rely on Makefile for orchestration.
- UNIX philosophy.
- One file, one dataset.
- Datasets are stored in the `data/` directory.

```python
import polars as pl
from pathlib import Path

def A(dep: pl.DataFrame) -> pl.DataFrame:
return dep.with_columns(A = pl.col("x") * 10).select("A")

if __name__ == "__main__":
dep = pl.read_parquet("data/source.parquet")
res = A(dep)
Path("data").mkdir(exist_ok=True)
res.write_parquet("data/A.parquet", complression="zstd", statistics=True)
print("✅ A.parquet written")
```

### Deployment Strategy

- Datasets are uploaded to Hugging Face Datasets (`datonic` organization).
- API is deployed as Hugging Face Space using Docker.
- Web interface served statically from `web/` directory.
- Everything versioned in git following "data as code" principles.

## Key Dependencies

- **Polars**: Primary data processing library.
- **httpx**: HTTP client for data fetching.
- **pyarrow**: Parquet file handling.
- **uv**: Python package and environment management.
- `uv`: Python environment management and runner.
- `polars`: Data processing library.
- `httpx`: HTTP client for data fetching.
26 changes: 11 additions & 15 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,38 +11,34 @@

<br>

Datadex is a fully open-source, serverless, and local-first Data Platform to improve how [communities collaborate on Open Data](https://davidgasquez.com/community-level-open-data-infrastructure/). Why?

- Increase your community's coordination and shared understanding.
- Makes it easy to publish data products built by your community, for your community.
Open-source, serverless, and local-first data platform for your community. Datadex helps [communities collaborate on Open Data](https://davidgasquez.com/community-level-open-data-infrastructure/), increasing the community's coordination and shared understanding by making it easy to build and publish data products, by your community, for your community.

> [!NOTE]
> The previous version of Datadex, which utilized Dagster and DuckDB, can be found at [this commit](https://github.com/datonic/datadex/tree/e0906b943bb35a4507fa24aa33494e9d7ceb6fef).

## 🚀 Implementations

Check other [real-world production Open Data Portals](https://davidgasquez.com/modern-open-data-portals/) of the Datadex pattern in the following repositories:
Datadex is a pattern, not only a project. Check [real-world production Open Data Portals](https://davidgasquez.com/modern-open-data-portals/) based on Datadex:

- [LUNG-SARG](https://github.com/open-radiogenomics/lung-sarg). The Open Data Platform for Sustainable, Accessible Lung Radiogenomics.
- [Datania](https://github.com/davidgasquez/datania/). An Open Data Platform at national level that unifies and harmonizes information from different sources.
- [Datania](https://github.com/davidgasquez/datania/). Open Data Platform that unifies and harmonizes information relevant Spanish datasets from different sources.
- [Filecoin Data Portal](https://github.com/davidgasquez/filecoin-data-portal/). The main open data portal around the Filecoin ecosystem.
- [LUNG-SARG](https://github.com/open-radiogenomics/lung-sarg). Open Data Platform for Sustainable, Accessible Lung Radiogenomics.
- [Gitcoin Grants Data Portal](https://github.com/davidgasquez/gitcoin-grants-data-portal). A Data hub for Gitcoin Grants data and related models.
- [Filecoin Data Portal](https://github.com/davidgasquez/filecoin-data-portal/). A data portal for data related to the Filecoin network and ecosystem.

## 💡 Principles

> [Make Open Data compatible with the Modern Data Ecosystem](https://handbook.davidgasquez.com/Open+Data).
> [Make working with open data easy and accessible by using modern tooling and approaches](https://handbook.davidgasquez.com/Open+Data).

- **Open**: Code, standards, infrastructure, and data, all public and open source. Rely on open source tools, standards, public infrastructure, and [accessible data formats](https://voltrondata.com/codex/a-new-frontier).
- **Modular and Interoperable**: Easy to replace, extend or remove components of the pattern. Environment flexibility (your laptop, in a cluster, or from the browser) when running and when deploying (S3 + GH Pages, IPFS, Hugging Face).
- **Permissionless**: Any improvement is one Pull Request away. Update pipelines, add datasets, or improve documentation. When consuming, there are no API limits, just plain files.
- **Modular and Interoperable**: Easy to replace, extend or remove components of the pattern. Environment flexibility (laptop, cluster, browser) when running and when deploying (S3 + GH Pages, IPFS, Hugging Face).
- **Permissionless**: Any improvement is one Pull Request away. Update pipelines, add datasets, or improve documentation. No API limits, just plain open files.
- **Simple**: Static assets, batch jobs.
- **Data as Code**: Reproducible datasets with declarative stateless transformations tracked in `git`. Data is versioned alongside the code.
- **Glue**: Be a bridge between tools and approaches. E.g: Use software engineering good practices like types, tests, materialized views, and more.
- **Glue**: Be a bridge between tools and approaches. Follow UNIX philosophy.

## ⚙️ Setup

Datadex is a Python project. The easiest way to get started is using a Python virtual environment.

If you hit any issue, please [open an issue](https:github.com/datonic/datadex/issues/new)!
You can get started easily by setting up a Python virtual environment. If you hit any issue, please [open an issue](https://github.com/datonic/datadex/issues/new)!

### 🐍 Python Virtual Environment

Expand Down
8 changes: 5 additions & 3 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@ readme = "README.md"
license = { text = "MIT" }
dependencies = [
"httpx>=0.28.1",
"huggingface-hub[hf-xet]>=0.34.3",
"polars>=1.32.1",
"huggingface-hub[hf-xet]>=0.36.0",
"polars>=1.34.0",
"pyarrow>=21.0.0",
]

Expand All @@ -27,4 +27,6 @@ module-name = "datadex"
module-root = ""

[dependency-groups]
dev = ["ipykernel>=6.30.1"]
dev = [
"ipykernel>=7.0.1",
]
Loading