dagster-evidence
Dagster integration with Evidence, enabling you to orchestrate Evidence.dev dashboard projects as Dagster assets.
Installation
# Basic installation
uv add dagster-evidence
# With specific data source support
uv add "dagster-evidence[duckdb]" # DuckDB support
uv add "dagster-evidence[bigquery]" # BigQuery support
uv add "dagster-evidence[gsheets]" # Google Sheets support
uv add "dagster-evidence[github-pages]" # GitHub Pages deployment
# Install multiple extras
uv add "dagster-evidence[duckdb,bigquery,github-pages]"
Features
- Automatic asset discovery: Automatically generates Dagster assets from Evidence project sources
- Build and deployment: Builds Evidence projects and deploys them to your hosting platform
- Customizable translation: Extend the translator to customize how Evidence sources map to Dagster assets
- Type-safe configuration: Pydantic-based configuration with YAML support
- Source change detection: Optional sensors to detect changes in upstream data sources
Supported Data Sources
- DuckDB
- MotherDuck
- BigQuery
- Google Sheets
Need additional source types? You can extend the translator to add custom sources, or contribute to the project!
Deployment Support
Currently Implemented:
- GitHub Pages: Deploy to GitHub Pages with automatic git push
- Custom commands: Run any custom deployment script or command
Need another deployment target? Open an issue and tag @milicevica23 with your deployment requirements.
Quick Start
Component Configuration (YAML)
# defs.yaml
type: dagster_evidence.EvidenceProjectComponentV2
attributes:
evidence_project:
project_type: local
project_path: ./my-evidence-project
enable_source_assets_hiding: true
enable_source_sensors: false
project_deployment:
type: github_pages
github_repo: my-org/my-dashboard
branch: gh-pages
Advanced Usage
Custom Translator
You can customize how Evidence sources are translated to Dagster assets:
from dagster_evidence import DagsterEvidenceTranslator, EvidenceSourceTranslatorData
import dagster as dg
class MyTranslator(DagsterEvidenceTranslator):
def get_asset_spec(self, data):
if isinstance(data, EvidenceSourceTranslatorData):
# Custom logic for source assets
return dg.AssetSpec(
key=dg.AssetKey(["custom", data.query.name]),
kinds={"evidence", data.source_content.connection.type},
)
return super().get_asset_spec(data)
Contributing
Contributions are welcome! Please see the main repository's contribution guidelines.
Release files for dagster-evidence 0.2.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| dagster_evidence-0.2.1.tar.gz | 25.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| dagster_evidence-0.2.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 54.3 kB
Release files / dagster_evidence-0.2.1.tar.gz
| Download URL | dagster_evidence-0.2.1.tar.gz |
|---|---|
| Size | 25.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d87a32542efc64caf8e2f093cc59b4e815e9d98c9c9f306d764cfc5189925724
|
|
BLAKE2b-256 checksum How to use checksums |
e9f3fe07521cf0b95452026a1b4bb1d13f3fa58e269b6aca22e3704112bcc20a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.16 {"installer":{"name":"uv","version":"0.11.16","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":true}
|
Release files / dagster_evidence-0.2.1-py3-none-any.whl
| Download URL | dagster_evidence-0.2.1-py3-none-any.whl |
|---|---|
| Size | 29.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
f7b0a13a3292baec3ddca6c4975db60c0cb1e96829e769e602fe37b569dd9021
|
|
BLAKE2b-256 checksum How to use checksums |
b2dc78af3bf2fd447ce779996c38fbbc972a234bcd18810ce20a27a63690b532
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.16 {"installer":{"name":"uv","version":"0.11.16","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":true}
|