dagster-fivetran 0.27.16__tar.gz → 0.28.1__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_fivetran-0.27.16/dagster_fivetran.egg-info → dagster_fivetran-0.28.1}/PKG-INFO +3 -3
- {dagster_fivetran-0.27.16 → dagster_fivetran-0.28.1}/dagster_fivetran/components/workspace_component/component.py +77 -0
- dagster_fivetran-0.28.1/dagster_fivetran/version.py +1 -0
- {dagster_fivetran-0.27.16 → dagster_fivetran-0.28.1/dagster_fivetran.egg-info}/PKG-INFO +3 -3
- dagster_fivetran-0.28.1/dagster_fivetran.egg-info/requires.txt +7 -0
- {dagster_fivetran-0.27.16 → dagster_fivetran-0.28.1}/setup.py +2 -2
- dagster_fivetran-0.27.16/dagster_fivetran/version.py +0 -1
- dagster_fivetran-0.27.16/dagster_fivetran.egg-info/requires.txt +0 -7
- {dagster_fivetran-0.27.16 → dagster_fivetran-0.28.1}/LICENSE +0 -0
- {dagster_fivetran-0.27.16 → dagster_fivetran-0.28.1}/MANIFEST.in +0 -0
- {dagster_fivetran-0.27.16 → dagster_fivetran-0.28.1}/README.md +0 -0
- {dagster_fivetran-0.27.16 → dagster_fivetran-0.28.1}/dagster_fivetran/__init__.py +0 -0
- {dagster_fivetran-0.27.16 → dagster_fivetran-0.28.1}/dagster_fivetran/asset_decorator.py +0 -0
- {dagster_fivetran-0.27.16 → dagster_fivetran-0.28.1}/dagster_fivetran/asset_defs.py +0 -0
- {dagster_fivetran-0.27.16 → dagster_fivetran-0.28.1}/dagster_fivetran/cli.py +0 -0
- {dagster_fivetran-0.27.16 → dagster_fivetran-0.28.1}/dagster_fivetran/components/__init__.py +0 -0
- {dagster_fivetran-0.27.16 → dagster_fivetran-0.28.1}/dagster_fivetran/components/workspace_component/__init__.py +0 -0
- {dagster_fivetran-0.27.16 → dagster_fivetran-0.28.1}/dagster_fivetran/components/workspace_component/scaffolder.py +0 -0
- {dagster_fivetran-0.27.16 → dagster_fivetran-0.28.1}/dagster_fivetran/constants.py +0 -0
- {dagster_fivetran-0.27.16 → dagster_fivetran-0.28.1}/dagster_fivetran/fivetran_event_iterator.py +0 -0
- {dagster_fivetran-0.27.16 → dagster_fivetran-0.28.1}/dagster_fivetran/managed/__init__.py +0 -0
- {dagster_fivetran-0.27.16 → dagster_fivetran-0.28.1}/dagster_fivetran/managed/reconciliation.py +0 -0
- {dagster_fivetran-0.27.16 → dagster_fivetran-0.28.1}/dagster_fivetran/managed/types.py +0 -0
- {dagster_fivetran-0.27.16 → dagster_fivetran-0.28.1}/dagster_fivetran/ops.py +0 -0
- {dagster_fivetran-0.27.16 → dagster_fivetran-0.28.1}/dagster_fivetran/py.typed +0 -0
- {dagster_fivetran-0.27.16 → dagster_fivetran-0.28.1}/dagster_fivetran/resources.py +0 -0
- {dagster_fivetran-0.27.16 → dagster_fivetran-0.28.1}/dagster_fivetran/translator.py +0 -0
- {dagster_fivetran-0.27.16 → dagster_fivetran-0.28.1}/dagster_fivetran/types.py +0 -0
- {dagster_fivetran-0.27.16 → dagster_fivetran-0.28.1}/dagster_fivetran/utils.py +0 -0
- {dagster_fivetran-0.27.16 → dagster_fivetran-0.28.1}/dagster_fivetran.egg-info/SOURCES.txt +0 -0
- {dagster_fivetran-0.27.16 → dagster_fivetran-0.28.1}/dagster_fivetran.egg-info/dependency_links.txt +0 -0
- {dagster_fivetran-0.27.16 → dagster_fivetran-0.28.1}/dagster_fivetran.egg-info/entry_points.txt +0 -0
- {dagster_fivetran-0.27.16 → dagster_fivetran-0.28.1}/dagster_fivetran.egg-info/not-zip-safe +0 -0
- {dagster_fivetran-0.27.16 → dagster_fivetran-0.28.1}/dagster_fivetran.egg-info/top_level.txt +0 -0
- {dagster_fivetran-0.27.16 → dagster_fivetran-0.28.1}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: dagster-fivetran
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.28.1
|
|
4
4
|
Summary: Package for integrating Fivetran with Dagster.
|
|
5
5
|
Home-page: https://github.com/dagster-io/dagster/tree/master/python_modules/libraries/dagster-fivetran
|
|
6
6
|
Author: Dagster Labs
|
|
@@ -15,9 +15,9 @@ Classifier: License :: OSI Approved :: Apache Software License
|
|
|
15
15
|
Classifier: Operating System :: OS Independent
|
|
16
16
|
Requires-Python: >=3.9,<3.14
|
|
17
17
|
License-File: LICENSE
|
|
18
|
-
Requires-Dist: dagster==1.
|
|
18
|
+
Requires-Dist: dagster==1.12.1
|
|
19
19
|
Provides-Extra: managed
|
|
20
|
-
Requires-Dist: dagster-managed-elements==0.
|
|
20
|
+
Requires-Dist: dagster-managed-elements==0.28.1; extra == "managed"
|
|
21
21
|
Provides-Extra: test
|
|
22
22
|
Requires-Dist: pytest-order; extra == "test"
|
|
23
23
|
Dynamic: author
|
|
@@ -82,6 +82,23 @@ class FivetranAccountComponent(StateBackedComponent, dg.Model, dg.Resolvable):
|
|
|
82
82
|
"""Loads Fivetran connectors from a given Fivetran instance as Dagster assets.
|
|
83
83
|
Materializing these assets will trigger a sync of the Fivetran connector, enabling
|
|
84
84
|
you to schedule Fivetran syncs using Dagster.
|
|
85
|
+
|
|
86
|
+
Example:
|
|
87
|
+
|
|
88
|
+
.. code-block:: yaml
|
|
89
|
+
|
|
90
|
+
# defs.yaml
|
|
91
|
+
|
|
92
|
+
type: dagster_fivetran.FivetranAccountComponent
|
|
93
|
+
attributes:
|
|
94
|
+
workspace:
|
|
95
|
+
account_id: your_account_id
|
|
96
|
+
api_key: "{{ env.FIVETRAN_API_KEY }}"
|
|
97
|
+
api_secret: "{{ env.FIVETRAN_API_SECRET }}"
|
|
98
|
+
connector_selector:
|
|
99
|
+
by_name:
|
|
100
|
+
- my_postgres_connector
|
|
101
|
+
- my_snowflake_connector
|
|
85
102
|
"""
|
|
86
103
|
|
|
87
104
|
workspace: Annotated[
|
|
@@ -129,12 +146,72 @@ class FivetranAccountComponent(StateBackedComponent, dg.Model, dg.Resolvable):
|
|
|
129
146
|
default_key = f"{self.__class__.__name__}[{self.workspace_resource.account_id}]"
|
|
130
147
|
return DefsStateConfig.from_args(self.defs_state, default_key=default_key)
|
|
131
148
|
|
|
149
|
+
@public
|
|
132
150
|
def get_asset_spec(self, props: FivetranConnectorTableProps) -> dg.AssetSpec:
|
|
151
|
+
"""Generates an AssetSpec for a given Fivetran connector table.
|
|
152
|
+
|
|
153
|
+
This method can be overridden in a subclass to customize how Fivetran connector tables
|
|
154
|
+
are converted to Dagster asset specs. By default, it delegates to the configured
|
|
155
|
+
DagsterFivetranTranslator.
|
|
156
|
+
|
|
157
|
+
Args:
|
|
158
|
+
props: The FivetranConnectorTableProps containing information about the connector
|
|
159
|
+
and destination table being synced
|
|
160
|
+
|
|
161
|
+
Returns:
|
|
162
|
+
An AssetSpec that represents the Fivetran connector table as a Dagster asset
|
|
163
|
+
|
|
164
|
+
Example:
|
|
165
|
+
Override this method to add custom tags based on connector properties:
|
|
166
|
+
|
|
167
|
+
.. code-block:: python
|
|
168
|
+
|
|
169
|
+
from dagster_fivetran import FivetranAccountComponent
|
|
170
|
+
import dagster as dg
|
|
171
|
+
|
|
172
|
+
class CustomFivetranAccountComponent(FivetranAccountComponent):
|
|
173
|
+
def get_asset_spec(self, props):
|
|
174
|
+
base_spec = super().get_asset_spec(props)
|
|
175
|
+
return base_spec.replace_attributes(
|
|
176
|
+
tags={
|
|
177
|
+
**base_spec.tags,
|
|
178
|
+
"connector_type": props.connector_type,
|
|
179
|
+
"destination": props.destination_name
|
|
180
|
+
}
|
|
181
|
+
)
|
|
182
|
+
"""
|
|
133
183
|
return self._base_translator.get_asset_spec(props)
|
|
134
184
|
|
|
185
|
+
@public
|
|
135
186
|
def execute(
|
|
136
187
|
self, context: dg.AssetExecutionContext, fivetran: FivetranWorkspace
|
|
137
188
|
) -> Iterable[Union[dg.AssetMaterialization, dg.MaterializeResult]]:
|
|
189
|
+
"""Executes a Fivetran sync for the selected connector.
|
|
190
|
+
|
|
191
|
+
This method can be overridden in a subclass to customize the sync execution behavior,
|
|
192
|
+
such as adding custom logging or handling sync results differently.
|
|
193
|
+
|
|
194
|
+
Args:
|
|
195
|
+
context: The asset execution context provided by Dagster
|
|
196
|
+
fivetran: The FivetranWorkspace resource used to trigger and monitor syncs
|
|
197
|
+
|
|
198
|
+
Yields:
|
|
199
|
+
AssetMaterialization or MaterializeResult events from the Fivetran sync
|
|
200
|
+
|
|
201
|
+
Example:
|
|
202
|
+
Override this method to add custom logging during sync execution:
|
|
203
|
+
|
|
204
|
+
.. code-block:: python
|
|
205
|
+
|
|
206
|
+
from dagster_fivetran import FivetranAccountComponent
|
|
207
|
+
import dagster as dg
|
|
208
|
+
|
|
209
|
+
class CustomFivetranAccountComponent(FivetranAccountComponent):
|
|
210
|
+
def execute(self, context, fivetran):
|
|
211
|
+
context.log.info("Starting Fivetran sync")
|
|
212
|
+
yield from super().execute(context, fivetran)
|
|
213
|
+
context.log.info("Fivetran sync completed successfully")
|
|
214
|
+
"""
|
|
138
215
|
yield from fivetran.sync_and_poll(context=context)
|
|
139
216
|
|
|
140
217
|
def _load_asset_specs(self, state: FivetranWorkspaceData) -> Sequence[dg.AssetSpec]:
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "0.28.1"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: dagster-fivetran
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.28.1
|
|
4
4
|
Summary: Package for integrating Fivetran with Dagster.
|
|
5
5
|
Home-page: https://github.com/dagster-io/dagster/tree/master/python_modules/libraries/dagster-fivetran
|
|
6
6
|
Author: Dagster Labs
|
|
@@ -15,9 +15,9 @@ Classifier: License :: OSI Approved :: Apache Software License
|
|
|
15
15
|
Classifier: Operating System :: OS Independent
|
|
16
16
|
Requires-Python: >=3.9,<3.14
|
|
17
17
|
License-File: LICENSE
|
|
18
|
-
Requires-Dist: dagster==1.
|
|
18
|
+
Requires-Dist: dagster==1.12.1
|
|
19
19
|
Provides-Extra: managed
|
|
20
|
-
Requires-Dist: dagster-managed-elements==0.
|
|
20
|
+
Requires-Dist: dagster-managed-elements==0.28.1; extra == "managed"
|
|
21
21
|
Provides-Extra: test
|
|
22
22
|
Requires-Dist: pytest-order; extra == "test"
|
|
23
23
|
Dynamic: author
|
|
@@ -34,7 +34,7 @@ setup(
|
|
|
34
34
|
packages=find_packages(exclude=["dagster_fivetran_tests*"]),
|
|
35
35
|
include_package_data=True,
|
|
36
36
|
python_requires=">=3.9,<3.14",
|
|
37
|
-
install_requires=["dagster==1.
|
|
37
|
+
install_requires=["dagster==1.12.1"],
|
|
38
38
|
zip_safe=False,
|
|
39
39
|
entry_points={
|
|
40
40
|
"console_scripts": [
|
|
@@ -46,7 +46,7 @@ setup(
|
|
|
46
46
|
},
|
|
47
47
|
extras_require={
|
|
48
48
|
"managed": [
|
|
49
|
-
"dagster-managed-elements==0.
|
|
49
|
+
"dagster-managed-elements==0.28.1",
|
|
50
50
|
],
|
|
51
51
|
"test": [
|
|
52
52
|
"pytest-order",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = "0.27.16"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dagster_fivetran-0.27.16 → dagster_fivetran-0.28.1}/dagster_fivetran/components/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dagster_fivetran-0.27.16 → dagster_fivetran-0.28.1}/dagster_fivetran/fivetran_event_iterator.py
RENAMED
|
File without changes
|
|
File without changes
|
{dagster_fivetran-0.27.16 → dagster_fivetran-0.28.1}/dagster_fivetran/managed/reconciliation.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dagster_fivetran-0.27.16 → dagster_fivetran-0.28.1}/dagster_fivetran.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
{dagster_fivetran-0.27.16 → dagster_fivetran-0.28.1}/dagster_fivetran.egg-info/entry_points.txt
RENAMED
|
File without changes
|
|
File without changes
|
{dagster_fivetran-0.27.16 → dagster_fivetran-0.28.1}/dagster_fivetran.egg-info/top_level.txt
RENAMED
|
File without changes
|
|
File without changes
|