dagster-evidence 0.1.6__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.
- dagster_evidence-0.2.0/PKG-INFO +120 -0
- dagster_evidence-0.2.0/README.md +90 -0
- dagster_evidence-0.2.0/dagster_evidence/__init__.py +29 -0
- dagster_evidence-0.2.0/dagster_evidence/components/__init__.py +17 -0
- dagster_evidence-0.2.0/dagster_evidence/components/deployments.py +514 -0
- dagster_evidence-0.2.0/dagster_evidence/components/evidence_project_v2.py +185 -0
- dagster_evidence-0.2.0/dagster_evidence/components/projects.py +660 -0
- dagster_evidence-0.2.0/dagster_evidence/components/sources.py +1350 -0
- dagster_evidence-0.2.0/dagster_evidence/components/translator.py +168 -0
- {dagster_evidence-0.1.6 → dagster_evidence-0.2.0}/dagster_evidence/lib/evidence_project.py +6 -5
- {dagster_evidence-0.1.6 → dagster_evidence-0.2.0}/dagster_evidence/resource.py +4 -4
- dagster_evidence-0.2.0/dagster_evidence/utils/__init__.py +5 -0
- dagster_evidence-0.2.0/dagster_evidence/utils/sql_parser.py +87 -0
- dagster_evidence-0.2.0/dagster_evidence.egg-info/PKG-INFO +120 -0
- dagster_evidence-0.2.0/dagster_evidence.egg-info/SOURCES.txt +20 -0
- dagster_evidence-0.2.0/dagster_evidence.egg-info/requires.txt +30 -0
- dagster_evidence-0.2.0/pyproject.toml +50 -0
- dagster_evidence-0.1.6/PKG-INFO +0 -23
- dagster_evidence-0.1.6/README.md +0 -15
- dagster_evidence-0.1.6/dagster_evidence/__init__.py +0 -12
- dagster_evidence-0.1.6/dagster_evidence.egg-info/PKG-INFO +0 -23
- dagster_evidence-0.1.6/dagster_evidence.egg-info/SOURCES.txt +0 -12
- dagster_evidence-0.1.6/dagster_evidence.egg-info/requires.txt +0 -1
- dagster_evidence-0.1.6/pyproject.toml +0 -30
- {dagster_evidence-0.1.6 → dagster_evidence-0.2.0}/dagster_evidence/lib/__init__.py +0 -0
- {dagster_evidence-0.1.6 → dagster_evidence-0.2.0}/dagster_evidence.egg-info/dependency_links.txt +0 -0
- {dagster_evidence-0.1.6 → dagster_evidence-0.2.0}/dagster_evidence.egg-info/entry_points.txt +0 -0
- {dagster_evidence-0.1.6 → dagster_evidence-0.2.0}/dagster_evidence.egg-info/top_level.txt +0 -0
- {dagster_evidence-0.1.6 → 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
|
+

|
|
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
|
+

|
|
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
|
+
]
|