omnata-plugin-runtime 0.5.4a122__py3-none-any.whl → 0.5.4a124__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.
@@ -8,7 +8,7 @@ from typing import Any, List, Dict, Literal, Union, Optional
8
8
  from enum import Enum
9
9
 
10
10
  from abc import ABC
11
- from pydantic import BaseModel, Field, PrivateAttr, SerializationInfo, model_serializer, validator # pylint: disable=no-name-in-module
11
+ from pydantic import BaseModel, Field, PrivateAttr, SerializationInfo, field_validator, model_serializer, validator # pylint: disable=no-name-in-module
12
12
 
13
13
  if tuple(sys.version_info[:2]) >= (3, 9):
14
14
  # Python 3.9 and above
@@ -449,6 +449,13 @@ class StoredStreamConfiguration(SubscriptableBaseModel):
449
449
  stream: StreamConfiguration
450
450
  latest_state: dict = Field(default_factory=dict,description="The latest state of the stream, used for incremental syncs")
451
451
 
452
+ @field_validator('latest_state',mode='before')
453
+ @classmethod
454
+ def state_must_not_be_none(cls, v: Optional[dict]) -> dict:
455
+ if v is None:
456
+ return {}
457
+ return v
458
+
452
459
 
453
460
  class StreamConfiguration(SubscriptableBaseModel):
454
461
  """
@@ -1007,20 +1007,23 @@ class InboundSyncRequest(SyncRequest):
1007
1007
  """
1008
1008
  Sends a message to the plugin with the current progress of the sync run, if it has changed since last time.
1009
1009
  """
1010
- new_progress_update = PluginMessageStreamProgressUpdate(
1011
- stream_total_counts=self._stream_record_counts,
1012
- completed_streams=self._completed_streams,
1013
- stream_errors=self._omnata_log_handler.stream_global_errors,
1014
- total_records_estimate=self._total_records_estimate
1015
- )
1016
- if self._last_stream_progress_update is None or new_progress_update != self._last_stream_progress_update:
1017
- result = self._plugin_message(
1018
- message=new_progress_update,
1019
- ignore_errors=ignore_errors
1020
- )
1021
- if result is None:
1022
- return False
1023
- self._last_stream_progress_update = new_progress_update
1010
+ if self._apply_results is not None:
1011
+ with self._apply_results_lock:
1012
+ new_progress_update = PluginMessageStreamProgressUpdate(
1013
+ stream_total_counts=self._stream_record_counts,
1014
+ # records could have been marked as completed, but still have results to apply
1015
+ completed_streams=[s for s in self._completed_streams if s not in self._apply_results[s] or self._apply_results[s] is None],
1016
+ stream_errors=self._omnata_log_handler.stream_global_errors,
1017
+ total_records_estimate=self._total_records_estimate
1018
+ )
1019
+ if self._last_stream_progress_update is None or new_progress_update != self._last_stream_progress_update:
1020
+ result = self._plugin_message(
1021
+ message=new_progress_update,
1022
+ ignore_errors=ignore_errors
1023
+ )
1024
+ if result is None:
1025
+ return False
1026
+ self._last_stream_progress_update = new_progress_update
1024
1027
  return True
1025
1028
 
1026
1029
  def apply_cancellation(self):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: omnata-plugin-runtime
3
- Version: 0.5.4a122
3
+ Version: 0.5.4a124
4
4
  Summary: Classes and common runtime components for building and running Omnata Plugins
5
5
  Author: James Weakley
6
6
  Author-email: james.weakley@omnata.com
@@ -1,12 +1,12 @@
1
1
  omnata_plugin_runtime/__init__.py,sha256=MS9d1whnfT_B3-ThqZ7l63QeC_8OEKTuaYV5wTwRpBA,1576
2
2
  omnata_plugin_runtime/api.py,sha256=FxzTqri4no8ClkOm7vZADG8aD47jcGBCTTQDEORmOJM,6326
3
- omnata_plugin_runtime/configuration.py,sha256=4eKYhw6_l-RUVUwNU5NlTpPwL7xZRs6VLaCKf8OIKuY,36420
3
+ omnata_plugin_runtime/configuration.py,sha256=g_p8z0b23FQInlAaPuLIxpH_qoAbaEZp2ZL3m7Xml-A,36631
4
4
  omnata_plugin_runtime/forms.py,sha256=GzSPEwcijsoPCXEO1mHiE8ylvX_KSE5TkhwqkymA2Ss,19755
5
5
  omnata_plugin_runtime/logging.py,sha256=bn7eKoNWvtuyTk7RTwBS9UARMtqkiICtgMtzq3KA2V0,3272
6
- omnata_plugin_runtime/omnata_plugin.py,sha256=_13zy630P_fPyrqCuRStXOy9iIEZnUSZNBSeHYxkujQ,111179
6
+ omnata_plugin_runtime/omnata_plugin.py,sha256=k0LOLIO9DU1z1a2vISM7-y4wpZqy1Qu-uSgQes91vn4,111531
7
7
  omnata_plugin_runtime/plugin_entrypoints.py,sha256=JirYUbPBaN0UMh9t_uAHDdhaQZ7NUhdMJ11eHRKOoNY,29302
8
8
  omnata_plugin_runtime/rate_limiting.py,sha256=DVQ_bc-mVLBkrU1PTns1MWXhHiLpSB5HkWCcdePtJ2A,25611
9
- omnata_plugin_runtime-0.5.4a122.dist-info/LICENSE,sha256=IMF9i4xIpgCADf0U-V1cuf9HBmqWQd3qtI3FSuyW4zE,26526
10
- omnata_plugin_runtime-0.5.4a122.dist-info/METADATA,sha256=nhK1zNYD6bVZfgYkcH6aqxs-EfutxlfD2vq1W4Sc8SY,1951
11
- omnata_plugin_runtime-0.5.4a122.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
12
- omnata_plugin_runtime-0.5.4a122.dist-info/RECORD,,
9
+ omnata_plugin_runtime-0.5.4a124.dist-info/LICENSE,sha256=IMF9i4xIpgCADf0U-V1cuf9HBmqWQd3qtI3FSuyW4zE,26526
10
+ omnata_plugin_runtime-0.5.4a124.dist-info/METADATA,sha256=RdwlOcIhcS6KKo53y3quCc60iGpX1bfwlM8SqIr9HyI,1951
11
+ omnata_plugin_runtime-0.5.4a124.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
12
+ omnata_plugin_runtime-0.5.4a124.dist-info/RECORD,,