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.
@@ -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
- zip_file = zipfile.ZipFile(BytesIO(response.content))
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(target_type=model.target_type, current_type=model.current_type)
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, field_type: Union[List[str], str]
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 field_type == types_map.current_type:
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
- instance_json_type = python_to_json[type(e.instance)]
229
- key_path = "." + ".".join(map(str, e.path))
230
- return f"Failed to transform value {repr(e.instance)} of type '{instance_json_type}' to '{e.validator_value}', key path: '{key_path}'"
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.21.0.dev0
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.0,<0.14.0)
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=7gJ3TfTU5m4WkBw_KOooYPfegjvuGhIwyuCXSEhpMZo,136842
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=zF1Zu1hhjbLvrCl69z0v-j8FPnfHX1KLK3KgyxnTb78,1607
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=CDcYWVUIQoT50X1j1Zb_bejerg1rMxZjVcNa6rJ5JMA,96194
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=L8iHeRywEPZ4mDUK8oh3A7Vn6-d-6MHyLBWxlLyKVTc,112659
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=H6A3NQ6kPPM-cUNPmdvDPc9xNzR1rQNrK95GbgCW334,8822
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=zXlZ00akGt0OpiuYQf6FCDL0eI_Qdo1tWPKxA88RTwk,10168
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.21.0.dev0.dist-info/LICENSE.txt,sha256=Wfe61S4BaGPj404v8lrAbvhjYR68SHlkzeYrg3_bbuM,1051
349
- airbyte_cdk-6.21.0.dev0.dist-info/METADATA,sha256=dv48GD8Zw_hcpqCpeJZsMd2pKjnSVxtT0S4z3JcAb84,6005
350
- airbyte_cdk-6.21.0.dev0.dist-info/WHEEL,sha256=IYZQI976HJqqOpQU6PHkJ8fb3tMNBFjg-Cn-pwAbaFM,88
351
- airbyte_cdk-6.21.0.dev0.dist-info/entry_points.txt,sha256=fj-e3PAQvsxsQzyyq8UkG1k8spunWnD4BAH2AwlR6NM,95
352
- airbyte_cdk-6.21.0.dev0.dist-info/RECORD,,
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,,