dc-python-sdk 1.5.46__tar.gz → 1.5.47__tar.gz

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 (35) hide show
  1. {dc_python_sdk-1.5.46/src/dc_python_sdk.egg-info → dc_python_sdk-1.5.47}/PKG-INFO +1 -1
  2. {dc_python_sdk-1.5.46 → dc_python_sdk-1.5.47}/pyproject.toml +1 -1
  3. {dc_python_sdk-1.5.46 → dc_python_sdk-1.5.47}/setup.cfg +1 -1
  4. {dc_python_sdk-1.5.46 → dc_python_sdk-1.5.47/src/dc_python_sdk.egg-info}/PKG-INFO +1 -1
  5. {dc_python_sdk-1.5.46 → dc_python_sdk-1.5.47}/src/dc_sdk/src/pipeline.py +44 -4
  6. {dc_python_sdk-1.5.46 → dc_python_sdk-1.5.47}/LICENSE +0 -0
  7. {dc_python_sdk-1.5.46 → dc_python_sdk-1.5.47}/README.md +0 -0
  8. {dc_python_sdk-1.5.46 → dc_python_sdk-1.5.47}/src/dc_python_sdk.egg-info/SOURCES.txt +0 -0
  9. {dc_python_sdk-1.5.46 → dc_python_sdk-1.5.47}/src/dc_python_sdk.egg-info/dependency_links.txt +0 -0
  10. {dc_python_sdk-1.5.46 → dc_python_sdk-1.5.47}/src/dc_python_sdk.egg-info/entry_points.txt +0 -0
  11. {dc_python_sdk-1.5.46 → dc_python_sdk-1.5.47}/src/dc_python_sdk.egg-info/requires.txt +0 -0
  12. {dc_python_sdk-1.5.46 → dc_python_sdk-1.5.47}/src/dc_python_sdk.egg-info/top_level.txt +0 -0
  13. {dc_python_sdk-1.5.46 → dc_python_sdk-1.5.47}/src/dc_sdk/__init__.py +0 -0
  14. {dc_python_sdk-1.5.46 → dc_python_sdk-1.5.47}/src/dc_sdk/app.py +0 -0
  15. {dc_python_sdk-1.5.46 → dc_python_sdk-1.5.47}/src/dc_sdk/cli.py +0 -0
  16. {dc_python_sdk-1.5.46 → dc_python_sdk-1.5.47}/src/dc_sdk/errors.py +0 -0
  17. {dc_python_sdk-1.5.46 → dc_python_sdk-1.5.47}/src/dc_sdk/handler.py +0 -0
  18. {dc_python_sdk-1.5.46 → dc_python_sdk-1.5.47}/src/dc_sdk/src/__init__.py +0 -0
  19. {dc_python_sdk-1.5.46 → dc_python_sdk-1.5.47}/src/dc_sdk/src/ai.py +0 -0
  20. {dc_python_sdk-1.5.46 → dc_python_sdk-1.5.47}/src/dc_sdk/src/ai_http.py +0 -0
  21. {dc_python_sdk-1.5.46 → dc_python_sdk-1.5.47}/src/dc_sdk/src/mapping.py +0 -0
  22. {dc_python_sdk-1.5.46 → dc_python_sdk-1.5.47}/src/dc_sdk/src/models/__init__.py +0 -0
  23. {dc_python_sdk-1.5.46 → dc_python_sdk-1.5.47}/src/dc_sdk/src/models/enums.py +0 -0
  24. {dc_python_sdk-1.5.46 → dc_python_sdk-1.5.47}/src/dc_sdk/src/models/errors.py +0 -0
  25. {dc_python_sdk-1.5.46 → dc_python_sdk-1.5.47}/src/dc_sdk/src/models/log_templates.py +0 -0
  26. {dc_python_sdk-1.5.46 → dc_python_sdk-1.5.47}/src/dc_sdk/src/models/pipeline_details.py +0 -0
  27. {dc_python_sdk-1.5.46 → dc_python_sdk-1.5.47}/src/dc_sdk/src/server.py +0 -0
  28. {dc_python_sdk-1.5.46 → dc_python_sdk-1.5.47}/src/dc_sdk/src/services/__init__.py +0 -0
  29. {dc_python_sdk-1.5.46 → dc_python_sdk-1.5.47}/src/dc_sdk/src/services/api.py +0 -0
  30. {dc_python_sdk-1.5.46 → dc_python_sdk-1.5.47}/src/dc_sdk/src/services/aws.py +0 -0
  31. {dc_python_sdk-1.5.46 → dc_python_sdk-1.5.47}/src/dc_sdk/src/services/environment.py +0 -0
  32. {dc_python_sdk-1.5.46 → dc_python_sdk-1.5.47}/src/dc_sdk/src/services/loader.py +0 -0
  33. {dc_python_sdk-1.5.46 → dc_python_sdk-1.5.47}/src/dc_sdk/src/services/logger.py +0 -0
  34. {dc_python_sdk-1.5.46 → dc_python_sdk-1.5.47}/src/dc_sdk/src/services/session.py +0 -0
  35. {dc_python_sdk-1.5.46 → dc_python_sdk-1.5.47}/src/dc_sdk/types.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dc-python-sdk
3
- Version: 1.5.46
3
+ Version: 1.5.47
4
4
  Summary: Data Connector Python SDK
5
5
  Home-page: https://github.com/data-connector/dc-python-sdk
6
6
  Author: DataConnector
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "dc-python-sdk"
7
- version = "1.5.46"
7
+ version = "1.5.47"
8
8
  description = "Data Connector Python SDK"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.6"
@@ -1,6 +1,6 @@
1
1
  [metadata]
2
2
  name = dc-python-sdk
3
- version = 1.5.46
3
+ version = 1.5.47
4
4
  author = DataConnector
5
5
  author_email = josh@dataconnector.com
6
6
  description = A small example package
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dc-python-sdk
3
- Version: 1.5.46
3
+ Version: 1.5.47
4
4
  Summary: Data Connector Python SDK
5
5
  Home-page: https://github.com/data-connector/dc-python-sdk
6
6
  Author: DataConnector
@@ -257,18 +257,58 @@ class PipelineConductor:
257
257
  self.extracted_sync_cursor = sync_cursor
258
258
 
259
259
  def _save_pending_sync_cursor(self):
260
+ if not self._should_track_sync_cursor():
261
+ return
262
+
260
263
  if self.extracted_sync_cursor is None:
264
+ self.internal_log(
265
+ "Stay in Sync: no sync cursor value was extracted from source data."
266
+ )
261
267
  return
262
268
 
263
- if self.mode == "prod":
264
- self.api.save_pending_sync_cursor(self.pipeline_id, self.extracted_sync_cursor)
269
+ if self.mode != "prod":
270
+ self.internal_log(
271
+ f"Stay in Sync: extracted sync cursor {self.extracted_sync_cursor} (dev mode; not saved)."
272
+ )
273
+ return
274
+
275
+ try:
276
+ self.api.save_pending_sync_cursor(
277
+ self.pipeline_id, self.extracted_sync_cursor
278
+ )
279
+ self.log(
280
+ f"Stay in Sync: saved pending sync cursor {self.extracted_sync_cursor}."
281
+ )
282
+ except Exception as e:
283
+ self.log(
284
+ f"Stay in Sync: failed to save pending sync cursor {self.extracted_sync_cursor}. {e}"
285
+ )
265
286
 
266
287
  def _persist_sync_cursor_after_load(self):
267
288
  if self.task != "DESTINATION":
268
289
  return
269
290
 
270
- if self.mode == "prod":
271
- self.api.commit_sync_cursor(self.pipeline_id)
291
+ if self.mode != "prod":
292
+ return
293
+
294
+ try:
295
+ result = self.api.commit_sync_cursor(self.pipeline_id)
296
+ if result.get("committed"):
297
+ sync_cursor_dsc = result.get("sync_cursor_dsc", "")
298
+ self.log(
299
+ f"Stay in Sync: committed sync cursor {sync_cursor_dsc}."
300
+ )
301
+ else:
302
+ self.log(
303
+ "Stay in Sync: destination load finished but no pending sync cursor was committed."
304
+ )
305
+ except Exception as e:
306
+ self.log(
307
+ f"Stay in Sync: failed to commit sync cursor during destination load. {e}"
308
+ )
309
+ self.internal_log(
310
+ "Stay in Sync: commit will be retried when the pipeline run history is finalized."
311
+ )
272
312
 
273
313
  def _call_connector_load_data(
274
314
  self,
File without changes
File without changes