omnata-plugin-runtime 0.5.4a121__tar.gz → 0.5.4a123__tar.gz
Sign up to get free protection for your applications and to get access to all the features.
- {omnata_plugin_runtime-0.5.4a121 → omnata_plugin_runtime-0.5.4a123}/PKG-INFO +1 -1
- {omnata_plugin_runtime-0.5.4a121 → omnata_plugin_runtime-0.5.4a123}/pyproject.toml +1 -1
- {omnata_plugin_runtime-0.5.4a121 → omnata_plugin_runtime-0.5.4a123}/src/omnata_plugin_runtime/configuration.py +8 -1
- {omnata_plugin_runtime-0.5.4a121 → omnata_plugin_runtime-0.5.4a123}/src/omnata_plugin_runtime/omnata_plugin.py +7 -3
- {omnata_plugin_runtime-0.5.4a121 → omnata_plugin_runtime-0.5.4a123}/LICENSE +0 -0
- {omnata_plugin_runtime-0.5.4a121 → omnata_plugin_runtime-0.5.4a123}/README.md +0 -0
- {omnata_plugin_runtime-0.5.4a121 → omnata_plugin_runtime-0.5.4a123}/src/omnata_plugin_runtime/__init__.py +0 -0
- {omnata_plugin_runtime-0.5.4a121 → omnata_plugin_runtime-0.5.4a123}/src/omnata_plugin_runtime/api.py +0 -0
- {omnata_plugin_runtime-0.5.4a121 → omnata_plugin_runtime-0.5.4a123}/src/omnata_plugin_runtime/forms.py +0 -0
- {omnata_plugin_runtime-0.5.4a121 → omnata_plugin_runtime-0.5.4a123}/src/omnata_plugin_runtime/logging.py +0 -0
- {omnata_plugin_runtime-0.5.4a121 → omnata_plugin_runtime-0.5.4a123}/src/omnata_plugin_runtime/plugin_entrypoints.py +0 -0
- {omnata_plugin_runtime-0.5.4a121 → omnata_plugin_runtime-0.5.4a123}/src/omnata_plugin_runtime/rate_limiting.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
[tool.poetry]
|
2
2
|
name = "omnata-plugin-runtime"
|
3
|
-
version = "0.5.4-
|
3
|
+
version = "0.5.4-a123"
|
4
4
|
description = "Classes and common runtime components for building and running Omnata Plugins"
|
5
5
|
authors = ["James Weakley <james.weakley@omnata.com>"]
|
6
6
|
readme = "README.md"
|
@@ -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}
|
2047
|
-
|
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
|
File without changes
|
File without changes
|
File without changes
|
{omnata_plugin_runtime-0.5.4a121 → omnata_plugin_runtime-0.5.4a123}/src/omnata_plugin_runtime/api.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|