dagster-airbyte 0.26.18rc2__py3-none-any.whl → 0.26.19__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 +35 -4
- dagster_airbyte/resources.py +55 -10
- dagster_airbyte/version.py +1 -1
- {dagster_airbyte-0.26.18rc2.dist-info → dagster_airbyte-0.26.19.dist-info}/METADATA +3 -3
- {dagster_airbyte-0.26.18rc2.dist-info → dagster_airbyte-0.26.19.dist-info}/RECORD +9 -9
- {dagster_airbyte-0.26.18rc2.dist-info → dagster_airbyte-0.26.19.dist-info}/WHEEL +0 -0
- {dagster_airbyte-0.26.18rc2.dist-info → dagster_airbyte-0.26.19.dist-info}/entry_points.txt +0 -0
- {dagster_airbyte-0.26.18rc2.dist-info → dagster_airbyte-0.26.19.dist-info}/licenses/LICENSE +0 -0
- {dagster_airbyte-0.26.18rc2.dist-info → dagster_airbyte-0.26.19.dist-info}/top_level.txt +0 -0
dagster_airbyte/asset_defs.py
CHANGED
|
@@ -40,7 +40,11 @@ from dagster_airbyte.resources import (
|
|
|
40
40
|
AirbyteResource,
|
|
41
41
|
BaseAirbyteResource,
|
|
42
42
|
)
|
|
43
|
-
from dagster_airbyte.translator import
|
|
43
|
+
from dagster_airbyte.translator import (
|
|
44
|
+
AirbyteConnection,
|
|
45
|
+
AirbyteMetadataSet,
|
|
46
|
+
DagsterAirbyteTranslator,
|
|
47
|
+
)
|
|
44
48
|
from dagster_airbyte.types import AirbyteTableMetadata
|
|
45
49
|
from dagster_airbyte.utils import (
|
|
46
50
|
clean_name,
|
|
@@ -1035,6 +1039,7 @@ def build_airbyte_assets_definitions(
|
|
|
1035
1039
|
*,
|
|
1036
1040
|
workspace: AirbyteCloudWorkspace,
|
|
1037
1041
|
dagster_airbyte_translator: Optional[DagsterAirbyteTranslator] = None,
|
|
1042
|
+
connection_selector_fn: Optional[Callable[[AirbyteConnection], bool]] = None,
|
|
1038
1043
|
) -> Sequence[AssetsDefinition]:
|
|
1039
1044
|
"""The list of AssetsDefinition for all connections in the Airbyte workspace.
|
|
1040
1045
|
|
|
@@ -1043,6 +1048,8 @@ def build_airbyte_assets_definitions(
|
|
|
1043
1048
|
dagster_airbyte_translator (Optional[DagsterAirbyteTranslator], optional): The translator to use
|
|
1044
1049
|
to convert Airbyte content into :py:class:`dagster.AssetSpec`.
|
|
1045
1050
|
Defaults to :py:class:`DagsterAirbyteTranslator`.
|
|
1051
|
+
connection_selector_fn (Optional[Callable[[AirbyteConnection], bool]]): A function that allows for filtering
|
|
1052
|
+
which Airbyte connection assets are created for.
|
|
1046
1053
|
|
|
1047
1054
|
Returns:
|
|
1048
1055
|
List[AssetsDefinition]: The list of AssetsDefinition for all connections in the Airbyte workspace.
|
|
@@ -1062,7 +1069,6 @@ def build_airbyte_assets_definitions(
|
|
|
1062
1069
|
client_secret=dg.EnvVar("AIRBYTE_CLOUD_CLIENT_SECRET"),
|
|
1063
1070
|
)
|
|
1064
1071
|
|
|
1065
|
-
|
|
1066
1072
|
airbyte_assets = build_airbyte_assets_definitions(workspace=workspace)
|
|
1067
1073
|
|
|
1068
1074
|
defs = dg.Definitions(
|
|
@@ -1096,21 +1102,46 @@ def build_airbyte_assets_definitions(
|
|
|
1096
1102
|
client_secret=dg.EnvVar("AIRBYTE_CLOUD_CLIENT_SECRET"),
|
|
1097
1103
|
)
|
|
1098
1104
|
|
|
1099
|
-
|
|
1100
1105
|
airbyte_assets = build_airbyte_assets_definitions(
|
|
1101
1106
|
workspace=workspace,
|
|
1102
1107
|
dagster_airbyte_translator=CustomDagsterAirbyteTranslator()
|
|
1103
1108
|
)
|
|
1104
1109
|
|
|
1110
|
+
defs = dg.Definitions(
|
|
1111
|
+
assets=airbyte_assets,
|
|
1112
|
+
resources={"airbyte": airbyte_workspace},
|
|
1113
|
+
)
|
|
1114
|
+
|
|
1115
|
+
Filter connections by name:
|
|
1116
|
+
|
|
1117
|
+
.. code-block:: python
|
|
1118
|
+
|
|
1119
|
+
from dagster_airbyte import AirbyteCloudWorkspace, build_airbyte_assets_definitions
|
|
1120
|
+
|
|
1121
|
+
import dagster as dg
|
|
1122
|
+
|
|
1123
|
+
airbyte_workspace = AirbyteCloudWorkspace(
|
|
1124
|
+
workspace_id=dg.EnvVar("AIRBYTE_CLOUD_WORKSPACE_ID"),
|
|
1125
|
+
client_id=dg.EnvVar("AIRBYTE_CLOUD_CLIENT_ID"),
|
|
1126
|
+
client_secret=dg.EnvVar("AIRBYTE_CLOUD_CLIENT_SECRET"),
|
|
1127
|
+
)
|
|
1128
|
+
|
|
1129
|
+
airbyte_assets = build_airbyte_assets_definitions(
|
|
1130
|
+
workspace=workspace,
|
|
1131
|
+
connection_selector_fn=lambda connection: connection.name in ["connection1", "connection2"]
|
|
1132
|
+
)
|
|
1133
|
+
|
|
1105
1134
|
defs = dg.Definitions(
|
|
1106
1135
|
assets=airbyte_assets,
|
|
1107
1136
|
resources={"airbyte": airbyte_workspace},
|
|
1108
1137
|
)
|
|
1109
1138
|
"""
|
|
1110
1139
|
dagster_airbyte_translator = dagster_airbyte_translator or DagsterAirbyteTranslator()
|
|
1140
|
+
connection_selector_fn = connection_selector_fn or (lambda connection: True)
|
|
1111
1141
|
|
|
1112
1142
|
all_asset_specs = workspace.load_asset_specs(
|
|
1113
|
-
dagster_airbyte_translator=dagster_airbyte_translator
|
|
1143
|
+
dagster_airbyte_translator=dagster_airbyte_translator,
|
|
1144
|
+
connection_selector_fn=connection_selector_fn,
|
|
1114
1145
|
)
|
|
1115
1146
|
|
|
1116
1147
|
connections = {
|
dagster_airbyte/resources.py
CHANGED
|
@@ -4,10 +4,10 @@ import logging
|
|
|
4
4
|
import sys
|
|
5
5
|
import time
|
|
6
6
|
from abc import abstractmethod
|
|
7
|
-
from collections.abc import Mapping, Sequence
|
|
7
|
+
from collections.abc import Iterator, Mapping, Sequence
|
|
8
8
|
from contextlib import contextmanager
|
|
9
9
|
from datetime import datetime, timedelta
|
|
10
|
-
from typing import Any, Optional, cast
|
|
10
|
+
from typing import Any, Callable, Optional, cast
|
|
11
11
|
|
|
12
12
|
import requests
|
|
13
13
|
from dagster import (
|
|
@@ -1142,7 +1142,6 @@ class AirbyteCloudWorkspace(ConfigurableResource):
|
|
|
1142
1142
|
default=15,
|
|
1143
1143
|
description="Time (in seconds) after which the requests to Airbyte are declared timed out.",
|
|
1144
1144
|
)
|
|
1145
|
-
|
|
1146
1145
|
_client: AirbyteCloudClient = PrivateAttr(default=None) # type: ignore
|
|
1147
1146
|
|
|
1148
1147
|
@cached_method
|
|
@@ -1197,6 +1196,7 @@ class AirbyteCloudWorkspace(ConfigurableResource):
|
|
|
1197
1196
|
def load_asset_specs(
|
|
1198
1197
|
self,
|
|
1199
1198
|
dagster_airbyte_translator: Optional[DagsterAirbyteTranslator] = None,
|
|
1199
|
+
connection_selector_fn: Optional[Callable[[AirbyteConnection], bool]] = None,
|
|
1200
1200
|
) -> Sequence[AssetSpec]:
|
|
1201
1201
|
"""Returns a list of AssetSpecs representing the Airbyte content in the workspace.
|
|
1202
1202
|
|
|
@@ -1204,6 +1204,8 @@ class AirbyteCloudWorkspace(ConfigurableResource):
|
|
|
1204
1204
|
dagster_airbyte_translator (Optional[DagsterAirbyteTranslator], optional): The translator to use
|
|
1205
1205
|
to convert Airbyte content into :py:class:`dagster.AssetSpec`.
|
|
1206
1206
|
Defaults to :py:class:`DagsterAirbyteTranslator`.
|
|
1207
|
+
connection_selector_fn (Optional[Callable[[AirbyteConnection], bool]]): A function that allows for filtering
|
|
1208
|
+
which Airbyte connection assets are created for.
|
|
1207
1209
|
|
|
1208
1210
|
Returns:
|
|
1209
1211
|
List[AssetSpec]: The set of assets representing the Airbyte content in the workspace.
|
|
@@ -1228,7 +1230,9 @@ class AirbyteCloudWorkspace(ConfigurableResource):
|
|
|
1228
1230
|
dagster_airbyte_translator = dagster_airbyte_translator or DagsterAirbyteTranslator()
|
|
1229
1231
|
|
|
1230
1232
|
return load_airbyte_cloud_asset_specs(
|
|
1231
|
-
workspace=self,
|
|
1233
|
+
workspace=self,
|
|
1234
|
+
dagster_airbyte_translator=dagster_airbyte_translator,
|
|
1235
|
+
connection_selector_fn=connection_selector_fn,
|
|
1232
1236
|
)
|
|
1233
1237
|
|
|
1234
1238
|
def _generate_materialization(
|
|
@@ -1317,11 +1321,27 @@ class AirbyteCloudWorkspace(ConfigurableResource):
|
|
|
1317
1321
|
if unmaterialized_asset_keys:
|
|
1318
1322
|
context.log.warning(f"Assets were not materialized: {unmaterialized_asset_keys}")
|
|
1319
1323
|
|
|
1324
|
+
@contextmanager
|
|
1325
|
+
def process_config_and_initialize_cm_cached(self) -> Iterator["AirbyteCloudWorkspace"]:
|
|
1326
|
+
# Hack to avoid reconstructing initialized copies of this resource, which invalidates
|
|
1327
|
+
# @cached_method caches. This means that multiple calls to load_airbyte_cloud_asset_specs
|
|
1328
|
+
# will not trigger multiple API calls to fetch the workspace data.
|
|
1329
|
+
# Bespoke impl since @cached_method doesn't play nice with iterators; it's exhausted after
|
|
1330
|
+
# the first call.
|
|
1331
|
+
if hasattr(self, "_initialized"):
|
|
1332
|
+
yield getattr(self, "_initialized")
|
|
1333
|
+
else:
|
|
1334
|
+
with self.process_config_and_initialize_cm() as initialized_workspace:
|
|
1335
|
+
initialized = initialized_workspace
|
|
1336
|
+
setattr(self, "_initialized", initialized)
|
|
1337
|
+
yield initialized
|
|
1338
|
+
|
|
1320
1339
|
|
|
1321
1340
|
@beta
|
|
1322
1341
|
def load_airbyte_cloud_asset_specs(
|
|
1323
1342
|
workspace: AirbyteCloudWorkspace,
|
|
1324
1343
|
dagster_airbyte_translator: Optional[DagsterAirbyteTranslator] = None,
|
|
1344
|
+
connection_selector_fn: Optional[Callable[[AirbyteConnection], bool]] = None,
|
|
1325
1345
|
) -> Sequence[AssetSpec]:
|
|
1326
1346
|
"""Returns a list of AssetSpecs representing the Airbyte content in the workspace.
|
|
1327
1347
|
|
|
@@ -1330,6 +1350,8 @@ def load_airbyte_cloud_asset_specs(
|
|
|
1330
1350
|
dagster_airbyte_translator (Optional[DagsterAirbyteTranslator], optional): The translator to use
|
|
1331
1351
|
to convert Airbyte content into :py:class:`dagster.AssetSpec`.
|
|
1332
1352
|
Defaults to :py:class:`DagsterAirbyteTranslator`.
|
|
1353
|
+
connection_selector_fn (Optional[Callable[[AirbyteConnection], bool]]): A function that allows for filtering
|
|
1354
|
+
which Airbyte connection assets are created for.
|
|
1333
1355
|
|
|
1334
1356
|
Returns:
|
|
1335
1357
|
List[AssetSpec]: The set of assets representing the Airbyte content in the workspace.
|
|
@@ -1349,13 +1371,32 @@ def load_airbyte_cloud_asset_specs(
|
|
|
1349
1371
|
client_secret=dg.EnvVar("AIRBYTE_CLOUD_CLIENT_SECRET"),
|
|
1350
1372
|
)
|
|
1351
1373
|
|
|
1352
|
-
|
|
1353
1374
|
airbyte_cloud_specs = load_airbyte_cloud_asset_specs(airbyte_cloud_workspace)
|
|
1354
1375
|
defs = dg.Definitions(assets=airbyte_cloud_specs)
|
|
1376
|
+
|
|
1377
|
+
Filter connections by name:
|
|
1378
|
+
|
|
1379
|
+
.. code-block:: python
|
|
1380
|
+
|
|
1381
|
+
from dagster_airbyte import AirbyteCloudWorkspace, load_airbyte_cloud_asset_specs
|
|
1382
|
+
|
|
1383
|
+
import dagster as dg
|
|
1384
|
+
|
|
1385
|
+
airbyte_cloud_workspace = AirbyteCloudWorkspace(
|
|
1386
|
+
workspace_id=dg.EnvVar("AIRBYTE_CLOUD_WORKSPACE_ID"),
|
|
1387
|
+
client_id=dg.EnvVar("AIRBYTE_CLOUD_CLIENT_ID"),
|
|
1388
|
+
client_secret=dg.EnvVar("AIRBYTE_CLOUD_CLIENT_SECRET"),
|
|
1389
|
+
)
|
|
1390
|
+
|
|
1391
|
+
airbyte_cloud_specs = load_airbyte_cloud_asset_specs(
|
|
1392
|
+
workspace=airbyte_cloud_workspace,
|
|
1393
|
+
connection_selector_fn=lambda connection: connection.name in ["connection1", "connection2"]
|
|
1394
|
+
)
|
|
1395
|
+
defs = dg.Definitions(assets=airbyte_cloud_specs)
|
|
1355
1396
|
"""
|
|
1356
1397
|
dagster_airbyte_translator = dagster_airbyte_translator or DagsterAirbyteTranslator()
|
|
1357
1398
|
|
|
1358
|
-
with workspace.
|
|
1399
|
+
with workspace.process_config_and_initialize_cm_cached() as initialized_workspace:
|
|
1359
1400
|
return [
|
|
1360
1401
|
spec.merge_attributes(
|
|
1361
1402
|
metadata={DAGSTER_AIRBYTE_TRANSLATOR_METADATA_KEY: dagster_airbyte_translator}
|
|
@@ -1364,6 +1405,7 @@ def load_airbyte_cloud_asset_specs(
|
|
|
1364
1405
|
AirbyteCloudWorkspaceDefsLoader(
|
|
1365
1406
|
workspace=initialized_workspace,
|
|
1366
1407
|
translator=dagster_airbyte_translator,
|
|
1408
|
+
connection_selector_fn=connection_selector_fn,
|
|
1367
1409
|
)
|
|
1368
1410
|
.build_defs()
|
|
1369
1411
|
.assets,
|
|
@@ -1373,21 +1415,24 @@ def load_airbyte_cloud_asset_specs(
|
|
|
1373
1415
|
|
|
1374
1416
|
|
|
1375
1417
|
@record
|
|
1376
|
-
class AirbyteCloudWorkspaceDefsLoader(StateBackedDefinitionsLoader[
|
|
1418
|
+
class AirbyteCloudWorkspaceDefsLoader(StateBackedDefinitionsLoader[AirbyteWorkspaceData]):
|
|
1377
1419
|
workspace: AirbyteCloudWorkspace
|
|
1378
1420
|
translator: DagsterAirbyteTranslator
|
|
1421
|
+
connection_selector_fn: Optional[Callable[[AirbyteConnection], bool]]
|
|
1379
1422
|
|
|
1380
1423
|
@property
|
|
1381
1424
|
def defs_key(self) -> str:
|
|
1382
|
-
return f"{AIRBYTE_RECONSTRUCTION_METADATA_KEY_PREFIX}
|
|
1425
|
+
return f"{AIRBYTE_RECONSTRUCTION_METADATA_KEY_PREFIX}.{self.workspace.workspace_id}"
|
|
1383
1426
|
|
|
1384
|
-
def fetch_state(self) -> AirbyteWorkspaceData:
|
|
1427
|
+
def fetch_state(self) -> AirbyteWorkspaceData:
|
|
1385
1428
|
return self.workspace.fetch_airbyte_workspace_data()
|
|
1386
1429
|
|
|
1387
|
-
def defs_from_state(self, state: AirbyteWorkspaceData) -> Definitions:
|
|
1430
|
+
def defs_from_state(self, state: AirbyteWorkspaceData) -> Definitions:
|
|
1388
1431
|
all_asset_specs = [
|
|
1389
1432
|
self.translator.get_asset_spec(props)
|
|
1390
1433
|
for props in state.to_airbyte_connection_table_props_data()
|
|
1434
|
+
if not self.connection_selector_fn
|
|
1435
|
+
or self.connection_selector_fn(state.connections_by_id[props.connection_id])
|
|
1391
1436
|
]
|
|
1392
1437
|
|
|
1393
1438
|
return Definitions(assets=all_asset_specs)
|
dagster_airbyte/version.py
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
__version__ = "0.26.
|
|
1
|
+
__version__ = "0.26.19"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: dagster-airbyte
|
|
3
|
-
Version: 0.26.
|
|
3
|
+
Version: 0.26.19
|
|
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
|
|
@@ -14,13 +14,13 @@ Classifier: License :: OSI Approved :: Apache Software License
|
|
|
14
14
|
Classifier: Operating System :: OS Independent
|
|
15
15
|
Requires-Python: >=3.9,<3.13
|
|
16
16
|
License-File: LICENSE
|
|
17
|
-
Requires-Dist: dagster==1.10.
|
|
17
|
+
Requires-Dist: dagster==1.10.19
|
|
18
18
|
Requires-Dist: requests
|
|
19
19
|
Provides-Extra: test
|
|
20
20
|
Requires-Dist: requests-mock; extra == "test"
|
|
21
21
|
Requires-Dist: flaky; extra == "test"
|
|
22
22
|
Provides-Extra: managed
|
|
23
|
-
Requires-Dist: dagster-managed-elements==0.26.
|
|
23
|
+
Requires-Dist: dagster-managed-elements==0.26.19; extra == "managed"
|
|
24
24
|
Dynamic: author
|
|
25
25
|
Dynamic: author-email
|
|
26
26
|
Dynamic: classifier
|
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
dagster_airbyte/__init__.py,sha256=Cdn8CiAL5HSFeFjmKIZgXJqccj11xqQFzRfUQlD15b0,1720
|
|
2
2
|
dagster_airbyte/asset_decorator.py,sha256=U6pbeyjE0meeXHed7ZVhaRfAsvLwTvDB14BSyDUYHqY,4565
|
|
3
|
-
dagster_airbyte/asset_defs.py,sha256=
|
|
3
|
+
dagster_airbyte/asset_defs.py,sha256=0mSVP7rx7xYku3t3Ou7FHA91_GDtdcSvroA885mb5Ks,51296
|
|
4
4
|
dagster_airbyte/cli.py,sha256=HErteP1MjfHozKKSrznh0yAreKETbXp5NDHzXGsdvvE,425
|
|
5
5
|
dagster_airbyte/ops.py,sha256=oOEczVYpqVRTc1-0osfpR5FZbPjNJDYihgRjk_qtOQA,4229
|
|
6
6
|
dagster_airbyte/py.typed,sha256=la67KBlbjXN-_-DfGNcdOcjYumVpKG_Tkw-8n5dnGB4,8
|
|
7
|
-
dagster_airbyte/resources.py,sha256=
|
|
7
|
+
dagster_airbyte/resources.py,sha256=TldPjZnbDi6RuKI9X9Y1ZJz14C_fQV85YIQwyqihtZM,56512
|
|
8
8
|
dagster_airbyte/translator.py,sha256=CL2EKeZIahgoFvtZpfEwVa2KmCuvUENXByM6F7369LQ,7529
|
|
9
9
|
dagster_airbyte/types.py,sha256=TYUjI3skjLYeANjesgJ-IAJNu8bAnL1ymsUfz5LsRTE,1565
|
|
10
10
|
dagster_airbyte/utils.py,sha256=SupW5PLwzyZHWTHKe17vh2PlGdcRT7xbYbMCT-ubGDo,4081
|
|
11
|
-
dagster_airbyte/version.py,sha256=
|
|
11
|
+
dagster_airbyte/version.py,sha256=hFTnREFUNV6k-r7gNk8pbgoXT_sSxa-pE2ccr7Zysn4,24
|
|
12
12
|
dagster_airbyte/managed/__init__.py,sha256=6SBtyNOMJ9Cu2UIwFExJHpL_ZVFo3rPMvyIxVOsKvWE,469
|
|
13
13
|
dagster_airbyte/managed/reconciliation.py,sha256=LHtJc2zRwk1gAc86pKVSZ0rnfLNTT9r3usRFQilYCwY,34803
|
|
14
14
|
dagster_airbyte/managed/types.py,sha256=isPfX8L9YwtZAf9Vk4hhxBePLR00AEldsdK2TsM1H2o,14611
|
|
15
15
|
dagster_airbyte/managed/generated/__init__.py,sha256=eYq-yfXEeffuKAVFXY8plD0se1wHjFNVqklpbu9gljw,108
|
|
16
16
|
dagster_airbyte/managed/generated/destinations.py,sha256=x1wmWlXvOJHtfaZva3ErdKuVS--sDvfidSXR5ji9G5w,119692
|
|
17
17
|
dagster_airbyte/managed/generated/sources.py,sha256=y0TPNvcRd8c9mhje-NoXsHeKRPt1nXcpww8mNAtqCps,282685
|
|
18
|
-
dagster_airbyte-0.26.
|
|
19
|
-
dagster_airbyte-0.26.
|
|
20
|
-
dagster_airbyte-0.26.
|
|
21
|
-
dagster_airbyte-0.26.
|
|
22
|
-
dagster_airbyte-0.26.
|
|
23
|
-
dagster_airbyte-0.26.
|
|
18
|
+
dagster_airbyte-0.26.19.dist-info/licenses/LICENSE,sha256=4lsMW-RCvfVD4_F57wrmpe3vX1xwUk_OAKKmV_XT7Z0,11348
|
|
19
|
+
dagster_airbyte-0.26.19.dist-info/METADATA,sha256=0S28Aj89CflD1UAz0j0g0fsqKUgZWSBcmf3Y_8e-qag,1118
|
|
20
|
+
dagster_airbyte-0.26.19.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
21
|
+
dagster_airbyte-0.26.19.dist-info/entry_points.txt,sha256=XrbLOz3LpgPV5fdwMmgdP6Rp1AfSG07KeWIddLqh7Lw,61
|
|
22
|
+
dagster_airbyte-0.26.19.dist-info/top_level.txt,sha256=HLwIRQCzqItn88_KbPP8DNTKKQEBUVKk6NCn4PrCtqY,16
|
|
23
|
+
dagster_airbyte-0.26.19.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|