dagster-fivetran 0.27.16__tar.gz → 0.28.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 (35) hide show
  1. {dagster_fivetran-0.27.16/dagster_fivetran.egg-info → dagster_fivetran-0.28.0}/PKG-INFO +3 -3
  2. {dagster_fivetran-0.27.16 → dagster_fivetran-0.28.0}/dagster_fivetran/components/workspace_component/component.py +77 -0
  3. dagster_fivetran-0.28.0/dagster_fivetran/version.py +1 -0
  4. {dagster_fivetran-0.27.16 → dagster_fivetran-0.28.0/dagster_fivetran.egg-info}/PKG-INFO +3 -3
  5. dagster_fivetran-0.28.0/dagster_fivetran.egg-info/requires.txt +7 -0
  6. {dagster_fivetran-0.27.16 → dagster_fivetran-0.28.0}/setup.py +2 -2
  7. dagster_fivetran-0.27.16/dagster_fivetran/version.py +0 -1
  8. dagster_fivetran-0.27.16/dagster_fivetran.egg-info/requires.txt +0 -7
  9. {dagster_fivetran-0.27.16 → dagster_fivetran-0.28.0}/LICENSE +0 -0
  10. {dagster_fivetran-0.27.16 → dagster_fivetran-0.28.0}/MANIFEST.in +0 -0
  11. {dagster_fivetran-0.27.16 → dagster_fivetran-0.28.0}/README.md +0 -0
  12. {dagster_fivetran-0.27.16 → dagster_fivetran-0.28.0}/dagster_fivetran/__init__.py +0 -0
  13. {dagster_fivetran-0.27.16 → dagster_fivetran-0.28.0}/dagster_fivetran/asset_decorator.py +0 -0
  14. {dagster_fivetran-0.27.16 → dagster_fivetran-0.28.0}/dagster_fivetran/asset_defs.py +0 -0
  15. {dagster_fivetran-0.27.16 → dagster_fivetran-0.28.0}/dagster_fivetran/cli.py +0 -0
  16. {dagster_fivetran-0.27.16 → dagster_fivetran-0.28.0}/dagster_fivetran/components/__init__.py +0 -0
  17. {dagster_fivetran-0.27.16 → dagster_fivetran-0.28.0}/dagster_fivetran/components/workspace_component/__init__.py +0 -0
  18. {dagster_fivetran-0.27.16 → dagster_fivetran-0.28.0}/dagster_fivetran/components/workspace_component/scaffolder.py +0 -0
  19. {dagster_fivetran-0.27.16 → dagster_fivetran-0.28.0}/dagster_fivetran/constants.py +0 -0
  20. {dagster_fivetran-0.27.16 → dagster_fivetran-0.28.0}/dagster_fivetran/fivetran_event_iterator.py +0 -0
  21. {dagster_fivetran-0.27.16 → dagster_fivetran-0.28.0}/dagster_fivetran/managed/__init__.py +0 -0
  22. {dagster_fivetran-0.27.16 → dagster_fivetran-0.28.0}/dagster_fivetran/managed/reconciliation.py +0 -0
  23. {dagster_fivetran-0.27.16 → dagster_fivetran-0.28.0}/dagster_fivetran/managed/types.py +0 -0
  24. {dagster_fivetran-0.27.16 → dagster_fivetran-0.28.0}/dagster_fivetran/ops.py +0 -0
  25. {dagster_fivetran-0.27.16 → dagster_fivetran-0.28.0}/dagster_fivetran/py.typed +0 -0
  26. {dagster_fivetran-0.27.16 → dagster_fivetran-0.28.0}/dagster_fivetran/resources.py +0 -0
  27. {dagster_fivetran-0.27.16 → dagster_fivetran-0.28.0}/dagster_fivetran/translator.py +0 -0
  28. {dagster_fivetran-0.27.16 → dagster_fivetran-0.28.0}/dagster_fivetran/types.py +0 -0
  29. {dagster_fivetran-0.27.16 → dagster_fivetran-0.28.0}/dagster_fivetran/utils.py +0 -0
  30. {dagster_fivetran-0.27.16 → dagster_fivetran-0.28.0}/dagster_fivetran.egg-info/SOURCES.txt +0 -0
  31. {dagster_fivetran-0.27.16 → dagster_fivetran-0.28.0}/dagster_fivetran.egg-info/dependency_links.txt +0 -0
  32. {dagster_fivetran-0.27.16 → dagster_fivetran-0.28.0}/dagster_fivetran.egg-info/entry_points.txt +0 -0
  33. {dagster_fivetran-0.27.16 → dagster_fivetran-0.28.0}/dagster_fivetran.egg-info/not-zip-safe +0 -0
  34. {dagster_fivetran-0.27.16 → dagster_fivetran-0.28.0}/dagster_fivetran.egg-info/top_level.txt +0 -0
  35. {dagster_fivetran-0.27.16 → dagster_fivetran-0.28.0}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dagster-fivetran
3
- Version: 0.27.16
3
+ Version: 0.28.0
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.11.16
18
+ Requires-Dist: dagster==1.12.0
19
19
  Provides-Extra: managed
20
- Requires-Dist: dagster-managed-elements==0.27.16; extra == "managed"
20
+ Requires-Dist: dagster-managed-elements==0.28.0; 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.0"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dagster-fivetran
3
- Version: 0.27.16
3
+ Version: 0.28.0
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.11.16
18
+ Requires-Dist: dagster==1.12.0
19
19
  Provides-Extra: managed
20
- Requires-Dist: dagster-managed-elements==0.27.16; extra == "managed"
20
+ Requires-Dist: dagster-managed-elements==0.28.0; extra == "managed"
21
21
  Provides-Extra: test
22
22
  Requires-Dist: pytest-order; extra == "test"
23
23
  Dynamic: author
@@ -0,0 +1,7 @@
1
+ dagster==1.12.0
2
+
3
+ [managed]
4
+ dagster-managed-elements==0.28.0
5
+
6
+ [test]
7
+ pytest-order
@@ -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.11.16"],
37
+ install_requires=["dagster==1.12.0"],
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.27.16",
49
+ "dagster-managed-elements==0.28.0",
50
50
  ],
51
51
  "test": [
52
52
  "pytest-order",
@@ -1 +0,0 @@
1
- __version__ = "0.27.16"
@@ -1,7 +0,0 @@
1
- dagster==1.11.16
2
-
3
- [managed]
4
- dagster-managed-elements==0.27.16
5
-
6
- [test]
7
- pytest-order