dagster-airbyte 0.20.17__py3-none-any.whl → 0.21.0__py3-none-any.whl
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/asset_defs.py +6 -1
- dagster_airbyte/utils.py +7 -4
- dagster_airbyte/version.py +1 -1
- {dagster_airbyte-0.20.17.dist-info → dagster_airbyte-0.21.0.dist-info}/METADATA +3 -3
- {dagster_airbyte-0.20.17.dist-info → dagster_airbyte-0.21.0.dist-info}/RECORD +9 -9
- {dagster_airbyte-0.20.17.dist-info → dagster_airbyte-0.21.0.dist-info}/LICENSE +0 -0
- {dagster_airbyte-0.20.17.dist-info → dagster_airbyte-0.21.0.dist-info}/WHEEL +0 -0
- {dagster_airbyte-0.20.17.dist-info → dagster_airbyte-0.21.0.dist-info}/entry_points.txt +0 -0
- {dagster_airbyte-0.20.17.dist-info → dagster_airbyte-0.21.0.dist-info}/top_level.txt +0 -0
dagster_airbyte/asset_defs.py
CHANGED
|
@@ -226,6 +226,7 @@ def build_airbyte_assets(
|
|
|
226
226
|
upstream_assets: Optional[Set[AssetKey]] = None,
|
|
227
227
|
schema_by_table_name: Optional[Mapping[str, TableSchema]] = None,
|
|
228
228
|
freshness_policy: Optional[FreshnessPolicy] = None,
|
|
229
|
+
stream_to_asset_map: Optional[Mapping[str, str]] = None,
|
|
229
230
|
) -> Sequence[AssetsDefinition]:
|
|
230
231
|
"""Builds a set of assets representing the tables created by an Airbyte sync operation.
|
|
231
232
|
|
|
@@ -244,6 +245,8 @@ def build_airbyte_assets(
|
|
|
244
245
|
A list of assets to add as sources.
|
|
245
246
|
upstream_assets (Optional[Set[AssetKey]]): Deprecated, use deps instead. A list of assets to add as sources.
|
|
246
247
|
freshness_policy (Optional[FreshnessPolicy]): A freshness policy to apply to the assets
|
|
248
|
+
stream_to_asset_map (Optional[Mapping[str, str]]): A mapping of an Airbyte stream name to a Dagster asset.
|
|
249
|
+
This allows the use of the "prefix" setting in Airbyte with special characters that aren't valid asset names.
|
|
247
250
|
"""
|
|
248
251
|
if upstream_assets is not None and deps is not None:
|
|
249
252
|
raise DagsterInvalidDefinitionError(
|
|
@@ -314,7 +317,9 @@ def build_airbyte_assets(
|
|
|
314
317
|
output_name=_table_to_output_name_fn(dependent_table),
|
|
315
318
|
)
|
|
316
319
|
else:
|
|
317
|
-
for materialization in generate_materializations(
|
|
320
|
+
for materialization in generate_materializations(
|
|
321
|
+
ab_output, asset_key_prefix, stream_to_asset_map
|
|
322
|
+
):
|
|
318
323
|
table_name = materialization.asset_key.path[-1]
|
|
319
324
|
if table_name in destination_tables:
|
|
320
325
|
yield Output(
|
dagster_airbyte/utils.py
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
from typing import Any, Iterator, Mapping, Sequence
|
|
1
|
+
from typing import Any, Iterator, Mapping, Optional, Sequence
|
|
2
2
|
|
|
3
3
|
from dagster import AssetMaterialization, MetadataValue
|
|
4
4
|
from dagster._core.definitions.metadata.table import TableColumn, TableSchema
|
|
@@ -46,7 +46,9 @@ def _get_attempt(attempt: dict):
|
|
|
46
46
|
|
|
47
47
|
|
|
48
48
|
def generate_materializations(
|
|
49
|
-
output: AirbyteOutput,
|
|
49
|
+
output: AirbyteOutput,
|
|
50
|
+
asset_key_prefix: Sequence[str],
|
|
51
|
+
stream_to_asset_map: Optional[Mapping[str, str]] = None,
|
|
50
52
|
) -> Iterator[AssetMaterialization]:
|
|
51
53
|
prefix = output.connection_details.get("prefix") or ""
|
|
52
54
|
# all the streams that are set to be sync'd by this connection
|
|
@@ -64,11 +66,12 @@ def generate_materializations(
|
|
|
64
66
|
s["streamName"]: s.get("stats", {})
|
|
65
67
|
for s in _get_attempt(output.job_details.get("attempts", [{}])[-1]).get("streamStats", [])
|
|
66
68
|
}
|
|
69
|
+
stream_to_asset_map = stream_to_asset_map if stream_to_asset_map else {}
|
|
67
70
|
for stream_name, stream_props in all_stream_props.items():
|
|
68
71
|
yield _materialization_for_stream(
|
|
69
|
-
stream_name,
|
|
72
|
+
stream_to_asset_map.get(stream_name, stream_name),
|
|
70
73
|
stream_props,
|
|
71
|
-
# if no records are sync'd, no stats will be
|
|
74
|
+
# if no records are sync'd, no stats will be available for this stream
|
|
72
75
|
all_stream_stats.get(stream_name, {}),
|
|
73
76
|
asset_key_prefix=asset_key_prefix,
|
|
74
77
|
)
|
dagster_airbyte/version.py
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
__version__ = "0.
|
|
1
|
+
__version__ = "0.21.0"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: dagster-airbyte
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.21.0
|
|
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
|
|
@@ -13,10 +13,10 @@ Classifier: Programming Language :: Python :: 3.11
|
|
|
13
13
|
Classifier: License :: OSI Approved :: Apache Software License
|
|
14
14
|
Classifier: Operating System :: OS Independent
|
|
15
15
|
License-File: LICENSE
|
|
16
|
-
Requires-Dist: dagster (==1.
|
|
16
|
+
Requires-Dist: dagster (==1.5.0)
|
|
17
17
|
Requires-Dist: requests
|
|
18
18
|
Provides-Extra: managed
|
|
19
|
-
Requires-Dist: dagster-managed-elements (==0.
|
|
19
|
+
Requires-Dist: dagster-managed-elements (==0.21.0) ; extra == 'managed'
|
|
20
20
|
Provides-Extra: test
|
|
21
21
|
Requires-Dist: requests-mock ; extra == 'test'
|
|
22
22
|
|
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
dagster_airbyte/__init__.py,sha256=KRUcHzOxDEmo9oO7qRwJNrRnxK28PeHTeUemMS4z2Gc,1215
|
|
2
|
-
dagster_airbyte/asset_defs.py,sha256=
|
|
2
|
+
dagster_airbyte/asset_defs.py,sha256=aSq28JFYhQ3q6jLOfITFPko5CwtoqKuGPPONob7ydwo,45541
|
|
3
3
|
dagster_airbyte/cli.py,sha256=HErteP1MjfHozKKSrznh0yAreKETbXp5NDHzXGsdvvE,425
|
|
4
4
|
dagster_airbyte/ops.py,sha256=OaD6DA9Iz-T6hroSAQcrruqZWgR8ECxksupg0CQR_DU,4128
|
|
5
5
|
dagster_airbyte/resources.py,sha256=I1QOe3rkCoySWL-M3WQr75J-mOhC8FRXFvS6ktjuXUU,26926
|
|
6
6
|
dagster_airbyte/types.py,sha256=fwqUv_MZCegwHhSELgUqm1H1JVUb-m83CyXFkd0r-ko,1425
|
|
7
|
-
dagster_airbyte/utils.py,sha256=
|
|
8
|
-
dagster_airbyte/version.py,sha256
|
|
7
|
+
dagster_airbyte/utils.py,sha256=arYFolnfcJ5w-jRLDtwEHQ5vg545_QRxwlLJ2R0ZJcA,2831
|
|
8
|
+
dagster_airbyte/version.py,sha256=-reNiXr25nUU7em7_IKJzimCI10W4nA8ouxAiOr4FaQ,23
|
|
9
9
|
dagster_airbyte/managed/__init__.py,sha256=azuKhCI8eUsmEGBL2M2d6qkqQ0vhsV9H5IioP83kbm8,423
|
|
10
10
|
dagster_airbyte/managed/reconciliation.py,sha256=-_zXsjDZ9aod82kzEytgW9127gJMKBuQxYfpYb0Sp2o,33784
|
|
11
11
|
dagster_airbyte/managed/types.py,sha256=Aq6065Jcimf9uK0wbP_EsdTWMYyG5LEnn7sGZ6J1KBA,14209
|
|
12
12
|
dagster_airbyte/managed/generated/__init__.py,sha256=1ChWhXU1uyX_9rClMD6XHzkriKOc0fjIQntsoI3G99g,76
|
|
13
13
|
dagster_airbyte/managed/generated/destinations.py,sha256=afBHge9FQENIBVywHcBoUcSyGqrLDjQpv1XgHkks7Vs,119751
|
|
14
14
|
dagster_airbyte/managed/generated/sources.py,sha256=hoahliCUupXBg07GnCZugjKhxyutjXZOfU0fOFv_Z68,282784
|
|
15
|
-
dagster_airbyte-0.
|
|
16
|
-
dagster_airbyte-0.
|
|
17
|
-
dagster_airbyte-0.
|
|
18
|
-
dagster_airbyte-0.
|
|
19
|
-
dagster_airbyte-0.
|
|
20
|
-
dagster_airbyte-0.
|
|
15
|
+
dagster_airbyte-0.21.0.dist-info/LICENSE,sha256=TMatHW4_G9ldRdodEAp-l2Xa2WvsdeOh60E3v1R2jis,11349
|
|
16
|
+
dagster_airbyte-0.21.0.dist-info/METADATA,sha256=6EGu_12sdlnCFVZNl2AJG6w5seZoxVASU9UeM5ZCQO8,850
|
|
17
|
+
dagster_airbyte-0.21.0.dist-info/WHEEL,sha256=p46_5Uhzqz6AzeSosiOnxK-zmFja1i22CrQCjmYe8ec,92
|
|
18
|
+
dagster_airbyte-0.21.0.dist-info/entry_points.txt,sha256=XrbLOz3LpgPV5fdwMmgdP6Rp1AfSG07KeWIddLqh7Lw,61
|
|
19
|
+
dagster_airbyte-0.21.0.dist-info/top_level.txt,sha256=HLwIRQCzqItn88_KbPP8DNTKKQEBUVKk6NCn4PrCtqY,16
|
|
20
|
+
dagster_airbyte-0.21.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|