airbyte-cdk 0.60.1__py3-none-any.whl → 0.61.0__py3-none-any.whl
Sign up to get free protection for your applications and to get access to all the features.
- airbyte_cdk/sources/concurrent_source/thread_pool_manager.py +5 -1
- airbyte_cdk/sources/file_based/file_based_source.py +1 -1
- airbyte_cdk/sources/streams/concurrent/cursor.py +11 -1
- {airbyte_cdk-0.60.1.dist-info → airbyte_cdk-0.61.0.dist-info}/METADATA +1 -1
- {airbyte_cdk-0.60.1.dist-info → airbyte_cdk-0.61.0.dist-info}/RECORD +8 -8
- {airbyte_cdk-0.60.1.dist-info → airbyte_cdk-0.61.0.dist-info}/LICENSE.txt +0 -0
- {airbyte_cdk-0.60.1.dist-info → airbyte_cdk-0.61.0.dist-info}/WHEEL +0 -0
- {airbyte_cdk-0.60.1.dist-info → airbyte_cdk-0.61.0.dist-info}/top_level.txt +0 -0
@@ -64,7 +64,11 @@ class ThreadPoolManager:
|
|
64
64
|
if optional_exception:
|
65
65
|
# Exception handling should be done in the main thread. Hence, we only store the exception and expect the main
|
66
66
|
# thread to call raise_if_exception
|
67
|
-
|
67
|
+
# We do not expect this error to happen. The futures created during concurrent syncs should catch the exception and
|
68
|
+
# push it to the queue. If this exception occurs, please review the futures and how they handle exceptions.
|
69
|
+
self._most_recently_seen_exception = RuntimeError(
|
70
|
+
f"Failed processing a future: {optional_exception}. Please contact the Airbyte team."
|
71
|
+
)
|
68
72
|
futures.pop(index)
|
69
73
|
|
70
74
|
def shutdown(self) -> None:
|
@@ -182,7 +182,7 @@ class FileBasedSource(ConcurrentSourceAdapter, ABC):
|
|
182
182
|
for catalog_stream in self.catalog.streams:
|
183
183
|
if stream.name == catalog_stream.stream.name:
|
184
184
|
return catalog_stream.sync_mode
|
185
|
-
|
185
|
+
self.logger.warning(f"No sync mode was found for {stream.name}.")
|
186
186
|
return None
|
187
187
|
|
188
188
|
def read(
|
@@ -153,9 +153,19 @@ class ConcurrentCursor(Cursor):
|
|
153
153
|
)
|
154
154
|
elif self._most_recent_record:
|
155
155
|
if self._has_closed_at_least_one_slice:
|
156
|
+
# If we track state value using records cursor field, we can only do that if there is one partition. This is because we save
|
157
|
+
# the state every time we close a partition. We assume that if there are multiple slices, they need to be providing
|
158
|
+
# boundaries. There are cases where partitions could not have boundaries:
|
159
|
+
# * The cursor should be per-partition
|
160
|
+
# * The stream state is actually the parent stream state
|
161
|
+
# There might be other cases not listed above. Those are not supported today hence the stream should not use this cursor for
|
162
|
+
# state management. For the specific user that was affected with this issue, we need to:
|
163
|
+
# * Fix state tracking (which is currently broken)
|
164
|
+
# * Make the new version available
|
165
|
+
# * (Probably) ask the user to reset the stream to avoid data loss
|
156
166
|
raise ValueError(
|
157
167
|
"Given that slice_boundary_fields is not defined and that per-partition state is not supported, only one slice is "
|
158
|
-
"expected."
|
168
|
+
"expected. Please contact the Airbyte team."
|
159
169
|
)
|
160
170
|
|
161
171
|
self.state["slices"].append(
|
@@ -35,7 +35,7 @@ airbyte_cdk/sources/concurrent_source/concurrent_read_processor.py,sha256=rU1xho
|
|
35
35
|
airbyte_cdk/sources/concurrent_source/concurrent_source.py,sha256=prTBbXcdzwF4-xou23EY-YhUKmQJc7czakYZzGWjDko,8828
|
36
36
|
airbyte_cdk/sources/concurrent_source/concurrent_source_adapter.py,sha256=51024BYRa3WT9duiP7CJ2dJjEwMRhMyRnwj2MRNdfuA,3260
|
37
37
|
airbyte_cdk/sources/concurrent_source/partition_generation_completed_sentinel.py,sha256=z1t-rAZBsqVidv2fpUlPHE9JgyXsITuGk4AMu96mXSQ,696
|
38
|
-
airbyte_cdk/sources/concurrent_source/thread_pool_manager.py,sha256=
|
38
|
+
airbyte_cdk/sources/concurrent_source/thread_pool_manager.py,sha256=hFj5rsRtORurl3fwH8GC9h6Uz2wbzBFOLWUxJ-YJ7J8,4801
|
39
39
|
airbyte_cdk/sources/declarative/__init__.py,sha256=ZnqYNxHsKCgO38IwB34RQyRMXTs4GTvlRi3ImKnIioo,61
|
40
40
|
airbyte_cdk/sources/declarative/create_partial.py,sha256=sUJOwD8hBzW4pxw2XhYlSTMgl-WMc5WpP5Oq_jo3fHw,3371
|
41
41
|
airbyte_cdk/sources/declarative/declarative_component_schema.yaml,sha256=4KtVA54eDmZt8JAFuHLwQv8PmhOmiiaGRBNUgcAQBzQ,87107
|
@@ -153,7 +153,7 @@ airbyte_cdk/sources/embedded/runner.py,sha256=kZ0CcUANuMjdZ4fmvp_w9P2IcsS9WSHxNq
|
|
153
153
|
airbyte_cdk/sources/embedded/tools.py,sha256=-Z4tZ4AP1OTi_zrqFM3YV8Rt7c60wvsrv0Dc-rTZ2uw,744
|
154
154
|
airbyte_cdk/sources/file_based/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
155
155
|
airbyte_cdk/sources/file_based/exceptions.py,sha256=-SjdDk-mbkp5qQVUESkn788W8NmGtC2LROkZRKS_Dxc,5613
|
156
|
-
airbyte_cdk/sources/file_based/file_based_source.py,sha256=
|
156
|
+
airbyte_cdk/sources/file_based/file_based_source.py,sha256=Hs9q27db2x5wnvmo7uN8NVM0EGp-7KK_R4IjR2ig3tU,11316
|
157
157
|
airbyte_cdk/sources/file_based/file_based_stream_reader.py,sha256=K9fFHcSL4E8v-X2l38wRAcZCjpyifr35orvby8vQt84,3749
|
158
158
|
airbyte_cdk/sources/file_based/remote_file.py,sha256=dtRX7X06Fug-XDz93a5lkwPQy5nQgxH0-ZcXW2HuMGI,312
|
159
159
|
airbyte_cdk/sources/file_based/schema_helpers.py,sha256=XBkOutIw_n6SNYU34qbyTbl0Ppt0i4k3sVFMSaX3wJo,9103
|
@@ -205,7 +205,7 @@ airbyte_cdk/sources/streams/concurrent/abstract_stream.py,sha256=HlnmAh-LcQbs9g1
|
|
205
205
|
airbyte_cdk/sources/streams/concurrent/abstract_stream_facade.py,sha256=QTry1QCBUwJDw1QSCEvz23s7zIEx_7QMxkPq9j-oPIQ,1358
|
206
206
|
airbyte_cdk/sources/streams/concurrent/adapters.py,sha256=FokiPnhjn3IQpRyQ6rr0ABJKYU0Sd1kNulWlQV_nuX8,16781
|
207
207
|
airbyte_cdk/sources/streams/concurrent/availability_strategy.py,sha256=8xDRpfktnARBbRi_RwznvKuoGrpPF2b6tQyloMwogkM,2013
|
208
|
-
airbyte_cdk/sources/streams/concurrent/cursor.py,sha256=
|
208
|
+
airbyte_cdk/sources/streams/concurrent/cursor.py,sha256=6Z-PQWp1Jszryao4nSvHEUyKxX3Uur4Jk1MTsQ9AxQY,9782
|
209
209
|
airbyte_cdk/sources/streams/concurrent/default_stream.py,sha256=qPhMaLxGdR29kyMeA-YrHg-XePgPNDjactQPKbp56RA,3009
|
210
210
|
airbyte_cdk/sources/streams/concurrent/exceptions.py,sha256=-WETGIY5_QFmVeDFiqm4WhRJ_nNCkfcDwOQqx6cSqrI,365
|
211
211
|
airbyte_cdk/sources/streams/concurrent/helpers.py,sha256=FPdGovWg0_hPxoTCAJnqs2SEqEq32pRGKlvPMP7hGWo,1290
|
@@ -449,8 +449,8 @@ unit_tests/utils/test_schema_inferrer.py,sha256=Z2jHBZ540wnYkylIdV_2xr75Vtwlxuyg
|
|
449
449
|
unit_tests/utils/test_secret_utils.py,sha256=XKe0f1RHYii8iwE6ATmBr5JGDI1pzzrnZUGdUSMJQP4,4886
|
450
450
|
unit_tests/utils/test_stream_status_utils.py,sha256=Xr8MZ2HWgTVIyMbywDvuYkRaUF4RZLQOT8-JjvcfR24,2970
|
451
451
|
unit_tests/utils/test_traced_exception.py,sha256=bDFP5zMBizFenz6V2WvEZTRCKGB5ijh3DBezjbfoYIs,4198
|
452
|
-
airbyte_cdk-0.
|
453
|
-
airbyte_cdk-0.
|
454
|
-
airbyte_cdk-0.
|
455
|
-
airbyte_cdk-0.
|
456
|
-
airbyte_cdk-0.
|
452
|
+
airbyte_cdk-0.61.0.dist-info/LICENSE.txt,sha256=Wfe61S4BaGPj404v8lrAbvhjYR68SHlkzeYrg3_bbuM,1051
|
453
|
+
airbyte_cdk-0.61.0.dist-info/METADATA,sha256=r_LmEtsi7KUJ7VTh1dzH6lRlxgS443clN5_oRcwlegw,11073
|
454
|
+
airbyte_cdk-0.61.0.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
|
455
|
+
airbyte_cdk-0.61.0.dist-info/top_level.txt,sha256=edvsDKTnE6sD2wfCUaeTfKf5gQIL6CPVMwVL2sWZzqo,51
|
456
|
+
airbyte_cdk-0.61.0.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|