dagster-airbyte 0.27.13__tar.gz → 0.27.14__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.
Potentially problematic release.
This version of dagster-airbyte might be problematic. Click here for more details.
- {dagster_airbyte-0.27.13/dagster_airbyte.egg-info → dagster_airbyte-0.27.14}/PKG-INFO +3 -3
- {dagster_airbyte-0.27.13 → dagster_airbyte-0.27.14}/dagster_airbyte/components/workspace_component/component.py +66 -31
- dagster_airbyte-0.27.14/dagster_airbyte/version.py +1 -0
- {dagster_airbyte-0.27.13 → dagster_airbyte-0.27.14/dagster_airbyte.egg-info}/PKG-INFO +3 -3
- dagster_airbyte-0.27.14/dagster_airbyte.egg-info/requires.txt +9 -0
- {dagster_airbyte-0.27.13 → dagster_airbyte-0.27.14}/setup.py +2 -2
- dagster_airbyte-0.27.13/dagster_airbyte/version.py +0 -1
- dagster_airbyte-0.27.13/dagster_airbyte.egg-info/requires.txt +0 -9
- {dagster_airbyte-0.27.13 → dagster_airbyte-0.27.14}/LICENSE +0 -0
- {dagster_airbyte-0.27.13 → dagster_airbyte-0.27.14}/MANIFEST.in +0 -0
- {dagster_airbyte-0.27.13 → dagster_airbyte-0.27.14}/README.md +0 -0
- {dagster_airbyte-0.27.13 → dagster_airbyte-0.27.14}/dagster_airbyte/__init__.py +0 -0
- {dagster_airbyte-0.27.13 → dagster_airbyte-0.27.14}/dagster_airbyte/asset_decorator.py +0 -0
- {dagster_airbyte-0.27.13 → dagster_airbyte-0.27.14}/dagster_airbyte/asset_defs.py +0 -0
- {dagster_airbyte-0.27.13 → dagster_airbyte-0.27.14}/dagster_airbyte/cli.py +0 -0
- {dagster_airbyte-0.27.13 → dagster_airbyte-0.27.14}/dagster_airbyte/components/__init__.py +0 -0
- {dagster_airbyte-0.27.13 → dagster_airbyte-0.27.14}/dagster_airbyte/components/workspace_component/__init__.py +0 -0
- {dagster_airbyte-0.27.13 → dagster_airbyte-0.27.14}/dagster_airbyte/components/workspace_component/scaffolder.py +0 -0
- {dagster_airbyte-0.27.13 → dagster_airbyte-0.27.14}/dagster_airbyte/managed/__init__.py +0 -0
- {dagster_airbyte-0.27.13 → dagster_airbyte-0.27.14}/dagster_airbyte/managed/generated/__init__.py +0 -0
- {dagster_airbyte-0.27.13 → dagster_airbyte-0.27.14}/dagster_airbyte/managed/generated/destinations.py +0 -0
- {dagster_airbyte-0.27.13 → dagster_airbyte-0.27.14}/dagster_airbyte/managed/generated/sources.py +0 -0
- {dagster_airbyte-0.27.13 → dagster_airbyte-0.27.14}/dagster_airbyte/managed/reconciliation.py +0 -0
- {dagster_airbyte-0.27.13 → dagster_airbyte-0.27.14}/dagster_airbyte/managed/types.py +0 -0
- {dagster_airbyte-0.27.13 → dagster_airbyte-0.27.14}/dagster_airbyte/ops.py +0 -0
- {dagster_airbyte-0.27.13 → dagster_airbyte-0.27.14}/dagster_airbyte/py.typed +0 -0
- {dagster_airbyte-0.27.13 → dagster_airbyte-0.27.14}/dagster_airbyte/resources.py +0 -0
- {dagster_airbyte-0.27.13 → dagster_airbyte-0.27.14}/dagster_airbyte/translator.py +0 -0
- {dagster_airbyte-0.27.13 → dagster_airbyte-0.27.14}/dagster_airbyte/types.py +0 -0
- {dagster_airbyte-0.27.13 → dagster_airbyte-0.27.14}/dagster_airbyte/utils.py +0 -0
- {dagster_airbyte-0.27.13 → dagster_airbyte-0.27.14}/dagster_airbyte.egg-info/SOURCES.txt +0 -0
- {dagster_airbyte-0.27.13 → dagster_airbyte-0.27.14}/dagster_airbyte.egg-info/dependency_links.txt +0 -0
- {dagster_airbyte-0.27.13 → dagster_airbyte-0.27.14}/dagster_airbyte.egg-info/entry_points.txt +0 -0
- {dagster_airbyte-0.27.13 → dagster_airbyte-0.27.14}/dagster_airbyte.egg-info/not-zip-safe +0 -0
- {dagster_airbyte-0.27.13 → dagster_airbyte-0.27.14}/dagster_airbyte.egg-info/top_level.txt +0 -0
- {dagster_airbyte-0.27.13 → dagster_airbyte-0.27.14}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: dagster-airbyte
|
|
3
|
-
Version: 0.27.
|
|
3
|
+
Version: 0.27.14
|
|
4
4
|
Summary: Package for integrating Airbyte with Dagster.
|
|
5
5
|
Home-page: https://github.com/dagster-io/dagster/tree/master/python_modules/libraries/dagster-airbyte
|
|
6
6
|
Author: Dagster Labs
|
|
@@ -15,13 +15,13 @@ 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.
|
|
18
|
+
Requires-Dist: dagster==1.11.14
|
|
19
19
|
Requires-Dist: requests
|
|
20
20
|
Provides-Extra: test
|
|
21
21
|
Requires-Dist: requests-mock; extra == "test"
|
|
22
22
|
Requires-Dist: flaky; extra == "test"
|
|
23
23
|
Provides-Extra: managed
|
|
24
|
-
Requires-Dist: dagster-managed-elements==0.27.
|
|
24
|
+
Requires-Dist: dagster-managed-elements==0.27.14; extra == "managed"
|
|
25
25
|
Dynamic: author
|
|
26
26
|
Dynamic: author-email
|
|
27
27
|
Dynamic: classifier
|
|
@@ -1,38 +1,33 @@
|
|
|
1
|
-
from collections.abc import Sequence
|
|
1
|
+
from collections.abc import Iterable, Sequence
|
|
2
2
|
from functools import cached_property
|
|
3
3
|
from typing import Annotated, Callable, Optional, Union
|
|
4
4
|
|
|
5
5
|
import dagster as dg
|
|
6
6
|
import pydantic
|
|
7
7
|
from dagster._annotations import superseded
|
|
8
|
-
from dagster.
|
|
8
|
+
from dagster._utils.names import clean_name
|
|
9
9
|
from dagster.components.resolved.base import resolve_fields
|
|
10
|
-
from dagster.components.utils.translation import
|
|
10
|
+
from dagster.components.utils.translation import (
|
|
11
|
+
ComponentTranslator,
|
|
12
|
+
TranslationFn,
|
|
13
|
+
TranslationFnResolver,
|
|
14
|
+
create_component_translator_cls,
|
|
15
|
+
)
|
|
11
16
|
from dagster_shared import check
|
|
12
17
|
|
|
13
|
-
from dagster_airbyte.
|
|
18
|
+
from dagster_airbyte.asset_decorator import airbyte_assets
|
|
14
19
|
from dagster_airbyte.components.workspace_component.scaffolder import (
|
|
15
20
|
AirbyteWorkspaceComponentScaffolder,
|
|
16
21
|
)
|
|
17
|
-
from dagster_airbyte.resources import AirbyteCloudWorkspace, AirbyteWorkspace
|
|
22
|
+
from dagster_airbyte.resources import AirbyteCloudWorkspace, AirbyteWorkspace, BaseAirbyteWorkspace
|
|
18
23
|
from dagster_airbyte.translator import (
|
|
19
24
|
AirbyteConnection,
|
|
20
25
|
AirbyteConnectionTableProps,
|
|
26
|
+
AirbyteMetadataSet,
|
|
21
27
|
DagsterAirbyteTranslator,
|
|
22
28
|
)
|
|
23
29
|
|
|
24
30
|
|
|
25
|
-
class ProxyDagsterAirbyteTranslator(DagsterAirbyteTranslator):
|
|
26
|
-
def __init__(self, fn: TranslationFn[AirbyteConnectionTableProps]):
|
|
27
|
-
self.fn = fn
|
|
28
|
-
|
|
29
|
-
def get_asset_spec(self, props: AirbyteConnectionTableProps) -> dg.AssetSpec:
|
|
30
|
-
base_asset_spec = super().get_asset_spec(props)
|
|
31
|
-
spec = self.fn(base_asset_spec, props)
|
|
32
|
-
|
|
33
|
-
return spec
|
|
34
|
-
|
|
35
|
-
|
|
36
31
|
class BaseAirbyteWorkspaceModel(dg.Model, dg.Resolvable):
|
|
37
32
|
request_max_retries: Annotated[
|
|
38
33
|
int,
|
|
@@ -197,34 +192,74 @@ class AirbyteWorkspaceComponent(dg.Component, dg.Model, dg.Resolvable):
|
|
|
197
192
|
TranslationFnResolver(template_vars_for_translation_fn=lambda data: {"props": data}),
|
|
198
193
|
]
|
|
199
194
|
] = pydantic.Field(
|
|
200
|
-
None,
|
|
195
|
+
default=None,
|
|
201
196
|
description="Function used to translate Airbyte connection table properties into Dagster asset specs.",
|
|
202
197
|
)
|
|
203
198
|
|
|
204
199
|
@cached_property
|
|
205
200
|
def translator(self) -> DagsterAirbyteTranslator:
|
|
206
|
-
|
|
207
|
-
|
|
201
|
+
return AirbyteComponentTranslator(self)
|
|
202
|
+
|
|
203
|
+
@cached_property
|
|
204
|
+
def _base_translator(self) -> DagsterAirbyteTranslator:
|
|
208
205
|
return DagsterAirbyteTranslator()
|
|
209
206
|
|
|
207
|
+
def get_asset_spec(self, props: AirbyteConnectionTableProps) -> dg.AssetSpec:
|
|
208
|
+
return self._base_translator.get_asset_spec(props)
|
|
209
|
+
|
|
210
|
+
def execute(
|
|
211
|
+
self, context: dg.AssetExecutionContext, airbyte: BaseAirbyteWorkspace
|
|
212
|
+
) -> Iterable[Union[dg.AssetMaterialization, dg.MaterializeResult]]:
|
|
213
|
+
yield from airbyte.sync_and_poll(context=context)
|
|
214
|
+
|
|
210
215
|
def build_defs(self, context: dg.ComponentLoadContext) -> dg.Definitions:
|
|
211
|
-
|
|
212
|
-
|
|
216
|
+
connection_selector_fn = self.connection_selector or (lambda connection: True)
|
|
217
|
+
|
|
218
|
+
all_asset_specs = self.workspace.load_asset_specs(
|
|
213
219
|
dagster_airbyte_translator=self.translator,
|
|
214
|
-
connection_selector_fn=
|
|
220
|
+
connection_selector_fn=connection_selector_fn,
|
|
215
221
|
)
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
}
|
|
222
|
+
|
|
223
|
+
connections = {
|
|
224
|
+
(
|
|
225
|
+
check.not_none(AirbyteMetadataSet.extract(spec.metadata).connection_id),
|
|
226
|
+
check.not_none(AirbyteMetadataSet.extract(spec.metadata).connection_name),
|
|
222
227
|
)
|
|
223
|
-
for
|
|
224
|
-
|
|
225
|
-
|
|
228
|
+
for spec in all_asset_specs
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
assets = []
|
|
232
|
+
for connection_id, connection_name in connections:
|
|
233
|
+
|
|
234
|
+
@airbyte_assets(
|
|
235
|
+
connection_id=connection_id,
|
|
236
|
+
workspace=self.workspace,
|
|
237
|
+
name=f"airbyte_{clean_name(connection_name)}",
|
|
238
|
+
dagster_airbyte_translator=self.translator,
|
|
239
|
+
)
|
|
240
|
+
def _asset_fn(context: dg.AssetExecutionContext):
|
|
241
|
+
yield from self.execute(context=context, airbyte=self.workspace)
|
|
242
|
+
|
|
243
|
+
assets.append(_asset_fn)
|
|
244
|
+
|
|
245
|
+
return dg.Definitions(assets=assets)
|
|
226
246
|
|
|
227
247
|
|
|
228
248
|
# Subclassing to create the alias to be able to use the superseded decorator.
|
|
229
249
|
@superseded(additional_warn_text="Superseded. Use AirbyteWorkspaceComponent instead.")
|
|
230
250
|
class AirbyteCloudWorkspaceComponent(AirbyteWorkspaceComponent): ...
|
|
251
|
+
|
|
252
|
+
|
|
253
|
+
class AirbyteComponentTranslator(
|
|
254
|
+
create_component_translator_cls(AirbyteWorkspaceComponent, DagsterAirbyteTranslator),
|
|
255
|
+
ComponentTranslator[AirbyteWorkspaceComponent],
|
|
256
|
+
):
|
|
257
|
+
def __init__(self, component: AirbyteWorkspaceComponent):
|
|
258
|
+
self._component = component
|
|
259
|
+
|
|
260
|
+
def get_asset_spec(self, props: AirbyteConnectionTableProps) -> dg.AssetSpec:
|
|
261
|
+
base_asset_spec = super().get_asset_spec(props)
|
|
262
|
+
if self.component.translation is None:
|
|
263
|
+
return base_asset_spec
|
|
264
|
+
else:
|
|
265
|
+
return self.component.translation(base_asset_spec, props)
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "0.27.14"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: dagster-airbyte
|
|
3
|
-
Version: 0.27.
|
|
3
|
+
Version: 0.27.14
|
|
4
4
|
Summary: Package for integrating Airbyte with Dagster.
|
|
5
5
|
Home-page: https://github.com/dagster-io/dagster/tree/master/python_modules/libraries/dagster-airbyte
|
|
6
6
|
Author: Dagster Labs
|
|
@@ -15,13 +15,13 @@ 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.
|
|
18
|
+
Requires-Dist: dagster==1.11.14
|
|
19
19
|
Requires-Dist: requests
|
|
20
20
|
Provides-Extra: test
|
|
21
21
|
Requires-Dist: requests-mock; extra == "test"
|
|
22
22
|
Requires-Dist: flaky; extra == "test"
|
|
23
23
|
Provides-Extra: managed
|
|
24
|
-
Requires-Dist: dagster-managed-elements==0.27.
|
|
24
|
+
Requires-Dist: dagster-managed-elements==0.27.14; extra == "managed"
|
|
25
25
|
Dynamic: author
|
|
26
26
|
Dynamic: author-email
|
|
27
27
|
Dynamic: classifier
|
|
@@ -37,7 +37,7 @@ setup(
|
|
|
37
37
|
include_package_data=True,
|
|
38
38
|
python_requires=">=3.9,<3.14",
|
|
39
39
|
install_requires=[
|
|
40
|
-
"dagster==1.11.
|
|
40
|
+
"dagster==1.11.14",
|
|
41
41
|
"requests",
|
|
42
42
|
],
|
|
43
43
|
zip_safe=False,
|
|
@@ -55,7 +55,7 @@ setup(
|
|
|
55
55
|
"flaky",
|
|
56
56
|
],
|
|
57
57
|
"managed": [
|
|
58
|
-
"dagster-managed-elements==0.27.
|
|
58
|
+
"dagster-managed-elements==0.27.14",
|
|
59
59
|
],
|
|
60
60
|
},
|
|
61
61
|
)
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = "0.27.13"
|
|
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
|
|
File without changes
|
|
File without changes
|
{dagster_airbyte-0.27.13 → dagster_airbyte-0.27.14}/dagster_airbyte/managed/generated/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{dagster_airbyte-0.27.13 → dagster_airbyte-0.27.14}/dagster_airbyte/managed/generated/sources.py
RENAMED
|
File without changes
|
{dagster_airbyte-0.27.13 → dagster_airbyte-0.27.14}/dagster_airbyte/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_airbyte-0.27.13 → dagster_airbyte-0.27.14}/dagster_airbyte.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
{dagster_airbyte-0.27.13 → dagster_airbyte-0.27.14}/dagster_airbyte.egg-info/entry_points.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|