airbyte-cdk 6.13.1.dev4109__py3-none-any.whl → 6.14.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.
Files changed (38) hide show
  1. airbyte_cdk/entrypoint.py +1 -13
  2. airbyte_cdk/sources/declarative/auth/oauth.py +0 -26
  3. airbyte_cdk/sources/declarative/concurrent_declarative_source.py +51 -24
  4. airbyte_cdk/sources/declarative/declarative_component_schema.yaml +20 -128
  5. airbyte_cdk/sources/declarative/extractors/__init__.py +0 -2
  6. airbyte_cdk/sources/declarative/extractors/record_selector.py +7 -5
  7. airbyte_cdk/sources/declarative/models/declarative_component_schema.py +11 -97
  8. airbyte_cdk/sources/declarative/parsers/model_to_component_factory.py +14 -71
  9. airbyte_cdk/sources/declarative/requesters/http_job_repository.py +4 -33
  10. airbyte_cdk/sources/declarative/requesters/paginators/default_paginator.py +35 -52
  11. airbyte_cdk/sources/declarative/requesters/paginators/no_pagination.py +7 -10
  12. airbyte_cdk/sources/declarative/requesters/paginators/paginator.py +4 -9
  13. airbyte_cdk/sources/declarative/requesters/paginators/strategies/cursor_pagination_strategy.py +6 -11
  14. airbyte_cdk/sources/declarative/requesters/paginators/strategies/offset_increment.py +13 -13
  15. airbyte_cdk/sources/declarative/requesters/paginators/strategies/page_increment.py +13 -14
  16. airbyte_cdk/sources/declarative/requesters/paginators/strategies/pagination_strategy.py +7 -6
  17. airbyte_cdk/sources/declarative/requesters/paginators/strategies/stop_condition.py +10 -10
  18. airbyte_cdk/sources/declarative/retrievers/async_retriever.py +4 -1
  19. airbyte_cdk/sources/declarative/retrievers/simple_retriever.py +64 -71
  20. airbyte_cdk/sources/declarative/stream_slicers/declarative_partition_generator.py +4 -4
  21. airbyte_cdk/sources/declarative/transformations/flatten_fields.py +1 -3
  22. airbyte_cdk/sources/file_based/config/abstract_file_based_spec.py +0 -11
  23. airbyte_cdk/sources/file_based/exceptions.py +0 -34
  24. airbyte_cdk/sources/file_based/file_based_source.py +5 -28
  25. airbyte_cdk/sources/file_based/file_based_stream_reader.py +4 -18
  26. airbyte_cdk/sources/file_based/file_types/unstructured_parser.py +2 -25
  27. airbyte_cdk/sources/file_based/stream/default_file_based_stream.py +2 -30
  28. airbyte_cdk/sources/streams/http/requests_native_auth/abstract_oauth.py +4 -20
  29. airbyte_cdk/sources/streams/http/requests_native_auth/oauth.py +4 -34
  30. airbyte_cdk/sources/types.py +0 -3
  31. {airbyte_cdk-6.13.1.dev4109.dist-info → airbyte_cdk-6.14.0.dist-info}/METADATA +2 -2
  32. {airbyte_cdk-6.13.1.dev4109.dist-info → airbyte_cdk-6.14.0.dist-info}/RECORD +35 -38
  33. {airbyte_cdk-6.13.1.dev4109.dist-info → airbyte_cdk-6.14.0.dist-info}/WHEEL +1 -1
  34. airbyte_cdk/sources/declarative/extractors/type_transformer.py +0 -55
  35. airbyte_cdk/sources/declarative/requesters/README.md +0 -57
  36. airbyte_cdk/sources/declarative/transformations/keys_replace_transformation.py +0 -61
  37. {airbyte_cdk-6.13.1.dev4109.dist-info → airbyte_cdk-6.14.0.dist-info}/LICENSE.txt +0 -0
  38. {airbyte_cdk-6.13.1.dev4109.dist-info → airbyte_cdk-6.14.0.dist-info}/entry_points.txt +0 -0
@@ -30,16 +30,12 @@ class Oauth2Authenticator(AbstractOauth2Authenticator):
30
30
  client_id: str,
31
31
  client_secret: str,
32
32
  refresh_token: str,
33
- client_id_name: str = "client_id",
34
- client_secret_name: str = "client_secret",
35
- refresh_token_name: str = "refresh_token",
36
33
  scopes: List[str] | None = None,
37
34
  token_expiry_date: pendulum.DateTime | None = None,
38
35
  token_expiry_date_format: str | None = None,
39
36
  access_token_name: str = "access_token",
40
37
  expires_in_name: str = "expires_in",
41
38
  refresh_request_body: Mapping[str, Any] | None = None,
42
- grant_type_name: str = "grant_type",
43
39
  grant_type: str = "refresh_token",
44
40
  token_expiry_is_time_of_expiration: bool = False,
45
41
  refresh_token_error_status_codes: Tuple[int, ...] = (),
@@ -47,17 +43,13 @@ class Oauth2Authenticator(AbstractOauth2Authenticator):
47
43
  refresh_token_error_values: Tuple[str, ...] = (),
48
44
  ):
49
45
  self._token_refresh_endpoint = token_refresh_endpoint
50
- self._client_secret_name = client_secret_name
51
46
  self._client_secret = client_secret
52
- self._client_id_name = client_id_name
53
47
  self._client_id = client_id
54
- self._refresh_token_name = refresh_token_name
55
48
  self._refresh_token = refresh_token
56
49
  self._scopes = scopes
57
50
  self._access_token_name = access_token_name
58
51
  self._expires_in_name = expires_in_name
59
52
  self._refresh_request_body = refresh_request_body
60
- self._grant_type_name = grant_type_name
61
53
  self._grant_type = grant_type
62
54
 
63
55
  self._token_expiry_date = token_expiry_date or pendulum.now().subtract(days=1) # type: ignore [no-untyped-call]
@@ -71,21 +63,12 @@ class Oauth2Authenticator(AbstractOauth2Authenticator):
71
63
  def get_token_refresh_endpoint(self) -> str:
72
64
  return self._token_refresh_endpoint
73
65
 
74
- def get_client_id_name(self) -> str:
75
- return self._client_id_name
76
-
77
66
  def get_client_id(self) -> str:
78
67
  return self._client_id
79
68
 
80
- def get_client_secret_name(self) -> str:
81
- return self._client_secret_name
82
-
83
69
  def get_client_secret(self) -> str:
84
70
  return self._client_secret
85
71
 
86
- def get_refresh_token_name(self) -> str:
87
- return self._refresh_token_name
88
-
89
72
  def get_refresh_token(self) -> str:
90
73
  return self._refresh_token
91
74
 
@@ -101,9 +84,6 @@ class Oauth2Authenticator(AbstractOauth2Authenticator):
101
84
  def get_refresh_request_body(self) -> Mapping[str, Any]:
102
85
  return self._refresh_request_body # type: ignore [return-value]
103
86
 
104
- def get_grant_type_name(self) -> str:
105
- return self._grant_type_name
106
-
107
87
  def get_grant_type(self) -> str:
108
88
  return self._grant_type
109
89
 
@@ -149,11 +129,8 @@ class SingleUseRefreshTokenOauth2Authenticator(Oauth2Authenticator):
149
129
  expires_in_name: str = "expires_in",
150
130
  refresh_token_name: str = "refresh_token",
151
131
  refresh_request_body: Mapping[str, Any] | None = None,
152
- grant_type_name: str = "grant_type",
153
132
  grant_type: str = "refresh_token",
154
- client_id_name: str = "client_id",
155
133
  client_id: Optional[str] = None,
156
- client_secret_name: str = "client_secret",
157
134
  client_secret: Optional[str] = None,
158
135
  access_token_config_path: Sequence[str] = ("credentials", "access_token"),
159
136
  refresh_token_config_path: Sequence[str] = ("credentials", "refresh_token"),
@@ -197,30 +174,23 @@ class SingleUseRefreshTokenOauth2Authenticator(Oauth2Authenticator):
197
174
  ("credentials", "client_secret"),
198
175
  )
199
176
  )
200
- self._client_id_name = client_id_name
201
- self._client_secret_name = client_secret_name
202
177
  self._access_token_config_path = access_token_config_path
203
178
  self._refresh_token_config_path = refresh_token_config_path
204
179
  self._token_expiry_date_config_path = token_expiry_date_config_path
205
180
  self._token_expiry_date_format = token_expiry_date_format
206
181
  self._refresh_token_name = refresh_token_name
207
- self._grant_type_name = grant_type_name
208
182
  self._connector_config = connector_config
209
183
  self.__message_repository = message_repository
210
184
  super().__init__(
211
- token_refresh_endpoint=token_refresh_endpoint,
212
- client_id_name=self._client_id_name,
213
- client_id=self.get_client_id(),
214
- client_secret_name=self._client_secret_name,
215
- client_secret=self.get_client_secret(),
216
- refresh_token=self.get_refresh_token(),
217
- refresh_token_name=self._refresh_token_name,
185
+ token_refresh_endpoint,
186
+ self.get_client_id(),
187
+ self.get_client_secret(),
188
+ self.get_refresh_token(),
218
189
  scopes=scopes,
219
190
  token_expiry_date=self.get_token_expiry_date(),
220
191
  access_token_name=access_token_name,
221
192
  expires_in_name=expires_in_name,
222
193
  refresh_request_body=refresh_request_body,
223
- grant_type_name=self._grant_type_name,
224
194
  grant_type=grant_type,
225
195
  token_expiry_date_format=token_expiry_date_format,
226
196
  token_expiry_is_time_of_expiration=token_expiry_is_time_of_expiration,
@@ -152,6 +152,3 @@ class StreamSlice(Mapping[str, Any]):
152
152
 
153
153
  def __hash__(self) -> int:
154
154
  return hash(orjson.dumps(self._stream_slice, option=orjson.OPT_SORT_KEYS))
155
-
156
- def __bool__(self) -> bool:
157
- return bool(self._stream_slice) or bool(self._extra_fields)
@@ -1,7 +1,8 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: airbyte-cdk
3
- Version: 6.13.1.dev4109
3
+ Version: 6.14.0
4
4
  Summary: A framework for writing Airbyte Connectors.
5
+ Home-page: https://airbyte.com
5
6
  License: MIT
6
7
  Keywords: airbyte,connector-development-kit,cdk
7
8
  Author: Airbyte
@@ -68,7 +69,6 @@ Requires-Dist: unstructured[docx,pptx] (==0.10.27) ; extra == "file-based"
68
69
  Requires-Dist: wcmatch (==10.0)
69
70
  Requires-Dist: xmltodict (>=0.13.0,<0.14.0)
70
71
  Project-URL: Documentation, https://docs.airbyte.io/
71
- Project-URL: Homepage, https://airbyte.com
72
72
  Project-URL: Repository, https://github.com/airbytehq/airbyte-python-cdk
73
73
  Description-Content-Type: text/markdown
74
74
 
@@ -22,7 +22,7 @@ airbyte_cdk/destinations/vector_db_based/indexer.py,sha256=beiSi2Uu67EoTr7yQSaCJ
22
22
  airbyte_cdk/destinations/vector_db_based/test_utils.py,sha256=MkqLiOJ5QyKbV4rNiJhe-BHM7FD-ADHQ4bQGf4c5lRY,1932
23
23
  airbyte_cdk/destinations/vector_db_based/utils.py,sha256=FOyEo8Lc-fY8UyhpCivhZtIqBRyxf3cUt6anmK03fUY,1127
24
24
  airbyte_cdk/destinations/vector_db_based/writer.py,sha256=nZ00xPiohElJmYktEZZIhr0m5EDETCHGhg0Lb2S7A20,5095
25
- airbyte_cdk/entrypoint.py,sha256=xFLY2PV8mKXUaeBAknczbK6plrs4_B1WdWA6K3iaRJI,18555
25
+ airbyte_cdk/entrypoint.py,sha256=LZFX0bgtSs3TBzTWcDN52KHZDS-YrYPbnk5vwERGpEc,17984
26
26
  airbyte_cdk/exception_handler.py,sha256=D_doVl3Dt60ASXlJsfviOCswxGyKF2q0RL6rif3fNks,2013
27
27
  airbyte_cdk/logger.py,sha256=qi4UGuSYQQGaFaTVJlMD9lLppwqLXt1XBhwSXo-Q5IA,3660
28
28
  airbyte_cdk/models/__init__.py,sha256=MOTiuML2wShBaMSIwikdjyye2uUWBjo4J1QFSbnoiM4,2075
@@ -53,7 +53,7 @@ airbyte_cdk/sources/declarative/async_job/timer.py,sha256=Fb8P72CQ7jIzJyzMSSNuBf
53
53
  airbyte_cdk/sources/declarative/auth/__init__.py,sha256=e2CRrcBWGhz3sQu3Oh34d1riEIwXipGS8hrSB1pu0Oo,284
54
54
  airbyte_cdk/sources/declarative/auth/declarative_authenticator.py,sha256=nf-OmRUHYG4ORBwyb5CANzuHEssE-oNmL-Lccn41Td8,1099
55
55
  airbyte_cdk/sources/declarative/auth/jwt.py,sha256=7r5q1zOekjw8kEmEk1oUyovzVt3cbD6BuFnRILeLZi8,8250
56
- airbyte_cdk/sources/declarative/auth/oauth.py,sha256=EDx-tY0ZhBXe6yVHkqjUAqMWJAl4rQXjQbr4rElt_Ds,10555
56
+ airbyte_cdk/sources/declarative/auth/oauth.py,sha256=Yr0ljFjln9FIWudQohXARyKEo6-4ACG840pZoi6JVrE,9165
57
57
  airbyte_cdk/sources/declarative/auth/selective_authenticator.py,sha256=qGwC6YsCldr1bIeKG6Qo-A9a5cTdHw-vcOn3OtQrS4c,1540
58
58
  airbyte_cdk/sources/declarative/auth/token.py,sha256=r4u3WXyVa7WmiSZ9-eZXlrUI-pS0D4YWJnwjLzwV-Fk,11210
59
59
  airbyte_cdk/sources/declarative/auth/token_provider.py,sha256=9oq3dcBPAPwXSfkISjhA05dMhIzxaDQTmwOydBrnsMk,3028
@@ -62,11 +62,11 @@ airbyte_cdk/sources/declarative/checks/check_stream.py,sha256=dAA-UhmMj0WLXCkRQr
62
62
  airbyte_cdk/sources/declarative/checks/connection_checker.py,sha256=MBRJo6WJlZQHpIfOGaNOkkHUmgUl_4wDM6VPo41z5Ss,1383
63
63
  airbyte_cdk/sources/declarative/concurrency_level/__init__.py,sha256=5XUqrmlstYlMM0j6crktlKQwALek0uiz2D3WdM46MyA,191
64
64
  airbyte_cdk/sources/declarative/concurrency_level/concurrency_level.py,sha256=YIwCTCpOr_QSNW4ltQK0yUGWInI8PKNY216HOOegYLk,2101
65
- airbyte_cdk/sources/declarative/concurrent_declarative_source.py,sha256=tSTCSmyMCu1qoGsne1Ooz3c1da-8EDZk6Suiy2gIq9Q,22475
65
+ airbyte_cdk/sources/declarative/concurrent_declarative_source.py,sha256=PxP4p2686wsf1gjsumGKnh2o2Jjnrqg8QLGijEIrp-A,23412
66
66
  airbyte_cdk/sources/declarative/datetime/__init__.py,sha256=l9LG7Qm6e5r_qgqfVKnx3mXYtg1I9MmMjomVIPfU4XA,177
67
67
  airbyte_cdk/sources/declarative/datetime/datetime_parser.py,sha256=SX9JjdesN1edN2WVUVMzU_ptqp2QB1OnsnjZ4mwcX7w,2579
68
68
  airbyte_cdk/sources/declarative/datetime/min_max_datetime.py,sha256=0BHBtDNQZfvwM45-tY5pNlTcKAFSGGNxemoi0Jic-0E,5785
69
- airbyte_cdk/sources/declarative/declarative_component_schema.yaml,sha256=00X3palFmBp9WqQugXgtzFVn7s17KYWKTrn83ObmBzc,134673
69
+ airbyte_cdk/sources/declarative/declarative_component_schema.yaml,sha256=w1WkfTgZN8znoC1X2XQCv6RhHdTxAO9O0pmFzQRL52k,130843
70
70
  airbyte_cdk/sources/declarative/declarative_source.py,sha256=nF7wBqFd3AQmEKAm4CnIo29CJoQL562cJGSCeL8U8bA,1531
71
71
  airbyte_cdk/sources/declarative/declarative_stream.py,sha256=JRyNeOIpsFu4ztVZsN6sncqUEIqIE-bUkD2TPgbMgk0,10375
72
72
  airbyte_cdk/sources/declarative/decoders/__init__.py,sha256=edGj4fGxznBk4xzRQyCA1rGfbpqe7z-RE0K3kQQWbgA,858
@@ -77,14 +77,13 @@ airbyte_cdk/sources/declarative/decoders/noop_decoder.py,sha256=iZh0yKY_JzgBnJWi
77
77
  airbyte_cdk/sources/declarative/decoders/pagination_decoder_decorator.py,sha256=ZVBZhAOl0I0MymXN5CKTC-kIXG4GuUQAEyn0XpUDuSE,1081
78
78
  airbyte_cdk/sources/declarative/decoders/xml_decoder.py,sha256=EU-7t-5vIGRHZ14h-f0GUE4V5-eTM9Flux-A8xgI1Rc,3117
79
79
  airbyte_cdk/sources/declarative/exceptions.py,sha256=kTPUA4I2NV4J6HDz-mKPGMrfuc592akJnOyYx38l_QM,176
80
- airbyte_cdk/sources/declarative/extractors/__init__.py,sha256=RmV-IkO1YLj0PSOrrqC9AV1gO8-90t8UTDVfJGshN9E,754
80
+ airbyte_cdk/sources/declarative/extractors/__init__.py,sha256=J1WeMqtvGq7TwW7Ajc46S5jLcv22ptqmSuUXqUB9YG0,643
81
81
  airbyte_cdk/sources/declarative/extractors/dpath_extractor.py,sha256=wR4Ol4MG2lt5UlqXF5EU_k7qa5cN4_-luu3PJ1PlO3A,3131
82
82
  airbyte_cdk/sources/declarative/extractors/http_selector.py,sha256=2zWZ4ewTqQC8VwkjS0xD_u350Km3SiYP7hpOOgiLg5o,1169
83
83
  airbyte_cdk/sources/declarative/extractors/record_extractor.py,sha256=XJELMjahAsaomlvQgN2zrNO0DJX0G0fr9r682gUz7Pg,691
84
84
  airbyte_cdk/sources/declarative/extractors/record_filter.py,sha256=OJ9xmhNWNwwzxYOeIrDy1GINb1zH9MBy6suC5tm2LSk,3545
85
- airbyte_cdk/sources/declarative/extractors/record_selector.py,sha256=tjNwcURmlyD-TGCScXvW95ThNKyPGcx2SiWbG1-H-sc,6552
85
+ airbyte_cdk/sources/declarative/extractors/record_selector.py,sha256=AkXPOWyp741cpYLBl9AbmVmOQmQ2BzZ2XjgsMEB6gGc,6583
86
86
  airbyte_cdk/sources/declarative/extractors/response_to_file_extractor.py,sha256=LhqGDfX06_dDYLKsIVnwQ_nAWCln-v8PV7Wgt_QVeTI,6533
87
- airbyte_cdk/sources/declarative/extractors/type_transformer.py,sha256=d6Y2Rfg8pMVEEnHllfVksWZdNVOU55yk34O03dP9muY,1626
88
87
  airbyte_cdk/sources/declarative/incremental/__init__.py,sha256=huRz3KQJSUFmJCg5GPE9TckEBsB5TMsCa_THhJAhPVI,1037
89
88
  airbyte_cdk/sources/declarative/incremental/datetime_based_cursor.py,sha256=_UzUnSIUsDbRgbFTXgSyZEFb4ws-KdhdQPWO8mFbV7U,22028
90
89
  airbyte_cdk/sources/declarative/incremental/declarative_cursor.py,sha256=5Bhw9VRPyIuCaD0wmmq_L3DZsa-rJgtKSEUzSd8YYD0,536
@@ -106,12 +105,12 @@ airbyte_cdk/sources/declarative/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW
106
105
  airbyte_cdk/sources/declarative/migrations/legacy_to_per_partition_state_migration.py,sha256=iemy3fKLczcU0-Aor7tx5jcT6DRedKMqyK7kCOp01hg,3924
107
106
  airbyte_cdk/sources/declarative/migrations/state_migration.py,sha256=KWPjealMLKSMtajXgkdGgKg7EmTLR-CqqD7UIh0-eDU,794
108
107
  airbyte_cdk/sources/declarative/models/__init__.py,sha256=nUFxNCiKeYRVXuZEKA7GD-lTHxsiKcQ8FitZjKhPIvE,100
109
- airbyte_cdk/sources/declarative/models/declarative_component_schema.py,sha256=1wrAW9XeEq2xdUAAkmHcelka-LOwyYb-izRcACkNPKM,94915
108
+ airbyte_cdk/sources/declarative/models/declarative_component_schema.py,sha256=1EdKXjEKoXVs7BuF4H9mBMSbVsDIy5uAv1Txboict7Q,91733
110
109
  airbyte_cdk/sources/declarative/parsers/__init__.py,sha256=ZnqYNxHsKCgO38IwB34RQyRMXTs4GTvlRi3ImKnIioo,61
111
110
  airbyte_cdk/sources/declarative/parsers/custom_exceptions.py,sha256=Rir9_z3Kcd5Es0-LChrzk-0qubAsiK_RSEnLmK2OXm8,553
112
111
  airbyte_cdk/sources/declarative/parsers/manifest_component_transformer.py,sha256=CXwTfD3wSQq3okcqwigpprbHhSURUokh4GK2OmOyKC8,9132
113
112
  airbyte_cdk/sources/declarative/parsers/manifest_reference_resolver.py,sha256=IWUOdF03o-aQn0Occo1BJCxU0Pz-QILk5L67nzw2thw,6803
114
- airbyte_cdk/sources/declarative/parsers/model_to_component_factory.py,sha256=NElLb7eLDVmxDgtTX9fQ-ZPrpfH3d7RpMDaQiLtvuuQ,110550
113
+ airbyte_cdk/sources/declarative/parsers/model_to_component_factory.py,sha256=NYTa2KqBHq-JU2oKp0J79WADw8JgR2lgQS_unTB0bl4,107945
115
114
  airbyte_cdk/sources/declarative/partition_routers/__init__.py,sha256=HJ-Syp3p7RpyR_OK0X_a2kSyISfu3W-PKrRI16iY0a8,957
116
115
  airbyte_cdk/sources/declarative/partition_routers/async_job_partition_router.py,sha256=n82J15S8bjeMZ5uROu--P3hnbQoxkY5v7RPHYx7g7ro,2929
117
116
  airbyte_cdk/sources/declarative/partition_routers/cartesian_product_stream_slicer.py,sha256=c5cuVFM6NFkuQqG8Z5IwkBuwDrvXZN1CunUOM_L0ezg,6892
@@ -119,7 +118,6 @@ airbyte_cdk/sources/declarative/partition_routers/list_partition_router.py,sha25
119
118
  airbyte_cdk/sources/declarative/partition_routers/partition_router.py,sha256=YyEIzdmLd1FjbVP3QbQ2VFCLW_P-OGbVh6VpZShp54k,2218
120
119
  airbyte_cdk/sources/declarative/partition_routers/single_partition_router.py,sha256=SKzKjSyfccq4dxGIh-J6ejrgkCHzaiTIazmbmeQiRD4,1942
121
120
  airbyte_cdk/sources/declarative/partition_routers/substream_partition_router.py,sha256=5bgXoJfBg_6i53krQMptAGb50XB5XoVfqQxKQhlLtBA,15383
122
- airbyte_cdk/sources/declarative/requesters/README.md,sha256=WabtHlwHg_J34aL1Kwm8vboYqBaSgsFjq10qR-P2sx8,2658
123
121
  airbyte_cdk/sources/declarative/requesters/__init__.py,sha256=d7a3OoHbqaJDyyPli3nqqJ2yAW_SLX6XDaBAKOwvpxw,364
124
122
  airbyte_cdk/sources/declarative/requesters/error_handlers/__init__.py,sha256=SkEDcJxlT1683rNx93K9whoS0OyUukkuOfToGtgpF58,776
125
123
  airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/__init__.py,sha256=1WZdpFmWL6W_Dko0qjflTaKIWeqt8jHT-D6HcujIp3s,884
@@ -134,18 +132,18 @@ airbyte_cdk/sources/declarative/requesters/error_handlers/default_error_handler.
134
132
  airbyte_cdk/sources/declarative/requesters/error_handlers/default_http_response_filter.py,sha256=q0YkeYUUWO6iErUy0vjqiOkhg8_9d5YcCmtlpXAJJ9E,1314
135
133
  airbyte_cdk/sources/declarative/requesters/error_handlers/error_handler.py,sha256=Tan66odx8VHzfdyyXMQkXz2pJYksllGqvxmpoajgcK4,669
136
134
  airbyte_cdk/sources/declarative/requesters/error_handlers/http_response_filter.py,sha256=vhWsEKNTYEzZ4gerhHqnDNKu4wGIP485NAzpSQ5DRZg,7941
137
- airbyte_cdk/sources/declarative/requesters/http_job_repository.py,sha256=3GtOefPH08evlSUxaILkiKLTHbIspFY4qd5B3ZqNE60,10063
135
+ airbyte_cdk/sources/declarative/requesters/http_job_repository.py,sha256=o0520AmHMb7SAoeokVNwoOzuZzIAT6ryx9uFYGSOrs0,8664
138
136
  airbyte_cdk/sources/declarative/requesters/http_requester.py,sha256=RqYPkgJFAWfcZBTc-JBcGHPm4JL1ZQOhs9GKU4MP2eE,14723
139
137
  airbyte_cdk/sources/declarative/requesters/paginators/__init__.py,sha256=uArbKs9JKNCt7t9tZoeWwjDpyI1HoPp29FNW0JzvaEM,644
140
- airbyte_cdk/sources/declarative/requesters/paginators/default_paginator.py,sha256=FnSl3qPvv5wD6ieAI2Ic5c4dqBk-3fRe4tCaWzq3YwM,11840
141
- airbyte_cdk/sources/declarative/requesters/paginators/no_pagination.py,sha256=j6j9QRPaTbKQ2N661RFVKthhkWiodEp6ut0tKeEd0Ng,2019
142
- airbyte_cdk/sources/declarative/requesters/paginators/paginator.py,sha256=OlN-y0PEOMzlUNUh3pzonoTpIJpGwkP4ibFengvpLVU,2230
138
+ airbyte_cdk/sources/declarative/requesters/paginators/default_paginator.py,sha256=LxTq1hieznRWlYlfODdZbMDUml-g6NyBkdwVI2mCNMM,10910
139
+ airbyte_cdk/sources/declarative/requesters/paginators/no_pagination.py,sha256=-P-QOlefFhEe99bsB2y3yTvA8c8kCCbfBaTS6qPvF6I,1927
140
+ airbyte_cdk/sources/declarative/requesters/paginators/paginator.py,sha256=ZgyvH7DOrASQ5K__J5SRAXH3REUW2n3yPHnFW9xq4NU,1972
143
141
  airbyte_cdk/sources/declarative/requesters/paginators/strategies/__init__.py,sha256=2gly8fuZpDNwtu1Qg6oE2jBLGqQRdzSLJdnpk_iDV6I,767
144
- airbyte_cdk/sources/declarative/requesters/paginators/strategies/cursor_pagination_strategy.py,sha256=yLzzK5YIRTkXd2Z-BS__AZXuTd6HXjJIxq05K-lQoxI,3898
145
- airbyte_cdk/sources/declarative/requesters/paginators/strategies/offset_increment.py,sha256=WvGt_DTFcAgTR-NHrlrR7B71yG-L6jmfW-Gwm9iYzjY,3624
146
- airbyte_cdk/sources/declarative/requesters/paginators/strategies/page_increment.py,sha256=Z2i6a-oKMmOTxHxsTVSnyaShkJ3u8xZw1xIJdx2yxss,2731
147
- airbyte_cdk/sources/declarative/requesters/paginators/strategies/pagination_strategy.py,sha256=ZBshGQNr5Bb_V8dqnWRISqdXFcjm1CKIXnlfbRhNl8g,1308
148
- airbyte_cdk/sources/declarative/requesters/paginators/strategies/stop_condition.py,sha256=LoKXdUbSgHEtSwtA8DFrnX6SpQbRVVwreY8NguTKTcI,2229
142
+ airbyte_cdk/sources/declarative/requesters/paginators/strategies/cursor_pagination_strategy.py,sha256=vFzpNv8BdgXrYO5qhi2_Un4x4y-EAQWxinZtEPWz5KI,3654
143
+ airbyte_cdk/sources/declarative/requesters/paginators/strategies/offset_increment.py,sha256=TKG4Mp1t8MfmFJDeHtXmxCp_ibRK03J5O04N5HVtBvE,3430
144
+ airbyte_cdk/sources/declarative/requesters/paginators/strategies/page_increment.py,sha256=kQGpfr-dOwarxTIf2S4sHVulBzm8zSwQXBM7rOhkafA,2491
145
+ airbyte_cdk/sources/declarative/requesters/paginators/strategies/pagination_strategy.py,sha256=ABpO4t0UUziBZnyml8UT_NhlF6loekhQji57TpKnaiY,1290
146
+ airbyte_cdk/sources/declarative/requesters/paginators/strategies/stop_condition.py,sha256=2b005ulACvHgIL8ktTWwposu4umowyu0iGV2mGOb_Tg,2290
149
147
  airbyte_cdk/sources/declarative/requesters/request_option.py,sha256=_qmv8CLQQ3fERt6BuMZeRu6tZXscPoeARx1VJdWMQ_M,1055
150
148
  airbyte_cdk/sources/declarative/requesters/request_options/__init__.py,sha256=WCwpKqM4wKqy-DHJaCHbKAlFqRVOqMi9K5qonxIfi_Y,809
151
149
  airbyte_cdk/sources/declarative/requesters/request_options/datetime_based_request_options_provider.py,sha256=FLkg0uzC9bc-zFnALWr0FLYpKsz8iK2xQsd4UOyeW08,3706
@@ -161,9 +159,9 @@ airbyte_cdk/sources/declarative/resolvers/components_resolver.py,sha256=KPjKc0yb
161
159
  airbyte_cdk/sources/declarative/resolvers/config_components_resolver.py,sha256=dz4iJV9liD_LzY_Mn4XmAStoUll60R3MIGWV4aN3pgg,5223
162
160
  airbyte_cdk/sources/declarative/resolvers/http_components_resolver.py,sha256=AiojNs8wItJFrENZBFUaDvau3sgwudO6Wkra36upSPo,4639
163
161
  airbyte_cdk/sources/declarative/retrievers/__init__.py,sha256=ix9m1dkR69DcXCXUKC5RK_ZZM7ojTLBQ4IkWQTfmfCk,456
164
- airbyte_cdk/sources/declarative/retrievers/async_retriever.py,sha256=kX9ltelK2xLIBWDJBK2ucrvVe5tc5xmhdbVbgsjvlxY,3696
162
+ airbyte_cdk/sources/declarative/retrievers/async_retriever.py,sha256=_-d3MvHh-4r46i4wjQikD4ZygKA7TvuDu2i04qqULEg,3731
165
163
  airbyte_cdk/sources/declarative/retrievers/retriever.py,sha256=XPLs593Xv8c5cKMc37XzUAYmzlXd1a7eSsspM-CMuWA,1696
166
- airbyte_cdk/sources/declarative/retrievers/simple_retriever.py,sha256=jxQ_9xcVD07r9PKhofitAqMkdX1k8ZNyy50qz5NwkFs,24540
164
+ airbyte_cdk/sources/declarative/retrievers/simple_retriever.py,sha256=N4swGw5mfuTXJ2R7AKX18CHzizsr69pXwt5uSHLPi48,24172
167
165
  airbyte_cdk/sources/declarative/schema/__init__.py,sha256=HztgVVaZdil5UfgUZcv_Hyy84r89_EKRwyO2hoewNVg,749
168
166
  airbyte_cdk/sources/declarative/schema/default_schema_loader.py,sha256=KTACrIE23a83wsm3Rd9Eb4K6-20lrGqYxTHNp9yxsso,1820
169
167
  airbyte_cdk/sources/declarative/schema/dynamic_schema_loader.py,sha256=H6A3NQ6kPPM-cUNPmdvDPc9xNzR1rQNrK95GbgCW334,8822
@@ -173,12 +171,11 @@ airbyte_cdk/sources/declarative/schema/schema_loader.py,sha256=kjt8v0N5wWKA5zyLn
173
171
  airbyte_cdk/sources/declarative/spec/__init__.py,sha256=H0UwoRhgucbKBIzg85AXrifybVmfpwWpPdy22vZKVuo,141
174
172
  airbyte_cdk/sources/declarative/spec/spec.py,sha256=ODSNUgkDOhnLQnwLjgSaME6R3kNeywjROvbNrWEnsgU,1876
175
173
  airbyte_cdk/sources/declarative/stream_slicers/__init__.py,sha256=sI9vhc95RwJYOnA0VKjcbtKgFcmAbWjhdWBXFbAijOs,176
176
- airbyte_cdk/sources/declarative/stream_slicers/declarative_partition_generator.py,sha256=RW1Q44ml-VWeMl4lNcV6EfyzrzCZkjj-hd0Omx_n_n4,3405
174
+ airbyte_cdk/sources/declarative/stream_slicers/declarative_partition_generator.py,sha256=E7feZ5xkHwFHODq8FSjwdGe291RZoCMCRHT1rWnQ1lI,3463
177
175
  airbyte_cdk/sources/declarative/stream_slicers/stream_slicer.py,sha256=SOkIPBi2Wu7yxIvA15yFzUAB95a3IzA8LPq5DEqHQQc,725
178
176
  airbyte_cdk/sources/declarative/transformations/__init__.py,sha256=CPJ8TlMpiUmvG3624VYu_NfTzxwKcfBjM2Q2wJ7fkSA,919
179
177
  airbyte_cdk/sources/declarative/transformations/add_fields.py,sha256=r4YdAuAk2bQtNWJMztIIy2CC-NglD9NeK1s1TeO9wkw,5027
180
- airbyte_cdk/sources/declarative/transformations/flatten_fields.py,sha256=yT3owG6rMKaRX-LJ_T-jSTnh1B5NoAHyH4YZN9yOvE8,1758
181
- airbyte_cdk/sources/declarative/transformations/keys_replace_transformation.py,sha256=vbIn6ump-Ut6g20yMub7PFoPBhOKVtrHSAUdcOUdLfw,1999
178
+ airbyte_cdk/sources/declarative/transformations/flatten_fields.py,sha256=ti9fLVk-EpMeDY7ImduvQq1YGounLYmH9dHzp7MIRxk,1703
182
179
  airbyte_cdk/sources/declarative/transformations/keys_to_lower_transformation.py,sha256=RTs5KX4V3hM7A6QN1WlGF21YccTIyNH6qQI9IMb__hw,670
183
180
  airbyte_cdk/sources/declarative/transformations/keys_to_snake_transformation.py,sha256=43zwe6_F5ba5C4eY0RgXxPz7ndPKZfXGChHepFn-2lk,2263
184
181
  airbyte_cdk/sources/declarative/transformations/remove_fields.py,sha256=EwUP0SZ2p4GRJ6Q8CUzlz9dcUeEidEFDlI2IBye2tlc,2745
@@ -196,7 +193,7 @@ airbyte_cdk/sources/file_based/availability_strategy/__init__.py,sha256=ddKQfUmk
196
193
  airbyte_cdk/sources/file_based/availability_strategy/abstract_file_based_availability_strategy.py,sha256=01Nd4b7ERAbp-OZo_8rrAzFXWPTMwr02SnWiN17nx8Q,2363
197
194
  airbyte_cdk/sources/file_based/availability_strategy/default_file_based_availability_strategy.py,sha256=j9T5TimfWFUz7nqsaj-83G3xWmDpsmeSbDnaUNmz0UM,5849
198
195
  airbyte_cdk/sources/file_based/config/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
199
- airbyte_cdk/sources/file_based/config/abstract_file_based_spec.py,sha256=gXlZwnEKLWknnK_n7j14lANgR6vkqhlLJ-G3rRu-ox4,6897
196
+ airbyte_cdk/sources/file_based/config/abstract_file_based_spec.py,sha256=tj-M1L5BTa5yIQ3jHo09CtCTSq_eR-68zgyOPqwsurw,6455
200
197
  airbyte_cdk/sources/file_based/config/avro_format.py,sha256=NxTF96ewzn6HuhgodsY7Rpb-ybr1ZEWW5d4Vid64g5A,716
201
198
  airbyte_cdk/sources/file_based/config/csv_format.py,sha256=NWekkyT8dTwiVK0mwa_krQD4FJPHSDfILo8kPAg3-Vs,8006
202
199
  airbyte_cdk/sources/file_based/config/excel_format.py,sha256=9qAmTsT6SoVzNfNv0oBVkVCmiyqQuVAbfRKajjoa7Js,378
@@ -207,9 +204,9 @@ airbyte_cdk/sources/file_based/config/unstructured_format.py,sha256=tIbB9Pn1HqU6
207
204
  airbyte_cdk/sources/file_based/discovery_policy/__init__.py,sha256=gl3ey6mZbyfraB9P3pFhf9UJp2JeTZ1SUFAopy2iBvY,301
208
205
  airbyte_cdk/sources/file_based/discovery_policy/abstract_discovery_policy.py,sha256=dCfXX529Rd5rtopg4VeEgTPJjFtqjtjzPq6LCw18Wt0,605
209
206
  airbyte_cdk/sources/file_based/discovery_policy/default_discovery_policy.py,sha256=-xujTidtrq6HC00WKbjQh1CZdT5LMuzkp5BLjqDmfTY,1007
210
- airbyte_cdk/sources/file_based/exceptions.py,sha256=WP0qkG6fpWoBpOyyicgp5YNE393VWyegq5qSy0v4QtM,7362
211
- airbyte_cdk/sources/file_based/file_based_source.py,sha256=Biv2QufYQtHZQCBZs4iCUpqTd82rk7xo8SDYkEeau3k,17616
212
- airbyte_cdk/sources/file_based/file_based_stream_reader.py,sha256=e1KhgTh7mzvkBOz9DjLwzOsDwevrTmbxSYIcvhgWgGM,6856
207
+ airbyte_cdk/sources/file_based/exceptions.py,sha256=AEELNIRzKPX6eopKd_2jhE7WiNeR0Aw7nQWVOL8fvkc,5760
208
+ airbyte_cdk/sources/file_based/file_based_source.py,sha256=RfpctRNLJ_EHKKEc2E1EZGYRfhG0Z9o6TgsKS4XrSNY,16652
209
+ airbyte_cdk/sources/file_based/file_based_stream_reader.py,sha256=ohxKlqPuV7TGwjyRy_gaWUol8QN5lBSoCYoaqBtRh1c,6179
213
210
  airbyte_cdk/sources/file_based/file_types/__init__.py,sha256=blCLn0-2LC-ZdgcNyDEhqM2RiUvEjEBh-G4-t32ZtuM,1268
214
211
  airbyte_cdk/sources/file_based/file_types/avro_parser.py,sha256=XNx-JC-sgzH9u3nOJ2M59FxBXvtig8LN6BIkeDOavZA,10858
215
212
  airbyte_cdk/sources/file_based/file_types/csv_parser.py,sha256=QlCXB-ry3np67Q_VerQEPoWDOTcPTB6Go4ydZxY9ae4,20445
@@ -218,7 +215,7 @@ airbyte_cdk/sources/file_based/file_types/file_transfer.py,sha256=HyGRihJxcb_lEs
218
215
  airbyte_cdk/sources/file_based/file_types/file_type_parser.py,sha256=JgpH21PrbRqwK92BJklZWvh2TndA6xZ-eP1LPMo44oQ,2832
219
216
  airbyte_cdk/sources/file_based/file_types/jsonl_parser.py,sha256=GwyNyxmST4RX-XpXy7xVH0D-znYWWBmGv_pVAu95oHQ,5886
220
217
  airbyte_cdk/sources/file_based/file_types/parquet_parser.py,sha256=XenFg5sJ-UBnIkSmsiNJRou11NO0zZXx-RXgPHMT2NA,10487
221
- airbyte_cdk/sources/file_based/file_types/unstructured_parser.py,sha256=2TYOQl62FQPCa8otLbkDIk_j01EP3oWaKSfXGhCjCHg,19492
218
+ airbyte_cdk/sources/file_based/file_types/unstructured_parser.py,sha256=r5FNcJadiI5PTyl1-doIodPCwW7xZWOTHl4Epd-w0-8,18602
222
219
  airbyte_cdk/sources/file_based/remote_file.py,sha256=yqRz93vPe8PBXLIMJ5W5u2JRlZRhg6sBrAjn3pPjJ8A,315
223
220
  airbyte_cdk/sources/file_based/schema_helpers.py,sha256=Cf8FH1bDFP0qCDDfEYir_WjP4exXUnikz8hZ40y1Ek0,9601
224
221
  airbyte_cdk/sources/file_based/schema_validation_policies/__init__.py,sha256=FkByIyEy56x2_awYnxGPqGaOp7zAzpAoRkPZHKySI9M,536
@@ -235,7 +232,7 @@ airbyte_cdk/sources/file_based/stream/concurrent/cursor/file_based_final_state_c
235
232
  airbyte_cdk/sources/file_based/stream/cursor/__init__.py,sha256=MhFB5hOo8sjwvCh8gangaymdg3EJWYt_72brFOZt068,191
236
233
  airbyte_cdk/sources/file_based/stream/cursor/abstract_file_based_cursor.py,sha256=om-x3gZFPgWDpi15S9RxZmR36VHnk8sytgN6LlBQhAw,1934
237
234
  airbyte_cdk/sources/file_based/stream/cursor/default_file_based_cursor.py,sha256=VGV7xLyBribuBMVrXtO1xqkWJD86bl7yhXtjnwLMohM,7051
238
- airbyte_cdk/sources/file_based/stream/default_file_based_stream.py,sha256=XLU5cNqQ-5mj243gNzMyXtm_oCtg1ORyoqbCsUo9Dn4,18044
235
+ airbyte_cdk/sources/file_based/stream/default_file_based_stream.py,sha256=rpwU6AOyhFLuXtcFKkcOHFWbRQ4kLCOKzAjcID_M87k,16770
239
236
  airbyte_cdk/sources/file_based/types.py,sha256=INxG7OPnkdUP69oYNKMAbwhvV1AGvLRHs1J6pIia2FI,218
240
237
  airbyte_cdk/sources/http_config.py,sha256=OBZeuyFilm6NlDlBhFQvHhTWabEvZww6OHDIlZujIS0,730
241
238
  airbyte_cdk/sources/http_logger.py,sha256=TyBmtRA6D9g0XDkKGvdM415b36RXDjgfkwRewDsH8-0,1576
@@ -288,12 +285,12 @@ airbyte_cdk/sources/streams/http/http.py,sha256=JAMpiTdS9HFNOlwayWNvQdxoqs2rpW9w
288
285
  airbyte_cdk/sources/streams/http/http_client.py,sha256=tDE0ROtxjGMVphvsw8INvGMtZ97hIF-v47pZ3jIyiwc,23011
289
286
  airbyte_cdk/sources/streams/http/rate_limiting.py,sha256=IwdjrHKUnU97XO4qONgYRv4YYW51xQ8SJm4WLafXDB8,6351
290
287
  airbyte_cdk/sources/streams/http/requests_native_auth/__init__.py,sha256=RN0D3nOX1xLgwEwKWu6pkGy3XqBFzKSNZ8Lf6umU2eY,413
291
- airbyte_cdk/sources/streams/http/requests_native_auth/abstract_oauth.py,sha256=xX-qKbMVN-OTwNda-B6cVQqnQrNDGBnvavAcSvXK2wU,11179
288
+ airbyte_cdk/sources/streams/http/requests_native_auth/abstract_oauth.py,sha256=sxmrQKAvN8piamssL3xh8KXevTwdaXuLs2O0hNEA5aQ,10635
292
289
  airbyte_cdk/sources/streams/http/requests_native_auth/abstract_token.py,sha256=Y3n7J-sk5yGjv_OxtY6Z6k0PEsFZmtIRi-x0KCbaHdA,1010
293
- airbyte_cdk/sources/streams/http/requests_native_auth/oauth.py,sha256=wjsp4Xf8u3AnY7ZmTTGfLnfj6ztDBogR5biURkqcwCA,16156
290
+ airbyte_cdk/sources/streams/http/requests_native_auth/oauth.py,sha256=ka-bBRWvIv09LmZNYl49p2lK9nd_Tvi2g0lIp3OkU40,14872
294
291
  airbyte_cdk/sources/streams/http/requests_native_auth/token.py,sha256=h5PTzcdH-RQLeCg7xZ45w_484OPUDSwNWl_iMJQmZoI,2526
295
292
  airbyte_cdk/sources/streams/utils/__init__.py,sha256=4Hw-PX1-VgESLF16cDdvuYCzGJtHntThLF4qIiULWeo,61
296
- airbyte_cdk/sources/types.py,sha256=nLPkTpyfGV4E6e99qcBWX4r8C3fE4I8Fvgx2EjvT9ic,5005
293
+ airbyte_cdk/sources/types.py,sha256=WWVigI7ZSoQU2TBCzDsHJtoX4Ima9v--lcLyYwUG_cE,4904
297
294
  airbyte_cdk/sources/utils/__init__.py,sha256=TTN6VUxVy6Is8BhYQZR5pxJGQh8yH4duXh4O1TiMiEY,118
298
295
  airbyte_cdk/sources/utils/casing.py,sha256=QC-gV1O4e8DR4-bhdXieUPKm_JamzslVyfABLYYRSXA,256
299
296
  airbyte_cdk/sources/utils/record_helper.py,sha256=jeB0mucudzna7Zvj-pCBbwFrbLJ36SlAWZTh5O4Fb9Y,2168
@@ -343,8 +340,8 @@ airbyte_cdk/utils/slice_hasher.py,sha256=-pHexlNYoWYPnXNH-M7HEbjmeJe9Zk7SJijdQ7d
343
340
  airbyte_cdk/utils/spec_schema_transformations.py,sha256=-5HTuNsnDBAhj-oLeQXwpTGA0HdcjFOf2zTEMUTTg_Y,816
344
341
  airbyte_cdk/utils/stream_status_utils.py,sha256=ZmBoiy5HVbUEHAMrUONxZvxnvfV9CesmQJLDTAIWnWw,1171
345
342
  airbyte_cdk/utils/traced_exception.py,sha256=C8uIBuCL_E4WnBAOPSxBicD06JAldoN9fGsQDp463OY,6292
346
- airbyte_cdk-6.13.1.dev4109.dist-info/LICENSE.txt,sha256=Wfe61S4BaGPj404v8lrAbvhjYR68SHlkzeYrg3_bbuM,1051
347
- airbyte_cdk-6.13.1.dev4109.dist-info/METADATA,sha256=bNfMD2mpLZlEXjIuHgUNfYoUfAsWyTe8PF6635ClwrE,6008
348
- airbyte_cdk-6.13.1.dev4109.dist-info/WHEEL,sha256=IYZQI976HJqqOpQU6PHkJ8fb3tMNBFjg-Cn-pwAbaFM,88
349
- airbyte_cdk-6.13.1.dev4109.dist-info/entry_points.txt,sha256=fj-e3PAQvsxsQzyyq8UkG1k8spunWnD4BAH2AwlR6NM,95
350
- airbyte_cdk-6.13.1.dev4109.dist-info/RECORD,,
343
+ airbyte_cdk-6.14.0.dist-info/LICENSE.txt,sha256=Wfe61S4BaGPj404v8lrAbvhjYR68SHlkzeYrg3_bbuM,1051
344
+ airbyte_cdk-6.14.0.dist-info/METADATA,sha256=9K6E6L2q8Vn8wNuU-ZHjoxjiEwQX0_Xzb2vwyJzabbY,5988
345
+ airbyte_cdk-6.14.0.dist-info/WHEEL,sha256=RaoafKOydTQ7I_I3JTrPCg6kUmTgtm4BornzOqyEfJ8,88
346
+ airbyte_cdk-6.14.0.dist-info/entry_points.txt,sha256=fj-e3PAQvsxsQzyyq8UkG1k8spunWnD4BAH2AwlR6NM,95
347
+ airbyte_cdk-6.14.0.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: poetry-core 2.0.1
2
+ Generator: poetry-core 2.0.0
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
@@ -1,55 +0,0 @@
1
- #
2
- # Copyright (c) 2025 Airbyte, Inc., all rights reserved.
3
- #
4
-
5
- from abc import ABC, abstractmethod
6
- from dataclasses import dataclass
7
- from typing import Any, Dict, Mapping
8
-
9
-
10
- @dataclass
11
- class TypeTransformer(ABC):
12
- """
13
- Abstract base class for implementing type transformation logic.
14
-
15
- This class provides a blueprint for defining custom transformations
16
- on data records based on a provided schema. Implementing classes
17
- must override the `transform` method to specify the transformation
18
- logic.
19
-
20
- Attributes:
21
- None explicitly defined, as this is a dataclass intended to be
22
- subclassed.
23
-
24
- Methods:
25
- transform(record: Dict[str, Any], schema: Mapping[str, Any]) -> None:
26
- Abstract method that must be implemented by subclasses.
27
- It performs a transformation on a given data record based
28
- on the provided schema.
29
-
30
- Usage:
31
- To use this class, create a subclass that implements the
32
- `transform` method with the desired transformation logic.
33
- """
34
-
35
- @abstractmethod
36
- def transform(
37
- self,
38
- record: Dict[str, Any],
39
- schema: Mapping[str, Any],
40
- ) -> None:
41
- """
42
- Perform a transformation on a data record based on a given schema.
43
-
44
- Args:
45
- record (Dict[str, Any]): The data record to be transformed.
46
- schema (Mapping[str, Any]): The schema that dictates how
47
- the record should be transformed.
48
-
49
- Returns:
50
- None
51
-
52
- Raises:
53
- NotImplementedError: If the method is not implemented
54
- by a subclass.
55
- """
@@ -1,57 +0,0 @@
1
- # AsyncHttpJobRepository sequence diagram
2
-
3
- - Components marked as optional are not required and can be ignored.
4
- - if `url_requester` is not provided, `urls_extractor` will get urls from the `polling_job_response`
5
- - interpolation_context, e.g. `create_job_response` or `polling_job_response` can be obtained from stream_slice
6
-
7
-
8
- ```mermaid
9
- ---
10
- title: AsyncHttpJobRepository Sequence Diagram
11
- ---
12
- sequenceDiagram
13
- participant AsyncHttpJobRepository as AsyncOrchestrator
14
- participant CreationRequester as creation_requester
15
- participant PollingRequester as polling_requester
16
- participant UrlRequester as url_requester (Optional)
17
- participant DownloadRetriever as download_retriever
18
- participant AbortRequester as abort_requester (Optional)
19
- participant DeleteRequester as delete_requester (Optional)
20
- participant Reporting Server as Async Reporting Server
21
-
22
- AsyncHttpJobRepository ->> CreationRequester: Initiate job creation
23
- CreationRequester ->> Reporting Server: Create job request
24
- Reporting Server -->> CreationRequester: Job ID response
25
- CreationRequester -->> AsyncHttpJobRepository: Job ID
26
-
27
- loop Poll for job status
28
- AsyncHttpJobRepository ->> PollingRequester: Check job status
29
- PollingRequester ->> Reporting Server: Status request (interpolation_context: `create_job_response`)
30
- Reporting Server -->> PollingRequester: Status response
31
- PollingRequester -->> AsyncHttpJobRepository: Job status
32
- end
33
-
34
- alt Status: Ready
35
- AsyncHttpJobRepository ->> UrlRequester: Request download URLs (if applicable)
36
- UrlRequester ->> Reporting Server: URL request (interpolation_context: `polling_job_response`)
37
- Reporting Server -->> UrlRequester: Download URLs
38
- UrlRequester -->> AsyncHttpJobRepository: Download URLs
39
-
40
- AsyncHttpJobRepository ->> DownloadRetriever: Download reports
41
- DownloadRetriever ->> Reporting Server: Retrieve report data (interpolation_context: `url`)
42
- Reporting Server -->> DownloadRetriever: Report data
43
- DownloadRetriever -->> AsyncHttpJobRepository: Report data
44
- else Status: Failed
45
- AsyncHttpJobRepository ->> AbortRequester: Send abort request
46
- AbortRequester ->> Reporting Server: Abort job
47
- Reporting Server -->> AbortRequester: Abort confirmation
48
- AbortRequester -->> AsyncHttpJobRepository: Confirmation
49
- end
50
-
51
- AsyncHttpJobRepository ->> DeleteRequester: Send delete job request
52
- DeleteRequester ->> Reporting Server: Delete job
53
- Reporting Server -->> DeleteRequester: Deletion confirmation
54
- DeleteRequester -->> AsyncHttpJobRepository: Confirmation
55
-
56
-
57
- ```
@@ -1,61 +0,0 @@
1
- #
2
- # Copyright (c) 2024 Airbyte, Inc., all rights reserved.
3
- #
4
-
5
- from dataclasses import InitVar, dataclass
6
- from typing import Any, Dict, Mapping, Optional
7
-
8
- from airbyte_cdk import InterpolatedString
9
- from airbyte_cdk.sources.declarative.transformations import RecordTransformation
10
- from airbyte_cdk.sources.types import Config, StreamSlice, StreamState
11
-
12
-
13
- @dataclass
14
- class KeysReplaceTransformation(RecordTransformation):
15
- """
16
- Transformation that applies keys names replacement.
17
-
18
- Example usage:
19
- - type: KeysReplace
20
- old: " "
21
- new: "_"
22
- Result:
23
- from: {"created time": ..., "customer id": ..., "user id": ...}
24
- to: {"created_time": ..., "customer_id": ..., "user_id": ...}
25
- """
26
-
27
- old: str
28
- new: str
29
- parameters: InitVar[Mapping[str, Any]]
30
-
31
- def __post_init__(self, parameters: Mapping[str, Any]) -> None:
32
- self._old = InterpolatedString.create(self.old, parameters=parameters)
33
- self._new = InterpolatedString.create(self.new, parameters=parameters)
34
-
35
- def transform(
36
- self,
37
- record: Dict[str, Any],
38
- config: Optional[Config] = None,
39
- stream_state: Optional[StreamState] = None,
40
- stream_slice: Optional[StreamSlice] = None,
41
- ) -> None:
42
- if config is None:
43
- config = {}
44
-
45
- kwargs = {"record": record, "stream_state": stream_state, "stream_slice": stream_slice}
46
- old_key = str(self._old.eval(config, **kwargs))
47
- new_key = str(self._new.eval(config, **kwargs))
48
-
49
- def _transform(data: Dict[str, Any]) -> Dict[str, Any]:
50
- result = {}
51
- for key, value in data.items():
52
- updated_key = key.replace(old_key, new_key)
53
- if isinstance(value, dict):
54
- result[updated_key] = _transform(value)
55
- else:
56
- result[updated_key] = value
57
- return result
58
-
59
- transformed_record = _transform(record)
60
- record.clear()
61
- record.update(transformed_record)