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.
@@ -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
- self._most_recently_seen_exception = RuntimeError(f"Failed reading with error: {optional_exception}")
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
- raise RuntimeError(f"No sync mode was found for {stream.name}.")
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(
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: airbyte-cdk
3
- Version: 0.60.1
3
+ Version: 0.61.0
4
4
  Summary: A framework for writing Airbyte Connectors.
5
5
  Home-page: https://github.com/airbytehq/airbyte
6
6
  Author: Airbyte
@@ -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=zqoTlwOX8kaKS3HFKRl7aFQqJdC9U_ys2BsMyD6tp8c,4440
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=PWF1Zu7RluOapcHmE-Z-XQI_Fr7eYxeaRqnvWTsmHt0,11315
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=dXdoddombIS1JZHKJWTlRWzO_2schjus7b86d4xcCx8,8811
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.60.1.dist-info/LICENSE.txt,sha256=Wfe61S4BaGPj404v8lrAbvhjYR68SHlkzeYrg3_bbuM,1051
453
- airbyte_cdk-0.60.1.dist-info/METADATA,sha256=7QxkzZVReEfj1SSP7M66H0k4R2eEkstjQLJg8dDATUI,11073
454
- airbyte_cdk-0.60.1.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
455
- airbyte_cdk-0.60.1.dist-info/top_level.txt,sha256=edvsDKTnE6sD2wfCUaeTfKf5gQIL6CPVMwVL2sWZzqo,51
456
- airbyte_cdk-0.60.1.dist-info/RECORD,,
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,,