omnata-plugin-runtime 0.5.4a121__py3-none-any.whl → 0.5.4a123__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
  """
@@ -2042,9 +2042,13 @@ def __managed_inbound_processing_worker(
2042
2042
  # restore the first argument, was originally the dataframe/generator but now it's the appropriately sized dataframe
2043
2043
  try:
2044
2044
  logger.info(f"worker {worker_index} processing stream {stream.stream_name}, invoking plugin class method {method.__name__}")
2045
- method(plugin_class_obj, *(stream, *method_args), **method_kwargs)
2046
- logger.info(f"worker {worker_index} completed processing stream {stream.stream_name}, marking as complete")
2047
- plugin_class_obj._sync_request.mark_stream_complete(stream.stream_name)
2045
+ result = method(plugin_class_obj, *(stream, *method_args), **method_kwargs)
2046
+ logger.info(f"worker {worker_index} completed processing stream {stream.stream_name}")
2047
+ if result is not None and result is False:
2048
+ logger.info(f"worker {worker_index} requested that {stream.stream_name} be not marked as complete")
2049
+ else:
2050
+ logger.info(f"worker {worker_index} marking stream {stream.stream_name} as complete")
2051
+ plugin_class_obj._sync_request.mark_stream_complete(stream.stream_name)
2048
2052
  except InterruptedWhileWaitingException:
2049
2053
  # If an inbound run is cancelled while waiting for rate limiting, this should mean that
2050
2054
  # the cancellation is handled elsewhere, so we don't need to do anything special here other than stop waiting
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: omnata-plugin-runtime
3
- Version: 0.5.4a121
3
+ Version: 0.5.4a123
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=zIk8dS5m4pXsVy_2im-Cd-t1uQV9hf1seosb1T2jGGs,110880
6
+ omnata_plugin_runtime/omnata_plugin.py,sha256=_13zy630P_fPyrqCuRStXOy9iIEZnUSZNBSeHYxkujQ,111179
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.4a121.dist-info/LICENSE,sha256=IMF9i4xIpgCADf0U-V1cuf9HBmqWQd3qtI3FSuyW4zE,26526
10
- omnata_plugin_runtime-0.5.4a121.dist-info/METADATA,sha256=kEkHqK291jhDAXEY-5BYmP2m-6RxTt3YPjv7-o7mFlY,1951
11
- omnata_plugin_runtime-0.5.4a121.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
12
- omnata_plugin_runtime-0.5.4a121.dist-info/RECORD,,
9
+ omnata_plugin_runtime-0.5.4a123.dist-info/LICENSE,sha256=IMF9i4xIpgCADf0U-V1cuf9HBmqWQd3qtI3FSuyW4zE,26526
10
+ omnata_plugin_runtime-0.5.4a123.dist-info/METADATA,sha256=WScm8bemM94AVzeSJCYGlTJKUOVRUX7gLLJ5LOrwPHA,1951
11
+ omnata_plugin_runtime-0.5.4a123.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
12
+ omnata_plugin_runtime-0.5.4a123.dist-info/RECORD,,