airbyte-cdk 6.21.0.dev0__py3-none-any.whl → 6.22.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.
- airbyte_cdk/sources/declarative/declarative_component_schema.yaml +35 -0
- airbyte_cdk/sources/declarative/decoders/zipfile_decoder.py +15 -6
- airbyte_cdk/sources/declarative/models/declarative_component_schema.py +23 -1
- airbyte_cdk/sources/declarative/parsers/model_to_component_factory.py +25 -1
- airbyte_cdk/sources/declarative/schema/dynamic_schema_loader.py +13 -3
- airbyte_cdk/sources/declarative/transformations/dpath_flatten_fields.py +55 -0
- airbyte_cdk/sources/utils/transform.py +29 -3
- {airbyte_cdk-6.21.0.dev0.dist-info → airbyte_cdk-6.22.0.dist-info}/METADATA +2 -2
- {airbyte_cdk-6.21.0.dev0.dist-info → airbyte_cdk-6.22.0.dist-info}/RECORD +12 -11
- {airbyte_cdk-6.21.0.dev0.dist-info → airbyte_cdk-6.22.0.dist-info}/LICENSE.txt +0 -0
- {airbyte_cdk-6.21.0.dev0.dist-info → airbyte_cdk-6.22.0.dist-info}/WHEEL +0 -0
- {airbyte_cdk-6.21.0.dev0.dist-info → airbyte_cdk-6.22.0.dist-info}/entry_points.txt +0 -0
@@ -1316,6 +1316,7 @@ definitions:
|
|
1316
1316
|
- "$ref": "#/definitions/KeysToLower"
|
1317
1317
|
- "$ref": "#/definitions/KeysToSnakeCase"
|
1318
1318
|
- "$ref": "#/definitions/FlattenFields"
|
1319
|
+
- "$ref": "#/definitions/DpathFlattenFields"
|
1319
1320
|
- "$ref": "#/definitions/KeysReplace"
|
1320
1321
|
state_migrations:
|
1321
1322
|
title: State Migrations
|
@@ -1789,6 +1790,10 @@ definitions:
|
|
1789
1790
|
- type: array
|
1790
1791
|
items:
|
1791
1792
|
type: string
|
1793
|
+
condition:
|
1794
|
+
type: string
|
1795
|
+
interpolation_context:
|
1796
|
+
- raw_schema
|
1792
1797
|
SchemaTypeIdentifier:
|
1793
1798
|
title: Schema Type Identifier
|
1794
1799
|
description: (This component is experimental. Use at your own risk.) Identifies schema details for dynamic schema extraction and processing.
|
@@ -1862,6 +1867,7 @@ definitions:
|
|
1862
1867
|
- "$ref": "#/definitions/KeysToLower"
|
1863
1868
|
- "$ref": "#/definitions/KeysToSnakeCase"
|
1864
1869
|
- "$ref": "#/definitions/FlattenFields"
|
1870
|
+
- "$ref": "#/definitions/DpathFlattenFields"
|
1865
1871
|
- "$ref": "#/definitions/KeysReplace"
|
1866
1872
|
schema_type_identifier:
|
1867
1873
|
"$ref": "#/definitions/SchemaTypeIdentifier"
|
@@ -1966,6 +1972,33 @@ definitions:
|
|
1966
1972
|
$parameters:
|
1967
1973
|
type: object
|
1968
1974
|
additionalProperties: true
|
1975
|
+
DpathFlattenFields:
|
1976
|
+
title: Dpath Flatten Fields
|
1977
|
+
description: A transformation that flatten field values to the to top of the record.
|
1978
|
+
type: object
|
1979
|
+
required:
|
1980
|
+
- type
|
1981
|
+
- field_path
|
1982
|
+
properties:
|
1983
|
+
type:
|
1984
|
+
type: string
|
1985
|
+
enum: [DpathFlattenFields]
|
1986
|
+
field_path:
|
1987
|
+
title: Field Path
|
1988
|
+
description: A path to field that needs to be flattened.
|
1989
|
+
type: array
|
1990
|
+
items:
|
1991
|
+
- type: string
|
1992
|
+
examples:
|
1993
|
+
- ["data"]
|
1994
|
+
- ["data", "*", "field"]
|
1995
|
+
delete_origin_value:
|
1996
|
+
title: Delete Origin Value
|
1997
|
+
description: Whether to delete the origin value or keep it. Default is False.
|
1998
|
+
type: boolean
|
1999
|
+
$parameters:
|
2000
|
+
type: object
|
2001
|
+
additionalProperties: true
|
1969
2002
|
KeysReplace:
|
1970
2003
|
title: Keys Replace
|
1971
2004
|
description: A transformation that replaces symbols in keys.
|
@@ -2086,6 +2119,8 @@ definitions:
|
|
2086
2119
|
anyOf:
|
2087
2120
|
- "$ref": "#/definitions/GzipParser"
|
2088
2121
|
- "$ref": "#/definitions/JsonParser"
|
2122
|
+
- "$ref": "#/definitions/JsonLineParser"
|
2123
|
+
- "$ref": "#/definitions/CsvParser"
|
2089
2124
|
ListPartitionRouter:
|
2090
2125
|
title: List Partition Router
|
2091
2126
|
description: A Partition router that specifies a list of attributes where each attribute describes a portion of the complete data set for a stream. During a sync, each value is iterated over and can be used as input to outbound API requests.
|
@@ -32,7 +32,21 @@ class ZipfileDecoder(Decoder):
|
|
32
32
|
self, response: requests.Response
|
33
33
|
) -> Generator[MutableMapping[str, Any], None, None]:
|
34
34
|
try:
|
35
|
-
|
35
|
+
with zipfile.ZipFile(BytesIO(response.content)) as zip_file:
|
36
|
+
for file_name in zip_file.namelist():
|
37
|
+
unzipped_content = zip_file.read(file_name)
|
38
|
+
buffered_content = BytesIO(unzipped_content)
|
39
|
+
try:
|
40
|
+
yield from self.parser.parse(buffered_content)
|
41
|
+
except Exception as e:
|
42
|
+
logger.error(
|
43
|
+
f"Failed to parse file: {file_name} from zip file: {response.request.url} with exception {e}."
|
44
|
+
)
|
45
|
+
raise AirbyteTracedException(
|
46
|
+
message=f"Failed to parse file: {file_name} from zip file.",
|
47
|
+
internal_message=f"Failed to parse file: {file_name} from zip file: {response.request.url}.",
|
48
|
+
failure_type=FailureType.system_error,
|
49
|
+
) from e
|
36
50
|
except zipfile.BadZipFile as e:
|
37
51
|
logger.error(
|
38
52
|
f"Received an invalid zip file in response to URL: {response.request.url}. "
|
@@ -43,8 +57,3 @@ class ZipfileDecoder(Decoder):
|
|
43
57
|
internal_message=f"Received an invalid zip file in response to URL: {response.request.url}.",
|
44
58
|
failure_type=FailureType.system_error,
|
45
59
|
) from e
|
46
|
-
|
47
|
-
for file_name in zip_file.namelist():
|
48
|
-
unzipped_content = zip_file.read(file_name)
|
49
|
-
buffered_content = BytesIO(unzipped_content)
|
50
|
-
yield from self.parser.parse(buffered_content)
|
@@ -719,6 +719,7 @@ class HttpResponseFilter(BaseModel):
|
|
719
719
|
class TypesMap(BaseModel):
|
720
720
|
target_type: Union[str, List[str]]
|
721
721
|
current_type: Union[str, List[str]]
|
722
|
+
condition: Optional[str]
|
722
723
|
|
723
724
|
|
724
725
|
class SchemaTypeIdentifier(BaseModel):
|
@@ -791,6 +792,25 @@ class FlattenFields(BaseModel):
|
|
791
792
|
parameters: Optional[Dict[str, Any]] = Field(None, alias="$parameters")
|
792
793
|
|
793
794
|
|
795
|
+
class DpathFlattenFields(BaseModel):
|
796
|
+
type: Literal["DpathFlattenFields"]
|
797
|
+
field_path: List[str] = Field(
|
798
|
+
...,
|
799
|
+
description="A path to field that needs to be flattened.",
|
800
|
+
examples=[
|
801
|
+
["data"],
|
802
|
+
["data", "*", "field"],
|
803
|
+
],
|
804
|
+
title="Field Path",
|
805
|
+
)
|
806
|
+
delete_origin_value: Optional[bool] = Field(
|
807
|
+
False,
|
808
|
+
description="Whether to delete the origin value or keep it. Default is False.",
|
809
|
+
title="Delete Origin Value",
|
810
|
+
)
|
811
|
+
parameters: Optional[Dict[str, Any]] = Field(None, alias="$parameters")
|
812
|
+
|
813
|
+
|
794
814
|
class KeysReplace(BaseModel):
|
795
815
|
type: Literal["KeysReplace"]
|
796
816
|
old: str = Field(
|
@@ -1662,7 +1682,7 @@ class ZipfileDecoder(BaseModel):
|
|
1662
1682
|
extra = Extra.allow
|
1663
1683
|
|
1664
1684
|
type: Literal["ZipfileDecoder"]
|
1665
|
-
parser: Union[GzipParser, JsonParser] = Field(
|
1685
|
+
parser: Union[GzipParser, JsonParser, JsonLineParser, CsvParser] = Field(
|
1666
1686
|
...,
|
1667
1687
|
description="Parser to parse the decompressed data from the zipfile(s).",
|
1668
1688
|
title="Parser",
|
@@ -1818,6 +1838,7 @@ class DeclarativeStream(BaseModel):
|
|
1818
1838
|
KeysToLower,
|
1819
1839
|
KeysToSnakeCase,
|
1820
1840
|
FlattenFields,
|
1841
|
+
DpathFlattenFields,
|
1821
1842
|
KeysReplace,
|
1822
1843
|
]
|
1823
1844
|
]
|
@@ -1993,6 +2014,7 @@ class DynamicSchemaLoader(BaseModel):
|
|
1993
2014
|
KeysToLower,
|
1994
2015
|
KeysToSnakeCase,
|
1995
2016
|
FlattenFields,
|
2017
|
+
DpathFlattenFields,
|
1996
2018
|
KeysReplace,
|
1997
2019
|
]
|
1998
2020
|
]
|
@@ -211,6 +211,9 @@ from airbyte_cdk.sources.declarative.models.declarative_component_schema import
|
|
211
211
|
from airbyte_cdk.sources.declarative.models.declarative_component_schema import (
|
212
212
|
DpathExtractor as DpathExtractorModel,
|
213
213
|
)
|
214
|
+
from airbyte_cdk.sources.declarative.models.declarative_component_schema import (
|
215
|
+
DpathFlattenFields as DpathFlattenFieldsModel,
|
216
|
+
)
|
214
217
|
from airbyte_cdk.sources.declarative.models.declarative_component_schema import (
|
215
218
|
DynamicSchemaLoader as DynamicSchemaLoaderModel,
|
216
219
|
)
|
@@ -434,6 +437,9 @@ from airbyte_cdk.sources.declarative.transformations import (
|
|
434
437
|
RemoveFields,
|
435
438
|
)
|
436
439
|
from airbyte_cdk.sources.declarative.transformations.add_fields import AddedFieldDefinition
|
440
|
+
from airbyte_cdk.sources.declarative.transformations.dpath_flatten_fields import (
|
441
|
+
DpathFlattenFields,
|
442
|
+
)
|
437
443
|
from airbyte_cdk.sources.declarative.transformations.flatten_fields import (
|
438
444
|
FlattenFields,
|
439
445
|
)
|
@@ -542,6 +548,7 @@ class ModelToComponentFactory:
|
|
542
548
|
KeysToSnakeCaseModel: self.create_keys_to_snake_transformation,
|
543
549
|
KeysReplaceModel: self.create_keys_replace_transformation,
|
544
550
|
FlattenFieldsModel: self.create_flatten_fields,
|
551
|
+
DpathFlattenFieldsModel: self.create_dpath_flatten_fields,
|
545
552
|
IterableDecoderModel: self.create_iterable_decoder,
|
546
553
|
XmlDecoderModel: self.create_xml_decoder,
|
547
554
|
JsonFileSchemaLoaderModel: self.create_json_file_schema_loader,
|
@@ -677,6 +684,19 @@ class ModelToComponentFactory:
|
|
677
684
|
flatten_lists=model.flatten_lists if model.flatten_lists is not None else True
|
678
685
|
)
|
679
686
|
|
687
|
+
def create_dpath_flatten_fields(
|
688
|
+
self, model: DpathFlattenFieldsModel, config: Config, **kwargs: Any
|
689
|
+
) -> DpathFlattenFields:
|
690
|
+
model_field_path: List[Union[InterpolatedString, str]] = [x for x in model.field_path]
|
691
|
+
return DpathFlattenFields(
|
692
|
+
config=config,
|
693
|
+
field_path=model_field_path,
|
694
|
+
delete_origin_value=model.delete_origin_value
|
695
|
+
if model.delete_origin_value is not None
|
696
|
+
else False,
|
697
|
+
parameters=model.parameters or {},
|
698
|
+
)
|
699
|
+
|
680
700
|
@staticmethod
|
681
701
|
def _json_schema_type_name_to_type(value_type: Optional[ValueType]) -> Optional[Type[Any]]:
|
682
702
|
if not value_type:
|
@@ -1701,7 +1721,11 @@ class ModelToComponentFactory:
|
|
1701
1721
|
|
1702
1722
|
@staticmethod
|
1703
1723
|
def create_types_map(model: TypesMapModel, **kwargs: Any) -> TypesMap:
|
1704
|
-
return TypesMap(
|
1724
|
+
return TypesMap(
|
1725
|
+
target_type=model.target_type,
|
1726
|
+
current_type=model.current_type,
|
1727
|
+
condition=model.condition if model.condition is not None else "True",
|
1728
|
+
)
|
1705
1729
|
|
1706
1730
|
def create_schema_type_identifier(
|
1707
1731
|
self, model: SchemaTypeIdentifierModel, config: Config, **kwargs: Any
|
@@ -10,6 +10,7 @@ from typing import Any, List, Mapping, MutableMapping, Optional, Union
|
|
10
10
|
import dpath
|
11
11
|
from typing_extensions import deprecated
|
12
12
|
|
13
|
+
from airbyte_cdk.sources.declarative.interpolation.interpolated_boolean import InterpolatedBoolean
|
13
14
|
from airbyte_cdk.sources.declarative.interpolation.interpolated_string import InterpolatedString
|
14
15
|
from airbyte_cdk.sources.declarative.retrievers.retriever import Retriever
|
15
16
|
from airbyte_cdk.sources.declarative.schema.schema_loader import SchemaLoader
|
@@ -53,6 +54,7 @@ class TypesMap:
|
|
53
54
|
|
54
55
|
target_type: Union[List[str], str]
|
55
56
|
current_type: Union[List[str], str]
|
57
|
+
condition: Optional[str]
|
56
58
|
|
57
59
|
|
58
60
|
@deprecated("This class is experimental. Use at your own risk.", category=ExperimentalClassWarning)
|
@@ -177,7 +179,7 @@ class DynamicSchemaLoader(SchemaLoader):
|
|
177
179
|
if field_type_path
|
178
180
|
else "string"
|
179
181
|
)
|
180
|
-
mapped_field_type = self._replace_type_if_not_valid(raw_field_type)
|
182
|
+
mapped_field_type = self._replace_type_if_not_valid(raw_field_type, raw_schema)
|
181
183
|
if (
|
182
184
|
isinstance(mapped_field_type, list)
|
183
185
|
and len(mapped_field_type) == 2
|
@@ -194,14 +196,22 @@ class DynamicSchemaLoader(SchemaLoader):
|
|
194
196
|
)
|
195
197
|
|
196
198
|
def _replace_type_if_not_valid(
|
197
|
-
self,
|
199
|
+
self,
|
200
|
+
field_type: Union[List[str], str],
|
201
|
+
raw_schema: MutableMapping[str, Any],
|
198
202
|
) -> Union[List[str], str]:
|
199
203
|
"""
|
200
204
|
Replaces a field type if it matches a type mapping in `types_map`.
|
201
205
|
"""
|
202
206
|
if self.schema_type_identifier.types_mapping:
|
203
207
|
for types_map in self.schema_type_identifier.types_mapping:
|
204
|
-
if
|
208
|
+
# conditional is optional param, setting to true if not provided
|
209
|
+
condition = InterpolatedBoolean(
|
210
|
+
condition=types_map.condition if types_map.condition is not None else "True",
|
211
|
+
parameters={},
|
212
|
+
).eval(config=self.config, raw_schema=raw_schema)
|
213
|
+
|
214
|
+
if field_type == types_map.current_type and condition:
|
205
215
|
return types_map.target_type
|
206
216
|
return field_type
|
207
217
|
|
@@ -0,0 +1,55 @@
|
|
1
|
+
from dataclasses import InitVar, dataclass
|
2
|
+
from typing import Any, Dict, List, Mapping, Optional, Union
|
3
|
+
|
4
|
+
import dpath
|
5
|
+
|
6
|
+
from airbyte_cdk.sources.declarative.interpolation.interpolated_string import InterpolatedString
|
7
|
+
from airbyte_cdk.sources.declarative.transformations import RecordTransformation
|
8
|
+
from airbyte_cdk.sources.types import Config, StreamSlice, StreamState
|
9
|
+
|
10
|
+
|
11
|
+
@dataclass
|
12
|
+
class DpathFlattenFields(RecordTransformation):
|
13
|
+
"""
|
14
|
+
Flatten fields only for provided path.
|
15
|
+
|
16
|
+
field_path: List[Union[InterpolatedString, str]] path to the field to flatten.
|
17
|
+
delete_origin_value: bool = False whether to delete origin field or keep it. Default is False.
|
18
|
+
|
19
|
+
"""
|
20
|
+
|
21
|
+
config: Config
|
22
|
+
field_path: List[Union[InterpolatedString, str]]
|
23
|
+
parameters: InitVar[Mapping[str, Any]]
|
24
|
+
delete_origin_value: bool = False
|
25
|
+
|
26
|
+
def __post_init__(self, parameters: Mapping[str, Any]) -> None:
|
27
|
+
self._field_path = [
|
28
|
+
InterpolatedString.create(path, parameters=parameters) for path in self.field_path
|
29
|
+
]
|
30
|
+
for path_index in range(len(self.field_path)):
|
31
|
+
if isinstance(self.field_path[path_index], str):
|
32
|
+
self._field_path[path_index] = InterpolatedString.create(
|
33
|
+
self.field_path[path_index], parameters=parameters
|
34
|
+
)
|
35
|
+
|
36
|
+
def transform(
|
37
|
+
self,
|
38
|
+
record: Dict[str, Any],
|
39
|
+
config: Optional[Config] = None,
|
40
|
+
stream_state: Optional[StreamState] = None,
|
41
|
+
stream_slice: Optional[StreamSlice] = None,
|
42
|
+
) -> None:
|
43
|
+
path = [path.eval(self.config) for path in self._field_path]
|
44
|
+
if "*" in path:
|
45
|
+
matched = dpath.values(record, path)
|
46
|
+
extracted = matched[0] if matched else None
|
47
|
+
else:
|
48
|
+
extracted = dpath.get(record, path, default=[])
|
49
|
+
|
50
|
+
if isinstance(extracted, dict):
|
51
|
+
conflicts = set(extracted.keys()) & set(record.keys())
|
52
|
+
if not conflicts:
|
53
|
+
if self.delete_origin_value:
|
54
|
+
dpath.delete(record, path)
|
55
|
+
record.update(extracted)
|
@@ -9,6 +9,7 @@ from typing import Any, Callable, Dict, Generator, Mapping, Optional, cast
|
|
9
9
|
|
10
10
|
from jsonschema import Draft7Validator, RefResolver, ValidationError, Validator, validators
|
11
11
|
|
12
|
+
MAX_NESTING_DEPTH = 3
|
12
13
|
json_to_python_simple = {
|
13
14
|
"string": str,
|
14
15
|
"number": float,
|
@@ -225,6 +226,31 @@ class TypeTransformer:
|
|
225
226
|
logger.warning(self.get_error_message(e))
|
226
227
|
|
227
228
|
def get_error_message(self, e: ValidationError) -> str:
|
228
|
-
|
229
|
-
|
230
|
-
|
229
|
+
"""
|
230
|
+
Construct a sanitized error message from a ValidationError instance.
|
231
|
+
"""
|
232
|
+
field_path = ".".join(map(str, e.path))
|
233
|
+
type_structure = self._get_type_structure(e.instance)
|
234
|
+
|
235
|
+
return f"Failed to transform value from type '{type_structure}' to type '{e.validator_value}' at path: '{field_path}'"
|
236
|
+
|
237
|
+
def _get_type_structure(self, input_data: Any, current_depth: int = 0) -> Any:
|
238
|
+
"""
|
239
|
+
Get the structure of a given input data for use in error message construction.
|
240
|
+
"""
|
241
|
+
# Handle null values
|
242
|
+
if input_data is None:
|
243
|
+
return "null"
|
244
|
+
|
245
|
+
# Avoid recursing too deep
|
246
|
+
if current_depth >= MAX_NESTING_DEPTH:
|
247
|
+
return "object" if isinstance(input_data, dict) else python_to_json[type(input_data)]
|
248
|
+
|
249
|
+
if isinstance(input_data, dict):
|
250
|
+
return {
|
251
|
+
key: self._get_type_structure(field_value, current_depth + 1)
|
252
|
+
for key, field_value in input_data.items()
|
253
|
+
}
|
254
|
+
|
255
|
+
else:
|
256
|
+
return python_to_json[type(input_data)]
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.3
|
2
2
|
Name: airbyte-cdk
|
3
|
-
Version: 6.
|
3
|
+
Version: 6.22.0
|
4
4
|
Summary: A framework for writing Airbyte Connectors.
|
5
5
|
License: MIT
|
6
6
|
Keywords: airbyte,connector-development-kit,cdk
|
@@ -66,7 +66,7 @@ Requires-Dist: tiktoken (==0.8.0) ; extra == "vector-db-based"
|
|
66
66
|
Requires-Dist: unstructured.pytesseract (>=0.3.12) ; extra == "file-based"
|
67
67
|
Requires-Dist: unstructured[docx,pptx] (==0.10.27) ; extra == "file-based"
|
68
68
|
Requires-Dist: wcmatch (==10.0)
|
69
|
-
Requires-Dist: xmltodict (>=0.13
|
69
|
+
Requires-Dist: xmltodict (>=0.13,<0.15)
|
70
70
|
Project-URL: Documentation, https://docs.airbyte.io/
|
71
71
|
Project-URL: Homepage, https://airbyte.com
|
72
72
|
Project-URL: Repository, https://github.com/airbytehq/airbyte-python-cdk
|
@@ -67,7 +67,7 @@ airbyte_cdk/sources/declarative/concurrent_declarative_source.py,sha256=tSTCSmyM
|
|
67
67
|
airbyte_cdk/sources/declarative/datetime/__init__.py,sha256=l9LG7Qm6e5r_qgqfVKnx3mXYtg1I9MmMjomVIPfU4XA,177
|
68
68
|
airbyte_cdk/sources/declarative/datetime/datetime_parser.py,sha256=SX9JjdesN1edN2WVUVMzU_ptqp2QB1OnsnjZ4mwcX7w,2579
|
69
69
|
airbyte_cdk/sources/declarative/datetime/min_max_datetime.py,sha256=0BHBtDNQZfvwM45-tY5pNlTcKAFSGGNxemoi0Jic-0E,5785
|
70
|
-
airbyte_cdk/sources/declarative/declarative_component_schema.yaml,sha256=
|
70
|
+
airbyte_cdk/sources/declarative/declarative_component_schema.yaml,sha256=1I-EkU0fZCntXLw7auNj10M934KZE_NZVx_VwvMJN0g,137923
|
71
71
|
airbyte_cdk/sources/declarative/declarative_source.py,sha256=nF7wBqFd3AQmEKAm4CnIo29CJoQL562cJGSCeL8U8bA,1531
|
72
72
|
airbyte_cdk/sources/declarative/declarative_stream.py,sha256=JRyNeOIpsFu4ztVZsN6sncqUEIqIE-bUkD2TPgbMgk0,10375
|
73
73
|
airbyte_cdk/sources/declarative/decoders/__init__.py,sha256=KSpQetKGqPCv-38QgcVJ5kzM5nzbFldTSsYDCS3Xf0Y,1035
|
@@ -77,7 +77,7 @@ airbyte_cdk/sources/declarative/decoders/json_decoder.py,sha256=qdbjeR6RffKaah_i
|
|
77
77
|
airbyte_cdk/sources/declarative/decoders/noop_decoder.py,sha256=iZh0yKY_JzgBnJWiubEusf5c0o6Khd-8EWFWT-8EgFo,542
|
78
78
|
airbyte_cdk/sources/declarative/decoders/pagination_decoder_decorator.py,sha256=ZVBZhAOl0I0MymXN5CKTC-kIXG4GuUQAEyn0XpUDuSE,1081
|
79
79
|
airbyte_cdk/sources/declarative/decoders/xml_decoder.py,sha256=EU-7t-5vIGRHZ14h-f0GUE4V5-eTM9Flux-A8xgI1Rc,3117
|
80
|
-
airbyte_cdk/sources/declarative/decoders/zipfile_decoder.py,sha256=
|
80
|
+
airbyte_cdk/sources/declarative/decoders/zipfile_decoder.py,sha256=OTGeNh-Zkab9JwCTgiHtLH1IS6PiVO9jnr82c0vrHbw,2269
|
81
81
|
airbyte_cdk/sources/declarative/exceptions.py,sha256=kTPUA4I2NV4J6HDz-mKPGMrfuc592akJnOyYx38l_QM,176
|
82
82
|
airbyte_cdk/sources/declarative/extractors/__init__.py,sha256=RmV-IkO1YLj0PSOrrqC9AV1gO8-90t8UTDVfJGshN9E,754
|
83
83
|
airbyte_cdk/sources/declarative/extractors/dpath_extractor.py,sha256=wR4Ol4MG2lt5UlqXF5EU_k7qa5cN4_-luu3PJ1PlO3A,3131
|
@@ -108,12 +108,12 @@ airbyte_cdk/sources/declarative/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW
|
|
108
108
|
airbyte_cdk/sources/declarative/migrations/legacy_to_per_partition_state_migration.py,sha256=iemy3fKLczcU0-Aor7tx5jcT6DRedKMqyK7kCOp01hg,3924
|
109
109
|
airbyte_cdk/sources/declarative/migrations/state_migration.py,sha256=KWPjealMLKSMtajXgkdGgKg7EmTLR-CqqD7UIh0-eDU,794
|
110
110
|
airbyte_cdk/sources/declarative/models/__init__.py,sha256=nUFxNCiKeYRVXuZEKA7GD-lTHxsiKcQ8FitZjKhPIvE,100
|
111
|
-
airbyte_cdk/sources/declarative/models/declarative_component_schema.py,sha256=
|
111
|
+
airbyte_cdk/sources/declarative/models/declarative_component_schema.py,sha256=Fv6D9D5hyYhjCWfeIPpyeFWQakMsIsoBbqosSHLHmEs,96909
|
112
112
|
airbyte_cdk/sources/declarative/parsers/__init__.py,sha256=ZnqYNxHsKCgO38IwB34RQyRMXTs4GTvlRi3ImKnIioo,61
|
113
113
|
airbyte_cdk/sources/declarative/parsers/custom_exceptions.py,sha256=Rir9_z3Kcd5Es0-LChrzk-0qubAsiK_RSEnLmK2OXm8,553
|
114
114
|
airbyte_cdk/sources/declarative/parsers/manifest_component_transformer.py,sha256=CXwTfD3wSQq3okcqwigpprbHhSURUokh4GK2OmOyKC8,9132
|
115
115
|
airbyte_cdk/sources/declarative/parsers/manifest_reference_resolver.py,sha256=IWUOdF03o-aQn0Occo1BJCxU0Pz-QILk5L67nzw2thw,6803
|
116
|
-
airbyte_cdk/sources/declarative/parsers/model_to_component_factory.py,sha256=
|
116
|
+
airbyte_cdk/sources/declarative/parsers/model_to_component_factory.py,sha256=xldBYPEQ45BKM5F1Lpid2l6kqtYcLzGK0yw4R6gPAJQ,113624
|
117
117
|
airbyte_cdk/sources/declarative/partition_routers/__init__.py,sha256=HJ-Syp3p7RpyR_OK0X_a2kSyISfu3W-PKrRI16iY0a8,957
|
118
118
|
airbyte_cdk/sources/declarative/partition_routers/async_job_partition_router.py,sha256=n82J15S8bjeMZ5uROu--P3hnbQoxkY5v7RPHYx7g7ro,2929
|
119
119
|
airbyte_cdk/sources/declarative/partition_routers/cartesian_product_stream_slicer.py,sha256=c5cuVFM6NFkuQqG8Z5IwkBuwDrvXZN1CunUOM_L0ezg,6892
|
@@ -168,7 +168,7 @@ airbyte_cdk/sources/declarative/retrievers/retriever.py,sha256=XPLs593Xv8c5cKMc3
|
|
168
168
|
airbyte_cdk/sources/declarative/retrievers/simple_retriever.py,sha256=jxQ_9xcVD07r9PKhofitAqMkdX1k8ZNyy50qz5NwkFs,24540
|
169
169
|
airbyte_cdk/sources/declarative/schema/__init__.py,sha256=HztgVVaZdil5UfgUZcv_Hyy84r89_EKRwyO2hoewNVg,749
|
170
170
|
airbyte_cdk/sources/declarative/schema/default_schema_loader.py,sha256=KTACrIE23a83wsm3Rd9Eb4K6-20lrGqYxTHNp9yxsso,1820
|
171
|
-
airbyte_cdk/sources/declarative/schema/dynamic_schema_loader.py,sha256=
|
171
|
+
airbyte_cdk/sources/declarative/schema/dynamic_schema_loader.py,sha256=sa99VqU1U45fgZL2qEdw8ueX1tPTPfGxibQ-ZFePjSM,9361
|
172
172
|
airbyte_cdk/sources/declarative/schema/inline_schema_loader.py,sha256=bVETE10hRsatRJq3R3BeyRR0wIoK3gcP1gcpVRQ_P5U,464
|
173
173
|
airbyte_cdk/sources/declarative/schema/json_file_schema_loader.py,sha256=5Wl-fqW-pVf_dxJ4yGHMAFfC4JjKHYJhqFJT1xA57F4,4177
|
174
174
|
airbyte_cdk/sources/declarative/schema/schema_loader.py,sha256=kjt8v0N5wWKA5zyLnrDLxf1PJKdUqvQq2RVnAOAzNSY,379
|
@@ -179,6 +179,7 @@ airbyte_cdk/sources/declarative/stream_slicers/declarative_partition_generator.p
|
|
179
179
|
airbyte_cdk/sources/declarative/stream_slicers/stream_slicer.py,sha256=SOkIPBi2Wu7yxIvA15yFzUAB95a3IzA8LPq5DEqHQQc,725
|
180
180
|
airbyte_cdk/sources/declarative/transformations/__init__.py,sha256=CPJ8TlMpiUmvG3624VYu_NfTzxwKcfBjM2Q2wJ7fkSA,919
|
181
181
|
airbyte_cdk/sources/declarative/transformations/add_fields.py,sha256=r4YdAuAk2bQtNWJMztIIy2CC-NglD9NeK1s1TeO9wkw,5027
|
182
|
+
airbyte_cdk/sources/declarative/transformations/dpath_flatten_fields.py,sha256=1A-DWGjMqY4ggzRUZsZ3Sjrt-xsNgwUo5c72sSc5OZ0,2077
|
182
183
|
airbyte_cdk/sources/declarative/transformations/flatten_fields.py,sha256=yT3owG6rMKaRX-LJ_T-jSTnh1B5NoAHyH4YZN9yOvE8,1758
|
183
184
|
airbyte_cdk/sources/declarative/transformations/keys_replace_transformation.py,sha256=vbIn6ump-Ut6g20yMub7PFoPBhOKVtrHSAUdcOUdLfw,1999
|
184
185
|
airbyte_cdk/sources/declarative/transformations/keys_to_lower_transformation.py,sha256=RTs5KX4V3hM7A6QN1WlGF21YccTIyNH6qQI9IMb__hw,670
|
@@ -301,7 +302,7 @@ airbyte_cdk/sources/utils/casing.py,sha256=QC-gV1O4e8DR4-bhdXieUPKm_JamzslVyfABL
|
|
301
302
|
airbyte_cdk/sources/utils/record_helper.py,sha256=jeB0mucudzna7Zvj-pCBbwFrbLJ36SlAWZTh5O4Fb9Y,2168
|
302
303
|
airbyte_cdk/sources/utils/schema_helpers.py,sha256=bR3I70-e11S6B8r6VK-pthQXtcYrXojgXFvuK7lRrpg,8545
|
303
304
|
airbyte_cdk/sources/utils/slice_logger.py,sha256=qWWeFLAvigFz0b4O1_O3QDM1cy8PqZAMMgVPR2hEeb8,1778
|
304
|
-
airbyte_cdk/sources/utils/transform.py,sha256=
|
305
|
+
airbyte_cdk/sources/utils/transform.py,sha256=Sks6kiRbef1W-5I6PRqnFxksJe2NOPKCRXQLudaltf8,11015
|
305
306
|
airbyte_cdk/sources/utils/types.py,sha256=41ZQR681t5TUnOScij58d088sb99klH_ZENFcaYro_g,175
|
306
307
|
airbyte_cdk/sql/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
307
308
|
airbyte_cdk/sql/_util/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -345,8 +346,8 @@ airbyte_cdk/utils/slice_hasher.py,sha256=-pHexlNYoWYPnXNH-M7HEbjmeJe9Zk7SJijdQ7d
|
|
345
346
|
airbyte_cdk/utils/spec_schema_transformations.py,sha256=-5HTuNsnDBAhj-oLeQXwpTGA0HdcjFOf2zTEMUTTg_Y,816
|
346
347
|
airbyte_cdk/utils/stream_status_utils.py,sha256=ZmBoiy5HVbUEHAMrUONxZvxnvfV9CesmQJLDTAIWnWw,1171
|
347
348
|
airbyte_cdk/utils/traced_exception.py,sha256=C8uIBuCL_E4WnBAOPSxBicD06JAldoN9fGsQDp463OY,6292
|
348
|
-
airbyte_cdk-6.
|
349
|
-
airbyte_cdk-6.
|
350
|
-
airbyte_cdk-6.
|
351
|
-
airbyte_cdk-6.
|
352
|
-
airbyte_cdk-6.
|
349
|
+
airbyte_cdk-6.22.0.dist-info/LICENSE.txt,sha256=Wfe61S4BaGPj404v8lrAbvhjYR68SHlkzeYrg3_bbuM,1051
|
350
|
+
airbyte_cdk-6.22.0.dist-info/METADATA,sha256=FEDVsyYS-_65JwB58QODjqBHEVo1GONNrY6Ea9aHECs,5996
|
351
|
+
airbyte_cdk-6.22.0.dist-info/WHEEL,sha256=IYZQI976HJqqOpQU6PHkJ8fb3tMNBFjg-Cn-pwAbaFM,88
|
352
|
+
airbyte_cdk-6.22.0.dist-info/entry_points.txt,sha256=fj-e3PAQvsxsQzyyq8UkG1k8spunWnD4BAH2AwlR6NM,95
|
353
|
+
airbyte_cdk-6.22.0.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|