airbyte-cdk 6.52.0.dev1__py3-none-any.whl → 6.53.1__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.
@@ -4056,6 +4056,8 @@ definitions:
4056
4056
  description: The expected data type of the value. If omitted, the type will be inferred from the value provided.
4057
4057
  "$ref": "#/definitions/ValueType"
4058
4058
  create_or_update:
4059
+ title: Create or Update
4060
+ description: Determines whether to create a new path if it doesn't exist (true) or only update existing paths (false). When set to true, the resolver will create new paths in the stream template if they don't exist. When false (default), it will only update existing paths.
4059
4061
  type: boolean
4060
4062
  default: false
4061
4063
  $parameters:
@@ -6,6 +6,7 @@ import builtins
6
6
  import datetime
7
7
  import typing
8
8
  from typing import Optional, Union
9
+ from urllib.parse import quote_plus
9
10
 
10
11
  import isodate
11
12
  import pytz
@@ -182,6 +183,17 @@ def format_datetime(
182
183
  return DatetimeParser().format(dt=dt_datetime, format=format)
183
184
 
184
185
 
186
+ def sanitize_url(value: str) -> str:
187
+ """
188
+ Sanitizes a value by via urllib.parse.quote_plus
189
+
190
+ Usage:
191
+ `"{{ sanitize_url('https://example.com/path?query=value') }}"`
192
+ """
193
+ sanitization_strategy = quote_plus
194
+ return sanitization_strategy(value)
195
+
196
+
185
197
  _macros_list = [
186
198
  now_utc,
187
199
  today_utc,
@@ -193,5 +205,6 @@ _macros_list = [
193
205
  format_datetime,
194
206
  today_with_timezone,
195
207
  str_to_datetime,
208
+ sanitize_url,
196
209
  ]
197
210
  macros = {f.__name__: f for f in _macros_list}
@@ -128,7 +128,7 @@ class ManifestDeclarativeSource(DeclarativeSource):
128
128
  component_factory
129
129
  if component_factory
130
130
  else ModelToComponentFactory(
131
- emit_connector_builder_messages,
131
+ emit_connector_builder_messages=emit_connector_builder_messages,
132
132
  max_concurrent_async_job_count=source_config.get("max_concurrent_async_job_count"),
133
133
  )
134
134
  )
@@ -1478,7 +1478,11 @@ class ComponentMappingDefinition(BaseModel):
1478
1478
  description="The expected data type of the value. If omitted, the type will be inferred from the value provided.",
1479
1479
  title="Value Type",
1480
1480
  )
1481
- create_or_update: Optional[bool] = False
1481
+ create_or_update: Optional[bool] = Field(
1482
+ False,
1483
+ description="Determines whether to create a new path if it doesn't exist (true) or only update existing paths (false). When set to true, the resolver will create new paths in the stream template if they don't exist. When false (default), it will only update existing paths.",
1484
+ title="Create or Update",
1485
+ )
1482
1486
  parameters: Optional[Dict[str, Any]] = Field(None, alias="$parameters")
1483
1487
 
1484
1488
 
@@ -510,7 +510,6 @@ from airbyte_cdk.sources.declarative.retrievers import (
510
510
  AsyncRetriever,
511
511
  LazySimpleRetriever,
512
512
  SimpleRetriever,
513
- SimpleRetrieverTestReadDecorator,
514
513
  )
515
514
  from airbyte_cdk.sources.declarative.retrievers.file_uploader import (
516
515
  ConnectorBuilderFileUploader,
@@ -530,7 +529,10 @@ from airbyte_cdk.sources.declarative.schema import (
530
529
  )
531
530
  from airbyte_cdk.sources.declarative.schema.composite_schema_loader import CompositeSchemaLoader
532
531
  from airbyte_cdk.sources.declarative.spec import ConfigMigration, Spec
533
- from airbyte_cdk.sources.declarative.stream_slicers import StreamSlicer
532
+ from airbyte_cdk.sources.declarative.stream_slicers import (
533
+ StreamSlicer,
534
+ StreamSlicerTestReadDecorator,
535
+ )
534
536
  from airbyte_cdk.sources.declarative.transformations import (
535
537
  AddFields,
536
538
  RecordTransformation,
@@ -3241,6 +3243,14 @@ class ModelToComponentFactory:
3241
3243
  request_options_provider = DefaultRequestOptionsProvider(parameters={})
3242
3244
 
3243
3245
  stream_slicer = stream_slicer or SinglePartitionRouter(parameters={})
3246
+ if self._should_limit_slices_fetched():
3247
+ stream_slicer = cast(
3248
+ StreamSlicer,
3249
+ StreamSlicerTestReadDecorator(
3250
+ wrapped_slicer=stream_slicer,
3251
+ maximum_number_of_slices=self._limit_slices_fetched or 5,
3252
+ ),
3253
+ )
3244
3254
 
3245
3255
  cursor_used_for_stop_condition = cursor if stop_condition_on_cursor else None
3246
3256
  paginator = (
@@ -3299,22 +3309,6 @@ class ModelToComponentFactory:
3299
3309
  parameters=model.parameters or {},
3300
3310
  )
3301
3311
 
3302
- if self._limit_slices_fetched or self._emit_connector_builder_messages:
3303
- return SimpleRetrieverTestReadDecorator(
3304
- name=name,
3305
- paginator=paginator,
3306
- primary_key=primary_key,
3307
- requester=requester,
3308
- record_selector=record_selector,
3309
- stream_slicer=stream_slicer,
3310
- request_option_provider=request_options_provider,
3311
- cursor=cursor,
3312
- config=config,
3313
- maximum_number_of_slices=self._limit_slices_fetched or 5,
3314
- ignore_stream_slicer_parameters_on_paginated_requests=ignore_stream_slicer_parameters_on_paginated_requests,
3315
- log_formatter=log_formatter,
3316
- parameters=model.parameters or {},
3317
- )
3318
3312
  return SimpleRetriever(
3319
3313
  name=name,
3320
3314
  paginator=paginator,
@@ -3327,9 +3321,35 @@ class ModelToComponentFactory:
3327
3321
  config=config,
3328
3322
  ignore_stream_slicer_parameters_on_paginated_requests=ignore_stream_slicer_parameters_on_paginated_requests,
3329
3323
  additional_query_properties=query_properties,
3324
+ log_formatter=self._get_log_formatter(log_formatter, name),
3330
3325
  parameters=model.parameters or {},
3331
3326
  )
3332
3327
 
3328
+ def _get_log_formatter(
3329
+ self, log_formatter: Callable[[Response], Any] | None, name: str
3330
+ ) -> Callable[[Response], Any] | None:
3331
+ if self._should_limit_slices_fetched():
3332
+ return (
3333
+ (
3334
+ lambda response: format_http_message(
3335
+ response,
3336
+ f"Stream '{name}' request",
3337
+ f"Request performed in order to extract records for stream '{name}'",
3338
+ name,
3339
+ )
3340
+ )
3341
+ if not log_formatter
3342
+ else log_formatter
3343
+ )
3344
+ return None
3345
+
3346
+ def _should_limit_slices_fetched(self) -> bool:
3347
+ """
3348
+ Returns True if the number of slices fetched should be limited, False otherwise.
3349
+ This is used to limit the number of slices fetched during tests.
3350
+ """
3351
+ return bool(self._limit_slices_fetched or self._emit_connector_builder_messages)
3352
+
3333
3353
  @staticmethod
3334
3354
  def _query_properties_in_request_parameters(
3335
3355
  requester: Union[HttpRequesterModel, CustomRequesterModel],
@@ -3420,7 +3440,7 @@ class ModelToComponentFactory:
3420
3440
  transformations: List[RecordTransformation],
3421
3441
  **kwargs: Any,
3422
3442
  ) -> AsyncRetriever:
3423
- def _get_download_retriever() -> SimpleRetrieverTestReadDecorator | SimpleRetriever:
3443
+ def _get_download_retriever() -> SimpleRetriever:
3424
3444
  record_selector = RecordSelector(
3425
3445
  extractor=download_extractor,
3426
3446
  name=name,
@@ -3440,19 +3460,6 @@ class ModelToComponentFactory:
3440
3460
  if model.download_paginator
3441
3461
  else NoPagination(parameters={})
3442
3462
  )
3443
- maximum_number_of_slices = self._limit_slices_fetched or 5
3444
-
3445
- if self._limit_slices_fetched or self._emit_connector_builder_messages:
3446
- return SimpleRetrieverTestReadDecorator(
3447
- requester=download_requester,
3448
- record_selector=record_selector,
3449
- primary_key=None,
3450
- name=job_download_components_name,
3451
- paginator=paginator,
3452
- config=config,
3453
- parameters={},
3454
- maximum_number_of_slices=maximum_number_of_slices,
3455
- )
3456
3463
 
3457
3464
  return SimpleRetriever(
3458
3465
  requester=download_requester,
@@ -3498,7 +3505,17 @@ class ModelToComponentFactory:
3498
3505
  transformations=transformations,
3499
3506
  client_side_incremental_sync=client_side_incremental_sync,
3500
3507
  )
3508
+
3501
3509
  stream_slicer = stream_slicer or SinglePartitionRouter(parameters={})
3510
+ if self._should_limit_slices_fetched():
3511
+ stream_slicer = cast(
3512
+ StreamSlicer,
3513
+ StreamSlicerTestReadDecorator(
3514
+ wrapped_slicer=stream_slicer,
3515
+ maximum_number_of_slices=self._limit_slices_fetched or 5,
3516
+ ),
3517
+ )
3518
+
3502
3519
  creation_requester = self._create_component_from_model(
3503
3520
  model=model.creation_requester,
3504
3521
  decoder=decoder,
@@ -7,13 +7,11 @@ from airbyte_cdk.sources.declarative.retrievers.retriever import Retriever
7
7
  from airbyte_cdk.sources.declarative.retrievers.simple_retriever import (
8
8
  LazySimpleRetriever,
9
9
  SimpleRetriever,
10
- SimpleRetrieverTestReadDecorator,
11
10
  )
12
11
 
13
12
  __all__ = [
14
13
  "Retriever",
15
14
  "SimpleRetriever",
16
- "SimpleRetrieverTestReadDecorator",
17
15
  "AsyncRetriever",
18
16
  "LazySimpleRetriever",
19
17
  ]
@@ -645,40 +645,6 @@ def _deep_merge(
645
645
  target[key] = value
646
646
 
647
647
 
648
- @dataclass
649
- class SimpleRetrieverTestReadDecorator(SimpleRetriever):
650
- """
651
- In some cases, we want to limit the number of requests that are made to the backend source. This class allows for limiting the number of
652
- slices that are queried throughout a read command.
653
- """
654
-
655
- maximum_number_of_slices: int = 5
656
-
657
- def __post_init__(self, options: Mapping[str, Any]) -> None:
658
- super().__post_init__(options)
659
- self.log_formatter = (
660
- (
661
- lambda response: format_http_message(
662
- response,
663
- f"Stream '{self.name}' request",
664
- f"Request performed in order to extract records for stream '{self.name}'",
665
- self.name,
666
- )
667
- )
668
- if not self.log_formatter
669
- else self.log_formatter
670
- )
671
-
672
- if self.maximum_number_of_slices and self.maximum_number_of_slices < 1:
673
- raise ValueError(
674
- f"The maximum number of slices on a test read needs to be strictly positive. Got {self.maximum_number_of_slices}"
675
- )
676
-
677
- # stream_slices is defined with arguments on http stream and fixing this has a long tail of dependencies. Will be resolved by the decoupling of http stream and simple retriever
678
- def stream_slices(self) -> Iterable[Optional[StreamSlice]]: # type: ignore
679
- return islice(super().stream_slices(), self.maximum_number_of_slices)
680
-
681
-
682
648
  @deprecated(
683
649
  "This class is experimental. Use at your own risk.",
684
650
  category=ExperimentalClassWarning,
@@ -3,5 +3,8 @@
3
3
  #
4
4
 
5
5
  from airbyte_cdk.sources.declarative.stream_slicers.stream_slicer import StreamSlicer
6
+ from airbyte_cdk.sources.declarative.stream_slicers.stream_slicer_test_read_decorator import (
7
+ StreamSlicerTestReadDecorator,
8
+ )
6
9
 
7
- __all__ = ["StreamSlicer"]
10
+ __all__ = ["StreamSlicer", "StreamSlicerTestReadDecorator"]
@@ -0,0 +1,28 @@
1
+ #
2
+ # Copyright (c) 2025 Airbyte, Inc., all rights reserved.
3
+ #
4
+
5
+ from dataclasses import dataclass
6
+ from itertools import islice
7
+ from typing import Any, Iterable, Mapping, Optional, Union
8
+
9
+ from airbyte_cdk.sources.streams.concurrent.partitions.stream_slicer import StreamSlicer
10
+ from airbyte_cdk.sources.types import StreamSlice, StreamState
11
+
12
+
13
+ @dataclass
14
+ class StreamSlicerTestReadDecorator(StreamSlicer):
15
+ """
16
+ In some cases, we want to limit the number of requests that are made to the backend source. This class allows for limiting the number of
17
+ slices that are queried throughout a read command.
18
+ """
19
+
20
+ wrapped_slicer: StreamSlicer
21
+ maximum_number_of_slices: int = 5
22
+
23
+ def stream_slices(self) -> Iterable[StreamSlice]:
24
+ return islice(self.wrapped_slicer.stream_slices(), self.maximum_number_of_slices)
25
+
26
+ def __getattr__(self, name: str) -> Any:
27
+ # Delegate everything else to the wrapped object
28
+ return getattr(self.wrapped_slicer, name)
@@ -1,12 +1,30 @@
1
1
  # Copyright (c) 2024 Airbyte, Inc., all rights reserved.
2
2
 
3
- from abc import ABC, abstractmethod
4
- from typing import Iterable
3
+ from abc import ABC, ABCMeta, abstractmethod
4
+ from typing import Any, Iterable
5
5
 
6
6
  from airbyte_cdk.sources.types import StreamSlice
7
7
 
8
8
 
9
- class StreamSlicer(ABC):
9
+ class StreamSlicerMeta(ABCMeta):
10
+ """
11
+ Metaclass for wrapper scenario that allows it to be used as a type check for StreamSlicer.
12
+ This is necessary because StreamSlicerTestReadDecorator wraps a StreamSlicer and we want to be able to check
13
+ if an instance is a StreamSlicer, even if it is wrapped in a StreamSlicerTestReadDecorator.
14
+
15
+ For example in ConcurrentDeclarativeSource, we do things like:
16
+ isinstance(declarative_stream.retriever.stream_slicer,(GlobalSubstreamCursor, PerPartitionWithGlobalCursor))
17
+ """
18
+
19
+ def __instancecheck__(cls, instance: Any) -> bool:
20
+ # Check if it's our wrapper with matching wrapped class
21
+ if hasattr(instance, "wrapped_slicer"):
22
+ return isinstance(instance.wrapped_slicer, cls)
23
+
24
+ return super().__instancecheck__(instance)
25
+
26
+
27
+ class StreamSlicer(ABC, metaclass=StreamSlicerMeta):
10
28
  """
11
29
  Slices the stream into chunks that can be fetched independently. Slices enable state checkpointing and data retrieval parallelization.
12
30
  """
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: airbyte-cdk
3
- Version: 6.52.0.dev1
3
+ Version: 6.53.1
4
4
  Summary: A framework for writing Airbyte Connectors.
5
5
  Home-page: https://airbyte.com
6
6
  License: MIT
@@ -89,7 +89,7 @@ airbyte_cdk/sources/declarative/concurrent_declarative_source.py,sha256=OKor1mDD
89
89
  airbyte_cdk/sources/declarative/datetime/__init__.py,sha256=4Hw-PX1-VgESLF16cDdvuYCzGJtHntThLF4qIiULWeo,61
90
90
  airbyte_cdk/sources/declarative/datetime/datetime_parser.py,sha256=_zGNGq31RNy_0QBLt_EcTvgPyhj7urPdx6oA3M5-r3o,3150
91
91
  airbyte_cdk/sources/declarative/datetime/min_max_datetime.py,sha256=0BHBtDNQZfvwM45-tY5pNlTcKAFSGGNxemoi0Jic-0E,5785
92
- airbyte_cdk/sources/declarative/declarative_component_schema.yaml,sha256=LklBDA_hfKidQKWp4y8NCYBx4HkBVFAxhoTexBB2AU4,177075
92
+ airbyte_cdk/sources/declarative/declarative_component_schema.yaml,sha256=BQ0JKz4K8BKCpKp3C2IumJj2y2nv29lheeJUxPX6gXU,177389
93
93
  airbyte_cdk/sources/declarative/declarative_source.py,sha256=qmyMnnet92eGc3C22yBtpvD5UZjqdhsAafP_zxI5wp8,1814
94
94
  airbyte_cdk/sources/declarative/declarative_stream.py,sha256=dCRlddBUSaJmBNBz1pSO1r2rTw8AP5d2_vlmIeGs2gg,10767
95
95
  airbyte_cdk/sources/declarative/decoders/__init__.py,sha256=JHb_0d3SE6kNY10mxA5YBEKPeSbsWYjByq1gUQxepoE,953
@@ -126,21 +126,21 @@ airbyte_cdk/sources/declarative/interpolation/interpolated_nested_mapping.py,sha
126
126
  airbyte_cdk/sources/declarative/interpolation/interpolated_string.py,sha256=CQkHqGlfa87G6VYMtBAQWin7ECKpfMdrDcg0JO5_rhc,3212
127
127
  airbyte_cdk/sources/declarative/interpolation/interpolation.py,sha256=9IoeuWam3L6GyN10L6U8xNWXmkt9cnahSDNkez1OmFY,982
128
128
  airbyte_cdk/sources/declarative/interpolation/jinja.py,sha256=UQeuS4Vpyp4hlOn-R3tRyeBX0e9IoV6jQ6gH-Jz8lY0,7182
129
- airbyte_cdk/sources/declarative/interpolation/macros.py,sha256=UYSJ5gW7TkHALYnNvUnRP3RlyGwGuRMObF3BHuNzjJM,5320
130
- airbyte_cdk/sources/declarative/manifest_declarative_source.py,sha256=aS_YxqUWgxyfyzwAZpV736RFg-m5a0sn-V7PPMBGVr4,24660
129
+ airbyte_cdk/sources/declarative/interpolation/macros.py,sha256=xRcmjape4_WGmKMJpmBsKY0k4OHJDM46Hv3V-dlSz3w,5640
130
+ airbyte_cdk/sources/declarative/manifest_declarative_source.py,sha256=ciXtM7Qhus170ZwP8B9Ac4VScX2FPBYvlbZRv_r376U,24692
131
131
  airbyte_cdk/sources/declarative/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
132
132
  airbyte_cdk/sources/declarative/migrations/legacy_to_per_partition_state_migration.py,sha256=V2lpYE9LJKvz6BUViHk4vaRGndxNABmPbDCtyYdkqaE,4013
133
133
  airbyte_cdk/sources/declarative/migrations/state_migration.py,sha256=KWPjealMLKSMtajXgkdGgKg7EmTLR-CqqD7UIh0-eDU,794
134
134
  airbyte_cdk/sources/declarative/models/__init__.py,sha256=nUFxNCiKeYRVXuZEKA7GD-lTHxsiKcQ8FitZjKhPIvE,100
135
135
  airbyte_cdk/sources/declarative/models/base_model_with_deprecations.py,sha256=Imnj3yef0aqRdLfaUxkIYISUb8YkiPrRH_wBd-x8HjM,5999
136
- airbyte_cdk/sources/declarative/models/declarative_component_schema.py,sha256=ooVQMvPd4Dd-0XHjOXUFHdbSMe4PaP9-UjQ23ulRxz4,125426
136
+ airbyte_cdk/sources/declarative/models/declarative_component_schema.py,sha256=XVfBPgNBEEkv8u6Bj1JRiXsQWa_QoipPHFxND_YsxDY,125766
137
137
  airbyte_cdk/sources/declarative/parsers/__init__.py,sha256=ZnqYNxHsKCgO38IwB34RQyRMXTs4GTvlRi3ImKnIioo,61
138
138
  airbyte_cdk/sources/declarative/parsers/custom_code_compiler.py,sha256=nlVvHC511NUyDEEIRBkoeDTAvLqKNp-hRy8D19z8tdk,5941
139
139
  airbyte_cdk/sources/declarative/parsers/custom_exceptions.py,sha256=wnRUP0Xeru9Rbu5OexXSDN9QWDo8YU4tT9M2LDVOgGA,802
140
140
  airbyte_cdk/sources/declarative/parsers/manifest_component_transformer.py,sha256=2UdpCz3yi7ISZTyqkQXSSy3dMxeyOWqV7OlAS5b9GVg,11568
141
141
  airbyte_cdk/sources/declarative/parsers/manifest_normalizer.py,sha256=laBy7ebjA-PiNwc-50U4FHvMqS_mmHvnabxgFs4CjGw,17069
142
142
  airbyte_cdk/sources/declarative/parsers/manifest_reference_resolver.py,sha256=pJmg78vqE5VfUrF_KJnWjucQ4k9IWFULeAxHCowrHXE,6806
143
- airbyte_cdk/sources/declarative/parsers/model_to_component_factory.py,sha256=7-q8icBPnEHbPa0vonz5KjsalYrrqJasIcLXK1TITlc,174730
143
+ airbyte_cdk/sources/declarative/parsers/model_to_component_factory.py,sha256=KdOz6g57PIyXlUeVi4lYJsm2LTUxbMMpgg1wS4KUjEo,174974
144
144
  airbyte_cdk/sources/declarative/partition_routers/__init__.py,sha256=TBC9AkGaUqHm2IKHMPN6punBIcY5tWGULowcLoAVkfw,1109
145
145
  airbyte_cdk/sources/declarative/partition_routers/async_job_partition_router.py,sha256=VelO7zKqKtzMJ35jyFeg0ypJLQC0plqqIBNXoBW1G2E,3001
146
146
  airbyte_cdk/sources/declarative/partition_routers/cartesian_product_stream_slicer.py,sha256=c5cuVFM6NFkuQqG8Z5IwkBuwDrvXZN1CunUOM_L0ezg,6892
@@ -197,7 +197,7 @@ airbyte_cdk/sources/declarative/resolvers/__init__.py,sha256=NiDcz5qi8HPsfX94MUm
197
197
  airbyte_cdk/sources/declarative/resolvers/components_resolver.py,sha256=oJIpy66ep8n-QOc8GwpllApTRcl4QtQhkTw5fWWra2w,2026
198
198
  airbyte_cdk/sources/declarative/resolvers/config_components_resolver.py,sha256=sD3N7nmqDjLsau8P2DE7DYOHdFTYjC_2nIB6454BNYk,7556
199
199
  airbyte_cdk/sources/declarative/resolvers/http_components_resolver.py,sha256=AiojNs8wItJFrENZBFUaDvau3sgwudO6Wkra36upSPo,4639
200
- airbyte_cdk/sources/declarative/retrievers/__init__.py,sha256=nQepwG_RfW53sgwvK5dLPqfCx0VjsQ83nYoPjBMAaLM,527
200
+ airbyte_cdk/sources/declarative/retrievers/__init__.py,sha256=LQQspOQS9oyOx9cGnRIz1mq-8DZCBysyDJDPqjy1HvM,449
201
201
  airbyte_cdk/sources/declarative/retrievers/async_retriever.py,sha256=6oZtnCHm9NdDvjTSrVwPQOXGSdETSIR7eWH2vFjM7jI,4855
202
202
  airbyte_cdk/sources/declarative/retrievers/file_uploader/__init__.py,sha256=ovs0oZGPEEw-V4asqr0D1Xty2u7tR8ADhRuHNgXGuWQ,490
203
203
  airbyte_cdk/sources/declarative/retrievers/file_uploader/connector_builder_file_uploader.py,sha256=wHGnluTJ6HVbCkSaNNQQN2t9ZzhaFGoo_pzXTz54gBY,878
@@ -207,7 +207,7 @@ airbyte_cdk/sources/declarative/retrievers/file_uploader/file_writer.py,sha256=V
207
207
  airbyte_cdk/sources/declarative/retrievers/file_uploader/local_file_system_file_writer.py,sha256=jLpdonre1UHfbjGSD5AK_T0codLABJByTvbqepDZtEQ,422
208
208
  airbyte_cdk/sources/declarative/retrievers/file_uploader/noop_file_writer.py,sha256=1yfimzxm09d2j605cu_HhiYVDNVL1rUMi3vs_jYlIyY,330
209
209
  airbyte_cdk/sources/declarative/retrievers/retriever.py,sha256=XPLs593Xv8c5cKMc37XzUAYmzlXd1a7eSsspM-CMuWA,1696
210
- airbyte_cdk/sources/declarative/retrievers/simple_retriever.py,sha256=Ui7V_etQ-sI4GCFJqgt1bn9c5BA21dyzCJwqnKZMYTc,29876
210
+ airbyte_cdk/sources/declarative/retrievers/simple_retriever.py,sha256=ma6ZkDdf89ECdT1Lg0Y5p0VjzjwJG4JVC_bz8KbfI7I,28431
211
211
  airbyte_cdk/sources/declarative/schema/__init__.py,sha256=xU45UvM5O4c1PSM13UHpCdh5hpW3HXy9vRRGEiAC1rg,795
212
212
  airbyte_cdk/sources/declarative/schema/composite_schema_loader.py,sha256=ymGbvxS_QyGc4nnjEyRo5ch8bVedELO41PAUxKXZyMw,1113
213
213
  airbyte_cdk/sources/declarative/schema/default_schema_loader.py,sha256=UnbzlExmwoQiVV8zDg4lhAEaqA_0pRfwbMRe8yqOuWk,1834
@@ -217,9 +217,10 @@ airbyte_cdk/sources/declarative/schema/json_file_schema_loader.py,sha256=5Wl-fqW
217
217
  airbyte_cdk/sources/declarative/schema/schema_loader.py,sha256=kjt8v0N5wWKA5zyLnrDLxf1PJKdUqvQq2RVnAOAzNSY,379
218
218
  airbyte_cdk/sources/declarative/spec/__init__.py,sha256=9FYO-fVOclrwjAW4qwRTbZRVopTc9rOaauAJfThdNCQ,177
219
219
  airbyte_cdk/sources/declarative/spec/spec.py,sha256=SwL_pfXZgcLYLJY-MAeFMHug9oYh2tOWjgG0C3DoLOY,3602
220
- airbyte_cdk/sources/declarative/stream_slicers/__init__.py,sha256=sI9vhc95RwJYOnA0VKjcbtKgFcmAbWjhdWBXFbAijOs,176
220
+ airbyte_cdk/sources/declarative/stream_slicers/__init__.py,sha256=UX-cP_C-9FIFFPL9z8nuxu_rglssRsMOqQmQHN8FLB8,341
221
221
  airbyte_cdk/sources/declarative/stream_slicers/declarative_partition_generator.py,sha256=cjKGm4r438dd1GxrFHJ4aYrdzG2bkncnwaWxAwlXR3M,3585
222
222
  airbyte_cdk/sources/declarative/stream_slicers/stream_slicer.py,sha256=SOkIPBi2Wu7yxIvA15yFzUAB95a3IzA8LPq5DEqHQQc,725
223
+ airbyte_cdk/sources/declarative/stream_slicers/stream_slicer_test_read_decorator.py,sha256=aUSleOw9elq3-5TaDUvp7H8W-2qUKqpr__kaJd8-ZFA,983
223
224
  airbyte_cdk/sources/declarative/transformations/__init__.py,sha256=CPJ8TlMpiUmvG3624VYu_NfTzxwKcfBjM2Q2wJ7fkSA,919
224
225
  airbyte_cdk/sources/declarative/transformations/add_fields.py,sha256=Eg1jQtRObgzxbtySTQs5uEZIjEklsoHFxYSPf78x6Ng,5420
225
226
  airbyte_cdk/sources/declarative/transformations/config_transformations/__init__.py,sha256=GaU3ezFa5opeDgdlNohX6TXsWJlOD2jOfJXQWeQCh7E,263
@@ -326,7 +327,7 @@ airbyte_cdk/sources/streams/concurrent/partition_reader.py,sha256=0TIrjbTzYJGdA0
326
327
  airbyte_cdk/sources/streams/concurrent/partitions/__init__.py,sha256=4Hw-PX1-VgESLF16cDdvuYCzGJtHntThLF4qIiULWeo,61
327
328
  airbyte_cdk/sources/streams/concurrent/partitions/partition.py,sha256=CmaRcKn8y118No3qvbRV9DBeAUKv17lrVgloR4Y9TwU,1490
328
329
  airbyte_cdk/sources/streams/concurrent/partitions/partition_generator.py,sha256=_ymkkBr71_qt1fW0_MUqw96OfNBkeJngXQ09yolEDHw,441
329
- airbyte_cdk/sources/streams/concurrent/partitions/stream_slicer.py,sha256=nbdkkHoN0NFeSs7YUFfzY1Lg5Jrt8fWY_ln3YrhY-Ko,544
330
+ airbyte_cdk/sources/streams/concurrent/partitions/stream_slicer.py,sha256=zQPikLIt0yhP9EwZaPglRTIqFCauo4pSsJk_7kYq9Aw,1406
330
331
  airbyte_cdk/sources/streams/concurrent/partitions/types.py,sha256=frPVvHtY7vLxpGEbMQzNvF1Y52ZVyct9f1DDhGoRjwY,1166
331
332
  airbyte_cdk/sources/streams/concurrent/state_converters/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
332
333
  airbyte_cdk/sources/streams/concurrent/state_converters/abstract_stream_state_converter.py,sha256=CCxCbgvUugxiWpHX8-dkkJHWKDjL5iwiIbOUj8KIJ9c,7079
@@ -419,9 +420,9 @@ airbyte_cdk/utils/slice_hasher.py,sha256=EDxgROHDbfG-QKQb59m7h_7crN1tRiawdf5uU7G
419
420
  airbyte_cdk/utils/spec_schema_transformations.py,sha256=-5HTuNsnDBAhj-oLeQXwpTGA0HdcjFOf2zTEMUTTg_Y,816
420
421
  airbyte_cdk/utils/stream_status_utils.py,sha256=ZmBoiy5HVbUEHAMrUONxZvxnvfV9CesmQJLDTAIWnWw,1171
421
422
  airbyte_cdk/utils/traced_exception.py,sha256=C8uIBuCL_E4WnBAOPSxBicD06JAldoN9fGsQDp463OY,6292
422
- airbyte_cdk-6.52.0.dev1.dist-info/LICENSE.txt,sha256=Wfe61S4BaGPj404v8lrAbvhjYR68SHlkzeYrg3_bbuM,1051
423
- airbyte_cdk-6.52.0.dev1.dist-info/LICENSE_SHORT,sha256=aqF6D1NcESmpn-cqsxBtszTEnHKnlsp8L4x9wAh3Nxg,55
424
- airbyte_cdk-6.52.0.dev1.dist-info/METADATA,sha256=Atlb-SeF8vrGZIBbNcskhXmEpQBqFgfrFjM41G23cps,6348
425
- airbyte_cdk-6.52.0.dev1.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
426
- airbyte_cdk-6.52.0.dev1.dist-info/entry_points.txt,sha256=AKWbEkHfpzzk9nF9tqBUaw1MbvTM4mGtEzmZQm0ZWvM,139
427
- airbyte_cdk-6.52.0.dev1.dist-info/RECORD,,
423
+ airbyte_cdk-6.53.1.dist-info/LICENSE.txt,sha256=Wfe61S4BaGPj404v8lrAbvhjYR68SHlkzeYrg3_bbuM,1051
424
+ airbyte_cdk-6.53.1.dist-info/LICENSE_SHORT,sha256=aqF6D1NcESmpn-cqsxBtszTEnHKnlsp8L4x9wAh3Nxg,55
425
+ airbyte_cdk-6.53.1.dist-info/METADATA,sha256=PXRi9Y27Ppw4cM1C0bmAeUW0XV4w9JhF3yBS77PzhlQ,6343
426
+ airbyte_cdk-6.53.1.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
427
+ airbyte_cdk-6.53.1.dist-info/entry_points.txt,sha256=AKWbEkHfpzzk9nF9tqBUaw1MbvTM4mGtEzmZQm0ZWvM,139
428
+ airbyte_cdk-6.53.1.dist-info/RECORD,,