dagster-airbyte 0.20.17__tar.gz → 0.21.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.

Potentially problematic release.


This version of dagster-airbyte might be problematic. Click here for more details.

Files changed (30) hide show
  1. {dagster-airbyte-0.20.17/dagster_airbyte.egg-info → dagster-airbyte-0.21.0}/PKG-INFO +1 -1
  2. {dagster-airbyte-0.20.17 → dagster-airbyte-0.21.0}/dagster_airbyte/asset_defs.py +6 -1
  3. {dagster-airbyte-0.20.17 → dagster-airbyte-0.21.0}/dagster_airbyte/utils.py +7 -4
  4. dagster-airbyte-0.21.0/dagster_airbyte/version.py +1 -0
  5. {dagster-airbyte-0.20.17 → dagster-airbyte-0.21.0/dagster_airbyte.egg-info}/PKG-INFO +1 -1
  6. dagster-airbyte-0.21.0/dagster_airbyte.egg-info/requires.txt +8 -0
  7. {dagster-airbyte-0.20.17 → dagster-airbyte-0.21.0}/setup.py +2 -2
  8. dagster-airbyte-0.20.17/dagster_airbyte/version.py +0 -1
  9. dagster-airbyte-0.20.17/dagster_airbyte.egg-info/requires.txt +0 -8
  10. {dagster-airbyte-0.20.17 → dagster-airbyte-0.21.0}/LICENSE +0 -0
  11. {dagster-airbyte-0.20.17 → dagster-airbyte-0.21.0}/MANIFEST.in +0 -0
  12. {dagster-airbyte-0.20.17 → dagster-airbyte-0.21.0}/README.md +0 -0
  13. {dagster-airbyte-0.20.17 → dagster-airbyte-0.21.0}/dagster_airbyte/__init__.py +0 -0
  14. {dagster-airbyte-0.20.17 → dagster-airbyte-0.21.0}/dagster_airbyte/cli.py +0 -0
  15. {dagster-airbyte-0.20.17 → dagster-airbyte-0.21.0}/dagster_airbyte/managed/__init__.py +0 -0
  16. {dagster-airbyte-0.20.17 → dagster-airbyte-0.21.0}/dagster_airbyte/managed/generated/__init__.py +0 -0
  17. {dagster-airbyte-0.20.17 → dagster-airbyte-0.21.0}/dagster_airbyte/managed/generated/destinations.py +0 -0
  18. {dagster-airbyte-0.20.17 → dagster-airbyte-0.21.0}/dagster_airbyte/managed/generated/sources.py +0 -0
  19. {dagster-airbyte-0.20.17 → dagster-airbyte-0.21.0}/dagster_airbyte/managed/reconciliation.py +0 -0
  20. {dagster-airbyte-0.20.17 → dagster-airbyte-0.21.0}/dagster_airbyte/managed/types.py +0 -0
  21. {dagster-airbyte-0.20.17 → dagster-airbyte-0.21.0}/dagster_airbyte/ops.py +0 -0
  22. {dagster-airbyte-0.20.17 → dagster-airbyte-0.21.0}/dagster_airbyte/py.typed +0 -0
  23. {dagster-airbyte-0.20.17 → dagster-airbyte-0.21.0}/dagster_airbyte/resources.py +0 -0
  24. {dagster-airbyte-0.20.17 → dagster-airbyte-0.21.0}/dagster_airbyte/types.py +0 -0
  25. {dagster-airbyte-0.20.17 → dagster-airbyte-0.21.0}/dagster_airbyte.egg-info/SOURCES.txt +0 -0
  26. {dagster-airbyte-0.20.17 → dagster-airbyte-0.21.0}/dagster_airbyte.egg-info/dependency_links.txt +0 -0
  27. {dagster-airbyte-0.20.17 → dagster-airbyte-0.21.0}/dagster_airbyte.egg-info/entry_points.txt +0 -0
  28. {dagster-airbyte-0.20.17 → dagster-airbyte-0.21.0}/dagster_airbyte.egg-info/not-zip-safe +0 -0
  29. {dagster-airbyte-0.20.17 → dagster-airbyte-0.21.0}/dagster_airbyte.egg-info/top_level.txt +0 -0
  30. {dagster-airbyte-0.20.17 → dagster-airbyte-0.21.0}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: dagster-airbyte
3
- Version: 0.20.17
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
@@ -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(ab_output, asset_key_prefix):
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(
@@ -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, asset_key_prefix: Sequence[str]
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 avaiable for this stream
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
  )
@@ -0,0 +1 @@
1
+ __version__ = "0.21.0"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: dagster-airbyte
3
- Version: 0.20.17
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
@@ -0,0 +1,8 @@
1
+ dagster==1.5.0
2
+ requests
3
+
4
+ [managed]
5
+ dagster-managed-elements==0.21.0
6
+
7
+ [test]
8
+ requests-mock
@@ -35,7 +35,7 @@ setup(
35
35
  ],
36
36
  packages=find_packages(exclude=["dagster_airbyte_tests*"]),
37
37
  install_requires=[
38
- "dagster==1.4.17",
38
+ "dagster==1.5.0",
39
39
  "requests",
40
40
  ],
41
41
  zip_safe=False,
@@ -49,7 +49,7 @@ setup(
49
49
  "requests-mock",
50
50
  ],
51
51
  "managed": [
52
- "dagster-managed-elements==0.20.17",
52
+ "dagster-managed-elements==0.21.0",
53
53
  ],
54
54
  },
55
55
  )
@@ -1 +0,0 @@
1
- __version__ = "0.20.17"
@@ -1,8 +0,0 @@
1
- dagster==1.4.17
2
- requests
3
-
4
- [managed]
5
- dagster-managed-elements==0.20.17
6
-
7
- [test]
8
- requests-mock