dagster-evidence 0.1.7__tar.gz → 0.2.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (29) hide show
  1. dagster_evidence-0.2.0/PKG-INFO +120 -0
  2. dagster_evidence-0.2.0/README.md +90 -0
  3. dagster_evidence-0.2.0/dagster_evidence/__init__.py +29 -0
  4. dagster_evidence-0.2.0/dagster_evidence/components/__init__.py +17 -0
  5. dagster_evidence-0.2.0/dagster_evidence/components/deployments.py +514 -0
  6. dagster_evidence-0.2.0/dagster_evidence/components/evidence_project_v2.py +185 -0
  7. dagster_evidence-0.2.0/dagster_evidence/components/projects.py +660 -0
  8. dagster_evidence-0.2.0/dagster_evidence/components/sources.py +1350 -0
  9. dagster_evidence-0.2.0/dagster_evidence/components/translator.py +168 -0
  10. {dagster_evidence-0.1.7 → dagster_evidence-0.2.0}/dagster_evidence/lib/evidence_project.py +2 -2
  11. {dagster_evidence-0.1.7 → dagster_evidence-0.2.0}/dagster_evidence/resource.py +2 -2
  12. dagster_evidence-0.2.0/dagster_evidence/utils/__init__.py +5 -0
  13. dagster_evidence-0.2.0/dagster_evidence/utils/sql_parser.py +87 -0
  14. dagster_evidence-0.2.0/dagster_evidence.egg-info/PKG-INFO +120 -0
  15. dagster_evidence-0.2.0/dagster_evidence.egg-info/SOURCES.txt +20 -0
  16. dagster_evidence-0.2.0/dagster_evidence.egg-info/requires.txt +30 -0
  17. dagster_evidence-0.2.0/pyproject.toml +50 -0
  18. dagster_evidence-0.1.7/PKG-INFO +0 -23
  19. dagster_evidence-0.1.7/README.md +0 -15
  20. dagster_evidence-0.1.7/dagster_evidence/__init__.py +0 -12
  21. dagster_evidence-0.1.7/dagster_evidence.egg-info/PKG-INFO +0 -23
  22. dagster_evidence-0.1.7/dagster_evidence.egg-info/SOURCES.txt +0 -12
  23. dagster_evidence-0.1.7/dagster_evidence.egg-info/requires.txt +0 -1
  24. dagster_evidence-0.1.7/pyproject.toml +0 -30
  25. {dagster_evidence-0.1.7 → dagster_evidence-0.2.0}/dagster_evidence/lib/__init__.py +0 -0
  26. {dagster_evidence-0.1.7 → dagster_evidence-0.2.0}/dagster_evidence.egg-info/dependency_links.txt +0 -0
  27. {dagster_evidence-0.1.7 → dagster_evidence-0.2.0}/dagster_evidence.egg-info/entry_points.txt +0 -0
  28. {dagster_evidence-0.1.7 → dagster_evidence-0.2.0}/dagster_evidence.egg-info/top_level.txt +0 -0
  29. {dagster_evidence-0.1.7 → dagster_evidence-0.2.0}/setup.cfg +0 -0
@@ -0,0 +1,120 @@
1
+ Metadata-Version: 2.4
2
+ Name: dagster-evidence
3
+ Version: 0.2.0
4
+ Summary: Dagster integration with evidence.dev
5
+ Requires-Python: <3.14,>=3.10
6
+ Description-Content-Type: text/markdown
7
+ Requires-Dist: dagster>=1.12.10
8
+ Requires-Dist: pyyaml>=6.0
9
+ Provides-Extra: github-pages
10
+ Requires-Dist: gitpython>=3.1.0; extra == "github-pages"
11
+ Provides-Extra: sql
12
+ Requires-Dist: sqlglot>=26.0.0; extra == "sql"
13
+ Provides-Extra: duckdb
14
+ Requires-Dist: duckdb>=0.10.0; extra == "duckdb"
15
+ Provides-Extra: bigquery
16
+ Requires-Dist: google-cloud-bigquery>=3.0.0; extra == "bigquery"
17
+ Provides-Extra: gsheets
18
+ Requires-Dist: google-api-python-client>=2.0.0; extra == "gsheets"
19
+ Requires-Dist: google-auth>=2.0.0; extra == "gsheets"
20
+ Provides-Extra: all
21
+ Requires-Dist: gitpython>=3.1.0; extra == "all"
22
+ Requires-Dist: sqlglot>=26.0.0; extra == "all"
23
+ Requires-Dist: duckdb>=0.10.0; extra == "all"
24
+ Requires-Dist: google-cloud-bigquery>=3.0.0; extra == "all"
25
+ Requires-Dist: google-api-python-client>=2.0.0; extra == "all"
26
+ Requires-Dist: google-auth>=2.0.0; extra == "all"
27
+ Provides-Extra: test
28
+ Requires-Dist: pytest; extra == "test"
29
+ Requires-Dist: pytest-mock; extra == "test"
30
+
31
+ # dagster-evidence
32
+
33
+ Dagster integration with [Evidence](https://evidence.dev/), enabling you to orchestrate Evidence.dev dashboard projects as Dagster assets.
34
+
35
+ ![architecture](./docs/component-architecture.excalidraw.png)
36
+ ## Installation
37
+
38
+ ```bash
39
+ # Basic installation
40
+ uv add dagster-evidence
41
+
42
+ # With specific data source support
43
+ uv add "dagster-evidence[duckdb]" # DuckDB support
44
+ uv add "dagster-evidence[bigquery]" # BigQuery support
45
+ uv add "dagster-evidence[gsheets]" # Google Sheets support
46
+ uv add "dagster-evidence[github-pages]" # GitHub Pages deployment
47
+
48
+ # Install multiple extras
49
+ uv add "dagster-evidence[duckdb,bigquery,github-pages]"
50
+ ```
51
+
52
+ ## Features
53
+
54
+ - **Automatic asset discovery**: Automatically generates Dagster assets from Evidence project sources
55
+ - **Build and deployment**: Builds Evidence projects and deploys them to your hosting platform
56
+ - **Customizable translation**: Extend the translator to customize how Evidence sources map to Dagster assets
57
+ - **Type-safe configuration**: Pydantic-based configuration with YAML support
58
+ - **Source change detection**: Optional sensors to detect changes in upstream data sources
59
+
60
+ ## Supported Data Sources
61
+
62
+ - DuckDB
63
+ - MotherDuck
64
+ - BigQuery
65
+ - Google Sheets
66
+
67
+ Need additional source types? You can extend the translator to add custom sources, or contribute to the project!
68
+
69
+ ## Deployment Support
70
+
71
+ **Currently Implemented:**
72
+ - GitHub Pages: Deploy to GitHub Pages with automatic git push
73
+ - Custom commands: Run any custom deployment script or command
74
+
75
+ **Need another deployment target?** Open an issue and tag [@milicevica23](https://github.com/milicevica23) with your deployment requirements.
76
+
77
+ ## Quick Start
78
+
79
+ ### Component Configuration (YAML)
80
+
81
+ ```yaml
82
+ # defs.yaml
83
+ type: dagster_evidence.EvidenceProjectComponentV2
84
+ attributes:
85
+ evidence_project:
86
+ project_type: local
87
+ project_path: ./my-evidence-project
88
+ enable_source_assets_hiding: true
89
+ enable_source_sensors: false
90
+ project_deployment:
91
+ type: github_pages
92
+ github_repo: my-org/my-dashboard
93
+ branch: gh-pages
94
+ ```
95
+
96
+ ## Advanced Usage
97
+
98
+ ### Custom Translator
99
+
100
+ You can customize how Evidence sources are translated to Dagster assets:
101
+
102
+ ```python
103
+ from dagster_evidence import DagsterEvidenceTranslator, EvidenceSourceTranslatorData
104
+ import dagster as dg
105
+
106
+ class MyTranslator(DagsterEvidenceTranslator):
107
+ def get_asset_spec(self, data):
108
+ if isinstance(data, EvidenceSourceTranslatorData):
109
+ # Custom logic for source assets
110
+ return dg.AssetSpec(
111
+ key=dg.AssetKey(["custom", data.query.name]),
112
+ kinds={"evidence", data.source_content.connection.type},
113
+ )
114
+ return super().get_asset_spec(data)
115
+ ```
116
+
117
+
118
+ ## Contributing
119
+
120
+ Contributions are welcome! Please see the main repository's contribution guidelines.
@@ -0,0 +1,90 @@
1
+ # dagster-evidence
2
+
3
+ Dagster integration with [Evidence](https://evidence.dev/), enabling you to orchestrate Evidence.dev dashboard projects as Dagster assets.
4
+
5
+ ![architecture](./docs/component-architecture.excalidraw.png)
6
+ ## Installation
7
+
8
+ ```bash
9
+ # Basic installation
10
+ uv add dagster-evidence
11
+
12
+ # With specific data source support
13
+ uv add "dagster-evidence[duckdb]" # DuckDB support
14
+ uv add "dagster-evidence[bigquery]" # BigQuery support
15
+ uv add "dagster-evidence[gsheets]" # Google Sheets support
16
+ uv add "dagster-evidence[github-pages]" # GitHub Pages deployment
17
+
18
+ # Install multiple extras
19
+ uv add "dagster-evidence[duckdb,bigquery,github-pages]"
20
+ ```
21
+
22
+ ## Features
23
+
24
+ - **Automatic asset discovery**: Automatically generates Dagster assets from Evidence project sources
25
+ - **Build and deployment**: Builds Evidence projects and deploys them to your hosting platform
26
+ - **Customizable translation**: Extend the translator to customize how Evidence sources map to Dagster assets
27
+ - **Type-safe configuration**: Pydantic-based configuration with YAML support
28
+ - **Source change detection**: Optional sensors to detect changes in upstream data sources
29
+
30
+ ## Supported Data Sources
31
+
32
+ - DuckDB
33
+ - MotherDuck
34
+ - BigQuery
35
+ - Google Sheets
36
+
37
+ Need additional source types? You can extend the translator to add custom sources, or contribute to the project!
38
+
39
+ ## Deployment Support
40
+
41
+ **Currently Implemented:**
42
+ - GitHub Pages: Deploy to GitHub Pages with automatic git push
43
+ - Custom commands: Run any custom deployment script or command
44
+
45
+ **Need another deployment target?** Open an issue and tag [@milicevica23](https://github.com/milicevica23) with your deployment requirements.
46
+
47
+ ## Quick Start
48
+
49
+ ### Component Configuration (YAML)
50
+
51
+ ```yaml
52
+ # defs.yaml
53
+ type: dagster_evidence.EvidenceProjectComponentV2
54
+ attributes:
55
+ evidence_project:
56
+ project_type: local
57
+ project_path: ./my-evidence-project
58
+ enable_source_assets_hiding: true
59
+ enable_source_sensors: false
60
+ project_deployment:
61
+ type: github_pages
62
+ github_repo: my-org/my-dashboard
63
+ branch: gh-pages
64
+ ```
65
+
66
+ ## Advanced Usage
67
+
68
+ ### Custom Translator
69
+
70
+ You can customize how Evidence sources are translated to Dagster assets:
71
+
72
+ ```python
73
+ from dagster_evidence import DagsterEvidenceTranslator, EvidenceSourceTranslatorData
74
+ import dagster as dg
75
+
76
+ class MyTranslator(DagsterEvidenceTranslator):
77
+ def get_asset_spec(self, data):
78
+ if isinstance(data, EvidenceSourceTranslatorData):
79
+ # Custom logic for source assets
80
+ return dg.AssetSpec(
81
+ key=dg.AssetKey(["custom", data.query.name]),
82
+ kinds={"evidence", data.source_content.connection.type},
83
+ )
84
+ return super().get_asset_spec(data)
85
+ ```
86
+
87
+
88
+ ## Contributing
89
+
90
+ Contributions are welcome! Please see the main repository's contribution guidelines.
@@ -0,0 +1,29 @@
1
+ from dagster._core.libraries import DagsterLibraryRegistry
2
+
3
+ from dagster_evidence.components.evidence_project_v2 import EvidenceProjectComponentV2
4
+ from dagster_evidence.components.sources import (
5
+ EvidenceProjectTranslatorData,
6
+ EvidenceSourceTranslatorData,
7
+ ProjectDagsterMetadata,
8
+ SourceDagsterMetadata,
9
+ )
10
+ from dagster_evidence.components.translator import DagsterEvidenceTranslator
11
+ from dagster_evidence.lib.evidence_project import EvidenceProject
12
+ from dagster_evidence.resource import EvidenceResource
13
+
14
+ __version__ = "0.2.0"
15
+
16
+ __all__ = [
17
+ "EvidenceProjectComponentV2",
18
+ "EvidenceProject",
19
+ "EvidenceResource",
20
+ "DagsterEvidenceTranslator",
21
+ "EvidenceSourceTranslatorData",
22
+ "EvidenceProjectTranslatorData",
23
+ "ProjectDagsterMetadata",
24
+ "SourceDagsterMetadata",
25
+ ]
26
+
27
+ DagsterLibraryRegistry.register(
28
+ "dagster-evidence", __version__, is_dagster_package=False
29
+ )
@@ -0,0 +1,17 @@
1
+ from dagster_evidence.components.evidence_project_v2 import (
2
+ EvidenceProjectComponentV2 as EvidenceProjectComponentV2,
3
+ )
4
+ from dagster_evidence.components.sources import (
5
+ EvidenceProjectTranslatorData as EvidenceProjectTranslatorData,
6
+ EvidenceSourceTranslatorData as EvidenceSourceTranslatorData,
7
+ )
8
+ from dagster_evidence.components.translator import (
9
+ DagsterEvidenceTranslator as DagsterEvidenceTranslator,
10
+ )
11
+
12
+ __all__ = [
13
+ "EvidenceProjectComponentV2",
14
+ "DagsterEvidenceTranslator",
15
+ "EvidenceSourceTranslatorData",
16
+ "EvidenceProjectTranslatorData",
17
+ ]