airbyte-cdk 6.60.0.post27.dev16508849855__py3-none-any.whl → 6.60.0.post30.dev16509083730__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.
@@ -35,9 +35,9 @@ from airbyte_cdk.models import (
35
35
  AirbyteStateMessage,
36
36
  AirbyteTraceMessage,
37
37
  ConfiguredAirbyteCatalog,
38
- ConnectorSpecificationSerializer,
39
38
  TraceType,
40
39
  Type,
40
+ ab_connector_spec_from_string,
41
41
  ab_message_to_string,
42
42
  )
43
43
  from airbyte_cdk.sources.declarative.concurrent_declarative_source import (
@@ -147,8 +147,7 @@ def handle_remote_manifest_command(args: list[str]) -> None:
147
147
  "Could not find `spec.json` file for source-declarative-manifest"
148
148
  )
149
149
 
150
- spec_obj = json.loads(json_spec)
151
- spec = ConnectorSpecificationSerializer.load(spec_obj)
150
+ spec = ab_connector_spec_from_string(json_spec.decode("utf-8"))
152
151
 
153
152
  message = AirbyteMessage(type=Type.SPEC, spec=spec)
154
153
  print(ab_message_to_string(message))
airbyte_cdk/connector.py CHANGED
@@ -15,7 +15,6 @@ import yaml
15
15
  from airbyte_cdk.models import (
16
16
  AirbyteConnectionStatus,
17
17
  ConnectorSpecification,
18
- ConnectorSpecificationSerializer,
19
18
  )
20
19
 
21
20
 
@@ -95,7 +94,7 @@ class BaseConnector(ABC, Generic[TConfig]):
95
94
  else:
96
95
  raise FileNotFoundError("Unable to find spec.yaml or spec.json in the package.")
97
96
 
98
- return ConnectorSpecificationSerializer.load(spec_obj)
97
+ return ConnectorSpecification.model_validate(spec_obj)
99
98
 
100
99
  @abstractmethod
101
100
  def check(self, logger: logging.Logger, config: TConfig) -> AirbyteConnectionStatus:
@@ -22,8 +22,6 @@ from airbyte_cdk.models import (
22
22
  AirbyteMessage,
23
23
  AirbyteStateMessage,
24
24
  ConfiguredAirbyteCatalog,
25
- ConfiguredAirbyteCatalogSerializer,
26
- ab_message_to_string,
27
25
  )
28
26
  from airbyte_cdk.sources.declarative.manifest_declarative_source import ManifestDeclarativeSource
29
27
  from airbyte_cdk.sources.source import Source
@@ -53,7 +51,7 @@ def get_config_and_catalog_from_args(
53
51
 
54
52
  command = config["__command"]
55
53
  if command == "test_read":
56
- catalog = ConfiguredAirbyteCatalogSerializer.load(BaseConnector.read_config(catalog_path))
54
+ catalog = ConfiguredAirbyteCatalog.model_validate(BaseConnector.read_config(catalog_path))
57
55
  state = Source.read_state(state_path)
58
56
  else:
59
57
  catalog = None
@@ -16,8 +16,9 @@ from airbyte_cdk.exception_handler import init_uncaught_exception_handler
16
16
  from airbyte_cdk.models import (
17
17
  AirbyteMessage,
18
18
  ConfiguredAirbyteCatalog,
19
- ConfiguredAirbyteCatalogSerializer,
20
19
  Type,
20
+ ab_configured_catalog_from_string,
21
+ ab_configured_catalog_to_string,
21
22
  ab_message_from_string,
22
23
  ab_message_to_string,
23
24
  )
@@ -59,9 +60,7 @@ class Destination(Connector, ABC):
59
60
  configured_catalog_path: str,
60
61
  input_stream: io.TextIOWrapper,
61
62
  ) -> Iterable[AirbyteMessage]:
62
- catalog = ConfiguredAirbyteCatalogSerializer.load(
63
- orjson.loads(open(configured_catalog_path).read())
64
- )
63
+ catalog = ab_configured_catalog_from_string(open(configured_catalog_path).read())
65
64
  input_messages = self._parse_input_stream(input_stream)
66
65
  logger.info("Begin writing to the destination...")
67
66
  yield from self.write(
@@ -50,9 +50,10 @@ from .airbyte_protocol import (
50
50
  Type,
51
51
  )
52
52
  from .airbyte_protocol_serializers import (
53
- AirbyteStateMessageSerializer,
54
- ConfiguredAirbyteCatalogSerializer,
55
- ConnectorSpecificationSerializer,
53
+ ab_configured_catalog_from_string,
54
+ ab_configured_catalog_to_string,
55
+ ab_connector_spec_from_string,
56
+ ab_connector_spec_to_string,
56
57
  ab_message_from_string,
57
58
  ab_message_to_string,
58
59
  )
@@ -6,4 +6,4 @@ import sys
6
6
  from dataclasses import InitVar, dataclass
7
7
  from typing import Annotated, Any, Dict, List, Mapping, Optional, Union
8
8
 
9
- from airbyte_protocol_dataclasses.models import * # noqa: F403 # Allow '*'
9
+ from airbyte_protocol.models import * # noqa: F403 # Allow '*'
@@ -31,101 +31,7 @@ T = TypeVar("T")
31
31
 
32
32
  logger = logging.getLogger("airbyte")
33
33
 
34
-
35
- class CustomSerializer:
36
- """Custom serializer that mimics serpyco-rs Serializer API"""
37
-
38
- def __init__(
39
- self,
40
- model_class: Type[T],
41
- omit_none: bool = False,
42
- custom_type_resolver: Callable | None = None,
43
- ):
44
- self.model_class = model_class
45
- self.omit_none = omit_none
46
- self.custom_type_resolver = custom_type_resolver
47
-
48
- def dump(self, obj: T) -> Dict[str, Any]:
49
- """Convert dataclass to dictionary, omitting None values if configured"""
50
- if hasattr(obj, "__dict__"):
51
- result = {}
52
- for key, value in obj.__dict__.items():
53
- if self.omit_none and value is None:
54
- continue
55
- # Handle custom types like AirbyteStateBlob
56
- if self.custom_type_resolver and hasattr(value, "__class__"):
57
- custom_handler = self.custom_type_resolver(value.__class__)
58
- if custom_handler:
59
- value = custom_handler.serialize(value)
60
- # Recursively handle nested objects
61
- if hasattr(value, "__dict__"):
62
- value = self._serialize_nested(value)
63
- elif isinstance(value, list):
64
- value = [
65
- self._serialize_nested(item) if hasattr(item, "__dict__") else item
66
- for item in value
67
- ]
68
- result[key] = value
69
- return result
70
- return obj.__dict__ if hasattr(obj, "__dict__") else {}
71
-
72
- def load(self, data: Dict[str, Any]) -> T:
73
- """Convert dictionary to dataclass instance"""
74
- # Handle custom types
75
- return dacite.from_dict(data_class=self.model_class, data=data)
76
-
77
- def _serialize_nested(self, obj: Any) -> Any:
78
- """Helper to serialize nested objects"""
79
- if hasattr(obj, "__dict__"):
80
- result = {}
81
- for key, value in obj.__dict__.items():
82
- if self.omit_none and value is None:
83
- continue
84
- result[key] = value
85
- return result
86
- return obj
87
-
88
-
89
- if USE_RUST_BACKEND:
90
- from serpyco_rs import CustomType, Serializer # type: ignore[import]
91
-
92
- SERIALIZER = Serializer if USE_RUST_BACKEND else CustomSerializer
93
-
94
34
  # Making this a no-op for now:
95
- custom_type_resolver = None
96
-
97
- # No idea why this is here. Commenting out for now.
98
- # def custom_type_resolver(t: type) -> AirbyteStateBlobType | None:
99
- # return AirbyteStateBlobType() if t is AirbyteStateBlob else None
100
- #
101
- # class AirbyteStateBlobType(CustomType[AirbyteStateBlob, Dict[str, Any]]):
102
- # def serialize(self, value: AirbyteStateBlob) -> Dict[str, Any]:
103
- # # cant use orjson.dumps() directly because private attributes are excluded, e.g. "__ab_full_refresh_sync_complete"
104
- # return {k: v for k, v in value.__dict__.items()}
105
-
106
- # def deserialize(self, value: Dict[str, Any]) -> AirbyteStateBlob:
107
- # return AirbyteStateBlob(value)
108
-
109
- # def get_json_schema(self) -> Dict[str, Any]:
110
- # return {"type": "object"}
111
-
112
- # Create serializer instances maintaining the same API
113
- AirbyteStateMessageSerializer = SERIALIZER(
114
- AirbyteStateMessage, omit_none=True, custom_type_resolver=custom_type_resolver
115
- )
116
- AirbyteMessageSerializer = SERIALIZER(
117
- AirbyteMessage, omit_none=True, custom_type_resolver=custom_type_resolver
118
- )
119
- ConfiguredAirbyteCatalogSerializer = SERIALIZER(ConfiguredAirbyteCatalog, omit_none=True)
120
- ConnectorSpecificationSerializer = SERIALIZER(ConnectorSpecification, omit_none=True)
121
-
122
-
123
- def _custom_json_serializer(val: object) -> str:
124
- """Handle custom serialization needs for AirbyteMessage."""
125
- if isinstance(val, Enum):
126
- return str(val.value)
127
-
128
- return str(val)
129
35
 
130
36
 
131
37
  def ab_message_to_string(
@@ -140,28 +46,11 @@ def ab_message_to_string(
140
46
  Returns:
141
47
  str: JSON string representation of the AirbyteMessage.
142
48
  """
143
- global _HAS_LOGGED_FOR_SERIALIZATION_ERROR
144
- dict_obj = AirbyteMessageSerializer.dump(message)
145
-
146
- try:
147
- return orjson.dumps(
148
- dict_obj,
149
- default=_custom_json_serializer,
150
- ).decode()
151
- except Exception as exception:
152
- if not _HAS_LOGGED_FOR_SERIALIZATION_ERROR:
153
- logger.warning(
154
- f"There was an error during the serialization of an AirbyteMessage: `{exception}`. This might impact the sync performances."
155
- )
156
- _HAS_LOGGED_FOR_SERIALIZATION_ERROR = True
157
- return json.dumps(
158
- dict_obj,
159
- default=_custom_json_serializer,
160
- )
49
+ return message.model_dump_json()
161
50
 
162
51
 
163
52
  def ab_message_from_string(
164
- message_str: str,
53
+ message_json: str,
165
54
  ) -> AirbyteMessage:
166
55
  """
167
56
  Convert a JSON string to an AirbyteMessage.
@@ -173,9 +62,118 @@ def ab_message_from_string(
173
62
  AirbyteMessage: The deserialized AirbyteMessage.
174
63
  """
175
64
  try:
176
- message_dict = orjson.loads(message_str)
177
- return AirbyteMessageSerializer.load(message_dict)
65
+ return AirbyteMessage.model_validate_json(message_json)
178
66
  except ValidationError as e:
179
67
  raise ValueError(f"Invalid AirbyteMessage format: {e}") from e
180
68
  except orjson.JSONDecodeError as e:
181
69
  raise ValueError(f"Failed to decode JSON: {e}") from e
70
+
71
+
72
+ def ab_connector_spec_from_string(
73
+ spec_json: str,
74
+ ) -> ConnectorSpecification:
75
+ """
76
+ Convert a JSON string to a ConnectorSpecification.
77
+
78
+ Args:
79
+ spec_str (str): The JSON string to convert.
80
+
81
+ Returns:
82
+ ConnectorSpecification: The deserialized ConnectorSpecification.
83
+ """
84
+ try:
85
+ return ConnectorSpecification.model_validate_json(spec_json)
86
+ except ValidationError as e:
87
+ raise ValueError(f"Invalid ConnectorSpecification format: {e}") from e
88
+ except orjson.JSONDecodeError as e:
89
+ raise ValueError(f"Failed to decode JSON: {e}") from e
90
+
91
+
92
+ def ab_connector_spec_to_string(
93
+ spec: ConnectorSpecification,
94
+ ) -> str:
95
+ """
96
+ Convert a ConnectorSpecification to a JSON string.
97
+
98
+ Args:
99
+ spec (ConnectorSpecification): The ConnectorSpecification to convert.
100
+
101
+ Returns:
102
+ str: JSON string representation of the ConnectorSpecification.
103
+ """
104
+ return spec.model_dump_json()
105
+
106
+
107
+ def ab_configured_catalog_to_string(
108
+ catalog: ConfiguredAirbyteCatalog,
109
+ ) -> str:
110
+ """
111
+ Convert a ConfiguredAirbyteCatalog to a JSON string.
112
+
113
+ Args:
114
+ catalog (ConfiguredAirbyteCatalog): The ConfiguredAirbyteCatalog to convert.
115
+
116
+ Returns:
117
+ str: JSON string representation of the ConfiguredAirbyteCatalog.
118
+ """
119
+ return catalog.model_dump_json()
120
+
121
+
122
+ def ab_configured_catalog_from_string(
123
+ catalog_json: str,
124
+ ) -> ConfiguredAirbyteCatalog:
125
+ """
126
+ Convert a JSON string to a ConfiguredAirbyteCatalog.
127
+
128
+ Args:
129
+ catalog_json (str): The JSON string to convert.
130
+
131
+ Returns:
132
+ ConfiguredAirbyteCatalog: The deserialized ConfiguredAirbyteCatalog.
133
+ """
134
+ try:
135
+ return ConfiguredAirbyteCatalog.model_validate_json(catalog_json)
136
+ except ValidationError as e:
137
+ raise ValueError(f"Invalid ConfiguredAirbyteCatalog format: {e}") from e
138
+ except orjson.JSONDecodeError as e:
139
+ raise ValueError(f"Failed to decode JSON: {e}") from e
140
+
141
+
142
+ def ab_state_message_from_string(
143
+ state_json: str,
144
+ ) -> AirbyteStateMessage:
145
+ """
146
+ Convert a JSON string to an AirbyteStateMessage.
147
+
148
+ Args:
149
+ state_json (str): The JSON string to convert.
150
+
151
+ Returns:
152
+ AirbyteStateMessage: The deserialized AirbyteStateMessage.
153
+ """
154
+ try:
155
+ return AirbyteStateMessage.model_validate_json(state_json)
156
+ except ValidationError as e:
157
+ raise ValueError(f"Invalid AirbyteStateMessage format: {e}") from e
158
+ except orjson.JSONDecodeError as e:
159
+ raise ValueError(f"Failed to decode JSON: {e}") from e
160
+
161
+
162
+ def ab_state_blob_from_string(
163
+ state_blob_json: str,
164
+ ) -> AirbyteStateBlob:
165
+ """
166
+ Convert a JSON string to an AirbyteStateBlob.
167
+
168
+ Args:
169
+ state_blob_json (str): The JSON string to convert.
170
+
171
+ Returns:
172
+ AirbyteStateBlob: The deserialized AirbyteStateBlob.
173
+ """
174
+ try:
175
+ return AirbyteStateBlob.model_validate_json(state_blob_json)
176
+ except ValidationError as e:
177
+ raise ValueError(f"Invalid AirbyteStateBlob format: {e}") from e
178
+ except orjson.JSONDecodeError as e:
179
+ raise ValueError(f"Failed to decode JSON: {e}") from e
@@ -8,8 +8,8 @@ from typing import Any, List, Mapping, MutableMapping, Optional
8
8
  from airbyte_cdk.models import (
9
9
  AdvancedAuth,
10
10
  ConnectorSpecification,
11
- ConnectorSpecificationSerializer,
12
11
  )
12
+ from airbyte_cdk.models.airbyte_protocol_serializers import ab_connector_spec_from_string
13
13
  from airbyte_cdk.sources.declarative.models.declarative_component_schema import AuthFlow
14
14
  from airbyte_cdk.sources.declarative.transformations.config_transformations.config_transformation import (
15
15
  ConfigTransformation,
@@ -59,7 +59,7 @@ class Spec:
59
59
  obj["advanced_auth"] = self.advanced_auth.dict()
60
60
 
61
61
  # We remap these keys to camel case because that's the existing format expected by the rest of the platform
62
- return ConnectorSpecificationSerializer.load(obj)
62
+ return ConnectorSpecification.model_validate(obj)
63
63
 
64
64
  def migrate_config(self, config: MutableMapping[str, Any]) -> None:
65
65
  """
@@ -12,9 +12,7 @@ from airbyte_cdk.models import (
12
12
  AirbyteCatalog,
13
13
  AirbyteMessage,
14
14
  AirbyteStateMessage,
15
- AirbyteStateMessageSerializer,
16
15
  ConfiguredAirbyteCatalog,
17
- ConfiguredAirbyteCatalogSerializer,
18
16
  )
19
17
 
20
18
  TState = TypeVar("TState")
@@ -72,7 +70,7 @@ class Source(
72
70
  state_obj = BaseConnector._read_json_file(state_path)
73
71
  if state_obj:
74
72
  for state in state_obj: # type: ignore # `isinstance(state_obj, List)` ensures that this is a list
75
- parsed_message = AirbyteStateMessageSerializer.load(state)
73
+ parsed_message = AirbyteStateMessage.model_validate(state)
76
74
  if (
77
75
  not parsed_message.stream
78
76
  and not parsed_message.data
@@ -87,7 +85,7 @@ class Source(
87
85
  # can be overridden to change an input catalog
88
86
  @classmethod
89
87
  def read_catalog(cls, catalog_path: str) -> ConfiguredAirbyteCatalog:
90
- return ConfiguredAirbyteCatalogSerializer.load(cls._read_json_file(catalog_path))
88
+ return ConfiguredAirbyteCatalog.model_validate(cls._read_json_file(catalog_path))
91
89
 
92
90
  @property
93
91
  def name(self) -> str:
@@ -37,16 +37,19 @@ from airbyte_cdk.models import (
37
37
  AirbyteLogMessage,
38
38
  AirbyteMessage,
39
39
  AirbyteStateMessage,
40
- AirbyteStateMessageSerializer,
41
40
  AirbyteStreamState,
42
41
  AirbyteStreamStatus,
43
42
  ConfiguredAirbyteCatalog,
44
- ConfiguredAirbyteCatalogSerializer,
45
43
  Level,
46
44
  TraceType,
47
45
  Type,
46
+ ab_configured_catalog_from_string,
47
+ ab_configured_catalog_to_string,
48
+ ab_connector_spec_from_string,
49
+ ab_connector_spec_to_string,
48
50
  ab_message_from_string,
49
51
  ab_message_to_string,
52
+ ab_state_message_to_string,
50
53
  )
51
54
  from airbyte_cdk.sources import Source
52
55
  from airbyte_cdk.test.models.scenario import ExpectedOutcome
@@ -449,7 +452,7 @@ def read(
449
452
  config_file = make_file(tmp_directory_path / "config.json", config)
450
453
  catalog_file = make_file(
451
454
  tmp_directory_path / "catalog.json",
452
- orjson.dumps(ConfiguredAirbyteCatalogSerializer.dump(catalog)).decode(),
455
+ ab_configured_catalog_to_string(catalog),
453
456
  )
454
457
  args = [
455
458
  "read",
@@ -461,15 +464,13 @@ def read(
461
464
  if debug:
462
465
  args.append("--debug")
463
466
  if state is not None:
464
- args.extend(
465
- [
466
- "--state",
467
- make_file(
468
- tmp_directory_path / "state.json",
469
- f"[{','.join([orjson.dumps(AirbyteStateMessageSerializer.dump(stream_state)).decode() for stream_state in state])}]",
470
- ),
471
- ]
472
- )
467
+ args.extend([
468
+ "--state",
469
+ make_file(
470
+ tmp_directory_path / "state.json",
471
+ f"[{','.join([ab_state_message_to_string(stream_state) for stream_state in state])}]",
472
+ ),
473
+ ])
473
474
 
474
475
  return _run_command(
475
476
  source,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: airbyte-cdk
3
- Version: 6.60.0.post27.dev16508849855
3
+ Version: 6.60.0.post30.dev16509083730
4
4
  Summary: A framework for writing Airbyte Connectors.
5
5
  Home-page: https://airbyte.com
6
6
  License: MIT
@@ -23,7 +23,7 @@ Provides-Extra: sql
23
23
  Provides-Extra: vector-db-based
24
24
  Requires-Dist: Jinja2 (>=3.1.2,<3.2.0)
25
25
  Requires-Dist: PyYAML (>=6.0.1,<7.0.0)
26
- Requires-Dist: airbyte-protocol-models-dataclasses (>=0.17.1,<0.18.0)
26
+ Requires-Dist: airbyte-protocol-models-pdv2 (>=0.18.0,<0.19.0)
27
27
  Requires-Dist: anyascii (>=0.3.2,<0.4.0)
28
28
  Requires-Dist: avro (>=1.11.2,<1.13.0) ; extra == "file-based"
29
29
  Requires-Dist: backoff
@@ -9,14 +9,14 @@ airbyte_cdk/cli/airbyte_cdk/_version.py,sha256=ohZNIktLFk91sdzqFW5idaNrZAPX2dIRn
9
9
  airbyte_cdk/cli/airbyte_cdk/exceptions.py,sha256=bsGmlWN6cXL2jCD1WYAZMqFmK1OLg2xLrcC_60KHSeA,803
10
10
  airbyte_cdk/cli/source_declarative_manifest/README.md,sha256=aviNYFk1qKXGm33NQ2mJtJNyQ1MO0SPrm_fggUs0MVE,2460
11
11
  airbyte_cdk/cli/source_declarative_manifest/__init__.py,sha256=F-DFREvW6Sz71nSu0MwVALaybs9veg678tvsGFi2dYo,143
12
- airbyte_cdk/cli/source_declarative_manifest/_run.py,sha256=45FxXFvpKoIMuptu9nZapzSQKQpGivo34T_HSZkua-w,11056
12
+ airbyte_cdk/cli/source_declarative_manifest/_run.py,sha256=BSpHX4Ly9p65mgnv9LSdEgjSADqEWvyq0L68d0-OwnY,11021
13
13
  airbyte_cdk/cli/source_declarative_manifest/spec.json,sha256=Earc1L6ngcdIr514oFQlUoOxdF4RHqtUyStSIAquXdY,554
14
14
  airbyte_cdk/config_observation.py,sha256=HJznEy6WfwmskCAa_x6edK3z3x_GPbkqK0YL8AA4zr8,3950
15
- airbyte_cdk/connector.py,sha256=N6TUlrZOMjLAI85JrNAKkfyTqnO5xfBCw4oEfgjJd9o,4254
15
+ airbyte_cdk/connector.py,sha256=m8fWTbFkatmR0ID6DAuL75sb9gQPKGBjLqqROLq7BaY,4216
16
16
  airbyte_cdk/connector_builder/README.md,sha256=Hw3wvVewuHG9-QgsAq1jDiKuLlStDxKBz52ftyNRnBw,1665
17
17
  airbyte_cdk/connector_builder/__init__.py,sha256=4Hw-PX1-VgESLF16cDdvuYCzGJtHntThLF4qIiULWeo,61
18
18
  airbyte_cdk/connector_builder/connector_builder_handler.py,sha256=OFTzxyfAevI3Um8fXTOLTgoCc4Sx9NzF0boqYkAATfM,6590
19
- airbyte_cdk/connector_builder/main.py,sha256=jEV8i14SKaxdXTdaB3b2OiYVAma-GkjLLz3LDJT-YuU,3879
19
+ airbyte_cdk/connector_builder/main.py,sha256=X7rQZeExRpGPD8y3_QuzhxHuGPD2Y3blkhBknYYwHiQ,3813
20
20
  airbyte_cdk/connector_builder/models.py,sha256=9pIZ98LW_d6fRS39VdnUOf3cxGt4TkC5MJ0_OrzcCRk,1578
21
21
  airbyte_cdk/connector_builder/test_reader/__init__.py,sha256=iTwBMoI9vaJotEgpqZbFjlxRcbxXYypSVJ9YxeHk7wc,120
22
22
  airbyte_cdk/connector_builder/test_reader/helpers.py,sha256=Iczn-_iczS2CaIAunWwyFcX0uLTra8Wh9JVfzm1Gfxo,26765
@@ -24,7 +24,7 @@ airbyte_cdk/connector_builder/test_reader/message_grouper.py,sha256=84BAEPIBHMq3
24
24
  airbyte_cdk/connector_builder/test_reader/reader.py,sha256=mP1yHK5vG38KxoKoT2QQ7ZNbkdLA1rMAU3EKpucjHls,21098
25
25
  airbyte_cdk/connector_builder/test_reader/types.py,sha256=hPZG3jO03kBaPyW94NI3JHRS1jxXGSNBcN1HFzOxo5Y,2528
26
26
  airbyte_cdk/destinations/__init__.py,sha256=FyDp28PT_YceJD5HDFhA-mrGfX9AONIyMQ4d68CHNxQ,213
27
- airbyte_cdk/destinations/destination.py,sha256=HReNRGouR3OC5dCaA1rZC9CrukIu81MlzWFYO9-4_3Q,5851
27
+ airbyte_cdk/destinations/destination.py,sha256=zymirizqFihspyPyXT9piHKYlnLXfMuxiUx7ORzlgeE,5845
28
28
  airbyte_cdk/destinations/vector_db_based/README.md,sha256=QAe8c_1Afme4r2TCE10cTSaxUE3zgCBuArSuRQqK8tA,2115
29
29
  airbyte_cdk/destinations/vector_db_based/__init__.py,sha256=eAkzwTjBbXBhJ5GfPO5I53Zgpv5xQFLRQS8n4nuyPt0,1006
30
30
  airbyte_cdk/destinations/vector_db_based/config.py,sha256=1u87eibIWLZ_wuaCvE3yp5ayguM9dGhGXbT8agmkUBg,12468
@@ -48,9 +48,9 @@ airbyte_cdk/manifest_migrations/migrations/http_requester_request_body_json_data
48
48
  airbyte_cdk/manifest_migrations/migrations/http_requester_url_base_to_url.py,sha256=EX1MVYVpoWypA28qoH48wA0SYZjGdlR8bcSixTDzfgo,1346
49
49
  airbyte_cdk/manifest_migrations/migrations/registry.yaml,sha256=F-hdapvl_vZnsI7CQsV00Rb7g7j4Nt2zaM83-Tbwgbg,956
50
50
  airbyte_cdk/manifest_migrations/migrations_registry.py,sha256=zly2fwaOxDukqC7eowzrDlvhA2v71FjW74kDzvRXhSY,2619
51
- airbyte_cdk/models/__init__.py,sha256=EUxQ9zcq5PZLsnUo30pxoB-pT4UHumtoCqlljjoqd3g,2065
52
- airbyte_cdk/models/airbyte_protocol.py,sha256=R1G1lvnBDRCZDa9_9Mgy5OEeyMXbvGWsDOnwQkImRKA,266
53
- airbyte_cdk/models/airbyte_protocol_serializers.py,sha256=G4Z5leUolK1qMOmLtyt-xlDfek875TA_RVOcom-vurQ,6144
51
+ airbyte_cdk/models/__init__.py,sha256=NjSFgkzPZd5miSliYLQP-OynA7tUrYEybdMXYmzJOmQ,2096
52
+ airbyte_cdk/models/airbyte_protocol.py,sha256=-JLm0bZtzk5Gn_e0TAin2qTUVGqppJhDzeQ-j3z2Pso,254
53
+ airbyte_cdk/models/airbyte_protocol_serializers.py,sha256=HXvMf9f1hoRYDQnMOjI84puJVNlpzfMcpfr3164RlDk,4899
54
54
  airbyte_cdk/models/connector_metadata.py,sha256=BD6CO8c3mHavxRJAcwP29sHtNNVLVSNFNQLgHOVxrwA,3229
55
55
  airbyte_cdk/models/well_known_types.py,sha256=EquepbisGPuCSrs_D7YVVnMR9-ShhUr21wnFz3COiJs,156
56
56
  airbyte_cdk/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -218,7 +218,7 @@ airbyte_cdk/sources/declarative/schema/inline_schema_loader.py,sha256=bVETE10hRs
218
218
  airbyte_cdk/sources/declarative/schema/json_file_schema_loader.py,sha256=5Wl-fqW-pVf_dxJ4yGHMAFfC4JjKHYJhqFJT1xA57F4,4177
219
219
  airbyte_cdk/sources/declarative/schema/schema_loader.py,sha256=kjt8v0N5wWKA5zyLnrDLxf1PJKdUqvQq2RVnAOAzNSY,379
220
220
  airbyte_cdk/sources/declarative/spec/__init__.py,sha256=9FYO-fVOclrwjAW4qwRTbZRVopTc9rOaauAJfThdNCQ,177
221
- airbyte_cdk/sources/declarative/spec/spec.py,sha256=SwL_pfXZgcLYLJY-MAeFMHug9oYh2tOWjgG0C3DoLOY,3602
221
+ airbyte_cdk/sources/declarative/spec/spec.py,sha256=33b1tOAZuhkIDOzoiG5CwRjJb_qBkoUECtL3iq4M-XU,3654
222
222
  airbyte_cdk/sources/declarative/stream_slicers/__init__.py,sha256=UX-cP_C-9FIFFPL9z8nuxu_rglssRsMOqQmQHN8FLB8,341
223
223
  airbyte_cdk/sources/declarative/stream_slicers/declarative_partition_generator.py,sha256=cjKGm4r438dd1GxrFHJ4aYrdzG2bkncnwaWxAwlXR3M,3585
224
224
  airbyte_cdk/sources/declarative/stream_slicers/stream_slicer.py,sha256=SOkIPBi2Wu7yxIvA15yFzUAB95a3IzA8LPq5DEqHQQc,725
@@ -301,7 +301,7 @@ airbyte_cdk/sources/http_config.py,sha256=OBZeuyFilm6NlDlBhFQvHhTWabEvZww6OHDIlZ
301
301
  airbyte_cdk/sources/http_logger.py,sha256=H93kPAujHhPmXNX0JSFG3D-SL6yEFA5PtKot9Hu3TYA,1690
302
302
  airbyte_cdk/sources/message/__init__.py,sha256=y98fzHsQBwXwp2zEa4K5mxGFqjnx9lDn9O0pTk-VS4U,395
303
303
  airbyte_cdk/sources/message/repository.py,sha256=SG7avgti_-dj8FcRHTTrhgLLGJbElv14_zIB0SH8AIc,4763
304
- airbyte_cdk/sources/source.py,sha256=KIBBH5VLEb8BZ8B9aROlfaI6OLoJqKDPMJ10jkAR7nk,3611
304
+ airbyte_cdk/sources/source.py,sha256=G9G5pzuHnXgBchHJIbUj7TPMJJoIdbrcjpACybWoEnc,3536
305
305
  airbyte_cdk/sources/specs/transfer_modes.py,sha256=sfSVO0yT6SaGKN5_TP0Nl_ftG0yPhecaBv0WkhAEXA8,932
306
306
  airbyte_cdk/sources/streams/__init__.py,sha256=8fzTKpRTnSx5PggXgQPKJzHNZUV2BCA40N-dI6JM1xI,256
307
307
  airbyte_cdk/sources/streams/availability_strategy.py,sha256=_RU4JITrxMEN36g1RDHMu0iSw0I_3yWGfo5N8_YRvOg,3247
@@ -380,7 +380,7 @@ airbyte_cdk/sql/shared/sql_processor.py,sha256=jR-hdLZsPf2sNBa_wvWKLvys8ZJ-SQCIi
380
380
  airbyte_cdk/sql/types.py,sha256=XEIhRAo_ASd0kVLBkdLf5bHiRhNple-IJrC9TibcDdY,5880
381
381
  airbyte_cdk/test/__init__.py,sha256=f_XdkOg4_63QT2k3BbKY34209lppwgw-svzfZstQEq4,199
382
382
  airbyte_cdk/test/catalog_builder.py,sha256=2_tdbk5Jk8mUXtxAN3_vhGIzQawYOZ9kg39xgoJbtl4,2963
383
- airbyte_cdk/test/entrypoint_wrapper.py,sha256=My3Km9wr2ba4FPMNHBKvRVN_HShoEyOWUMFiZ70XEps,18238
383
+ airbyte_cdk/test/entrypoint_wrapper.py,sha256=jo-Y9j9BBStT4moPMYMylvitVov6grZS_5ze_gHnGkM,18223
384
384
  airbyte_cdk/test/mock_http/__init__.py,sha256=jE5kC6CQ0OXkTqKhciDnNVZHesBFVIA2YvkdFGwva7k,322
385
385
  airbyte_cdk/test/mock_http/matcher.py,sha256=4Qj8UnJKZIs-eodshryce3SN1Ayc8GZpBETmP6hTEyc,1446
386
386
  airbyte_cdk/test/mock_http/mocker.py,sha256=XgsjMtVoeMpRELPyALgrkHFauH9H5irxrz1Kcxh2yFY,8013
@@ -424,9 +424,9 @@ airbyte_cdk/utils/slice_hasher.py,sha256=EDxgROHDbfG-QKQb59m7h_7crN1tRiawdf5uU7G
424
424
  airbyte_cdk/utils/spec_schema_transformations.py,sha256=-5HTuNsnDBAhj-oLeQXwpTGA0HdcjFOf2zTEMUTTg_Y,816
425
425
  airbyte_cdk/utils/stream_status_utils.py,sha256=ZmBoiy5HVbUEHAMrUONxZvxnvfV9CesmQJLDTAIWnWw,1171
426
426
  airbyte_cdk/utils/traced_exception.py,sha256=bc5jMk8Z3AnSL-vqsgPCNgHzWqGTKZODHSg7VHiUyj0,6256
427
- airbyte_cdk-6.60.0.post27.dev16508849855.dist-info/LICENSE.txt,sha256=Wfe61S4BaGPj404v8lrAbvhjYR68SHlkzeYrg3_bbuM,1051
428
- airbyte_cdk-6.60.0.post27.dev16508849855.dist-info/LICENSE_SHORT,sha256=aqF6D1NcESmpn-cqsxBtszTEnHKnlsp8L4x9wAh3Nxg,55
429
- airbyte_cdk-6.60.0.post27.dev16508849855.dist-info/METADATA,sha256=VFQN1lXg5LrATjTl6I_vr1c9IsrbvwdvHMbd9BplKAE,6551
430
- airbyte_cdk-6.60.0.post27.dev16508849855.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
431
- airbyte_cdk-6.60.0.post27.dev16508849855.dist-info/entry_points.txt,sha256=AKWbEkHfpzzk9nF9tqBUaw1MbvTM4mGtEzmZQm0ZWvM,139
432
- airbyte_cdk-6.60.0.post27.dev16508849855.dist-info/RECORD,,
427
+ airbyte_cdk-6.60.0.post30.dev16509083730.dist-info/LICENSE.txt,sha256=Wfe61S4BaGPj404v8lrAbvhjYR68SHlkzeYrg3_bbuM,1051
428
+ airbyte_cdk-6.60.0.post30.dev16509083730.dist-info/LICENSE_SHORT,sha256=aqF6D1NcESmpn-cqsxBtszTEnHKnlsp8L4x9wAh3Nxg,55
429
+ airbyte_cdk-6.60.0.post30.dev16509083730.dist-info/METADATA,sha256=yd9r67fQtQF_aOC9g9i-Lr4U7uxmlVOqi1IoxPi_N70,6544
430
+ airbyte_cdk-6.60.0.post30.dev16509083730.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
431
+ airbyte_cdk-6.60.0.post30.dev16509083730.dist-info/entry_points.txt,sha256=AKWbEkHfpzzk9nF9tqBUaw1MbvTM4mGtEzmZQm0ZWvM,139
432
+ airbyte_cdk-6.60.0.post30.dev16509083730.dist-info/RECORD,,