dagster-evidence 0.1.4__tar.gz → 0.1.6__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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dagster-evidence
3
- Version: 0.1.4
3
+ Version: 0.1.6
4
4
  Summary: Dagster integration with evidence.dev
5
5
  Requires-Python: >=3.9
6
6
  Description-Content-Type: text/markdown
@@ -0,0 +1,12 @@
1
+ from dagster._core.libraries import DagsterLibraryRegistry
2
+
3
+ from dagster_evidence.lib.evidence_project import EvidenceProject
4
+ from dagster_evidence.resource import EvidenceResource
5
+
6
+ __version__ = "0.1.6"
7
+
8
+ __all__ = [EvidenceProject, EvidenceResource]
9
+
10
+ DagsterLibraryRegistry.register(
11
+ "dagster-evidence", __version__, is_dagster_package=False
12
+ )
@@ -0,0 +1,69 @@
1
+ import os
2
+ import sys
3
+ import subprocess
4
+ from typing import Optional, Sequence
5
+ import dagster as dg
6
+ from pydantic import Field
7
+
8
+
9
+ class EvidenceResource(dg.ConfigurableResource):
10
+ """A Dagster resource for managing Evidence.dev projects.
11
+
12
+ This resource provides functionality to build and deploy Evidence.dev dashboards.
13
+ It assumes that you have already created an Evidence.dev project. Read [the Evidence docs](https://docs.evidence.dev/) for more information.
14
+
15
+ Examples:
16
+ .. code-block:: python
17
+ import dagster as dg
18
+ from dagster_evidence import EvidenceResource
19
+
20
+ @dg.asset
21
+ def evidence_application(evidence: EvidenceResource):
22
+ evidence.build()
23
+
24
+ evidence_resource = EvidenceResource(
25
+ project_path="/path/to/evidence/project",
26
+ deploy_command="optional-deploy-command", # eg. `aws s3 cp ...`
27
+ )
28
+
29
+ defs = dg.Definitions(
30
+ assets=[evidence_application],
31
+ resources={"evidence": evidence_resource}
32
+ )
33
+ """
34
+
35
+ project_path: str = Field(..., description="The path to the Evidence.dev project")
36
+ deploy_command: Optional[str] = Field(
37
+ None, description="Command to deploy the built assets"
38
+ )
39
+ executable: str = Field(
40
+ default="npm",
41
+ description="The executable to use for commands (npm, yarn, etc.)",
42
+ )
43
+
44
+ def _run_cmd(self, cmd: Sequence[str]):
45
+ """Run a command in the project directory.
46
+
47
+ Args:
48
+ cmd: The command to run as a sequence of strings.
49
+ """
50
+ print(
51
+ f"{self.project_path}$ {' '.join(cmd)}",
52
+ file=sys.stderr,
53
+ )
54
+ subprocess.run(
55
+ cmd,
56
+ cwd=self.project_path,
57
+ check=True,
58
+ capture_output=False,
59
+ env=os.environ,
60
+ )
61
+
62
+ def build(self) -> None:
63
+ """Build the Evidence project.
64
+
65
+ 1. Run all sources to fetch data
66
+ 2. Build the project to generate the dashboard
67
+ """
68
+ self._run_cmd([self.executable, "run", "sources"])
69
+ self._run_cmd([self.executable, "run", "build"])
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dagster-evidence
3
- Version: 0.1.4
3
+ Version: 0.1.6
4
4
  Summary: Dagster integration with evidence.dev
5
5
  Requires-Python: >=3.9
6
6
  Description-Content-Type: text/markdown
@@ -1,6 +1,7 @@
1
1
  README.md
2
2
  pyproject.toml
3
3
  dagster_evidence/__init__.py
4
+ dagster_evidence/resource.py
4
5
  dagster_evidence.egg-info/PKG-INFO
5
6
  dagster_evidence.egg-info/SOURCES.txt
6
7
  dagster_evidence.egg-info/dependency_links.txt
@@ -1,2 +1,5 @@
1
1
  [dagster_dg.library]
2
2
  dagster_evidence = dagster_evidence
3
+
4
+ [dagster_dg.plugin]
5
+ dagster_evidence = dagster_evidence
@@ -27,3 +27,4 @@ version = {attr = "dagster_evidence.__version__"}
27
27
 
28
28
  [project.entry-points]
29
29
  "dagster_dg.library" = { dagster_evidence = "dagster_evidence"}
30
+ "dagster_dg.plugin" = { dagster_evidence = "dagster_evidence"}
@@ -1,9 +0,0 @@
1
- from dagster._core.libraries import DagsterLibraryRegistry
2
-
3
- from dagster_evidence.lib.evidence_project import EvidenceProject
4
-
5
- __version__ = "0.1.4"
6
-
7
- __all__ = [EvidenceProject]
8
-
9
- DagsterLibraryRegistry.register("dagster-evidence", __version__)