omnata-plugin-runtime 0.5.3__py3-none-any.whl → 0.5.4__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.
- omnata_plugin_runtime/configuration.py +8 -1
 - omnata_plugin_runtime/forms.py +1 -1
 - omnata_plugin_runtime/omnata_plugin.py +24 -17
 - {omnata_plugin_runtime-0.5.3.dist-info → omnata_plugin_runtime-0.5.4.dist-info}/METADATA +1 -1
 - omnata_plugin_runtime-0.5.4.dist-info/RECORD +12 -0
 - omnata_plugin_runtime-0.5.3.dist-info/RECORD +0 -12
 - {omnata_plugin_runtime-0.5.3.dist-info → omnata_plugin_runtime-0.5.4.dist-info}/LICENSE +0 -0
 - {omnata_plugin_runtime-0.5.3.dist-info → omnata_plugin_runtime-0.5.4.dist-info}/WHEEL +0 -0
 
| 
         @@ -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 
     | 
    
         
             
                """
         
     | 
    
        omnata_plugin_runtime/forms.py
    CHANGED
    
    | 
         @@ -209,7 +209,7 @@ class FormSliderField(SubscriptableBaseModel): 
     | 
|
| 
       209 
209 
     | 
    
         | 
| 
       210 
210 
     | 
    
         
             
                name: str
         
     | 
| 
       211 
211 
     | 
    
         
             
                label: str
         
     | 
| 
       212 
     | 
    
         
            -
                default_value: Optional[str] = Field(default=None)
         
     | 
| 
      
 212 
     | 
    
         
            +
                default_value: Optional[Union[str,int]] = Field(default=None)
         
     | 
| 
       213 
213 
     | 
    
         
             
                secret: bool = Field(default=False)
         
     | 
| 
       214 
214 
     | 
    
         
             
                required: bool = Field(default=False)
         
     | 
| 
       215 
215 
     | 
    
         
             
                depends_on: Optional[str] = Field(default=None)
         
     | 
| 
         @@ -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 
     | 
    
         
            -
                     
     | 
| 
       1011 
     | 
    
         
            -
             
     | 
| 
       1012 
     | 
    
         
            -
                             
     | 
| 
       1013 
     | 
    
         
            -
             
     | 
| 
       1014 
     | 
    
         
            -
             
     | 
| 
       1015 
     | 
    
         
            -
             
     | 
| 
       1016 
     | 
    
         
            -
             
     | 
| 
       1017 
     | 
    
         
            -
             
     | 
| 
       1018 
     | 
    
         
            -
             
     | 
| 
       1019 
     | 
    
         
            -
             
     | 
| 
       1020 
     | 
    
         
            -
             
     | 
| 
       1021 
     | 
    
         
            -
             
     | 
| 
       1022 
     | 
    
         
            -
             
     | 
| 
       1023 
     | 
    
         
            -
             
     | 
| 
      
 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 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):
         
     | 
| 
         @@ -2042,9 +2045,13 @@ def __managed_inbound_processing_worker( 
     | 
|
| 
       2042 
2045 
     | 
    
         
             
                        # restore the first argument, was originally the dataframe/generator but now it's the appropriately sized dataframe
         
     | 
| 
       2043 
2046 
     | 
    
         
             
                        try:
         
     | 
| 
       2044 
2047 
     | 
    
         
             
                            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 
     | 
    
         
            -
                             
     | 
| 
      
 2048 
     | 
    
         
            +
                            result = method(plugin_class_obj, *(stream, *method_args), **method_kwargs)
         
     | 
| 
      
 2049 
     | 
    
         
            +
                            logger.info(f"worker {worker_index} completed processing stream {stream.stream_name}")
         
     | 
| 
      
 2050 
     | 
    
         
            +
                            if result is not None and result is False:
         
     | 
| 
      
 2051 
     | 
    
         
            +
                                logger.info(f"worker {worker_index} requested that {stream.stream_name} be not marked as complete")
         
     | 
| 
      
 2052 
     | 
    
         
            +
                            else:
         
     | 
| 
      
 2053 
     | 
    
         
            +
                                logger.info(f"worker {worker_index} marking stream {stream.stream_name} as complete")
         
     | 
| 
      
 2054 
     | 
    
         
            +
                                plugin_class_obj._sync_request.mark_stream_complete(stream.stream_name)
         
     | 
| 
       2048 
2055 
     | 
    
         
             
                        except InterruptedWhileWaitingException:
         
     | 
| 
       2049 
2056 
     | 
    
         
             
                            # If an inbound run is cancelled while waiting for rate limiting, this should mean that
         
     | 
| 
       2050 
2057 
     | 
    
         
             
                            # the cancellation is handled elsewhere, so we don't need to do anything special here other than stop waiting
         
     | 
| 
         @@ -0,0 +1,12 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            omnata_plugin_runtime/__init__.py,sha256=MS9d1whnfT_B3-ThqZ7l63QeC_8OEKTuaYV5wTwRpBA,1576
         
     | 
| 
      
 2 
     | 
    
         
            +
            omnata_plugin_runtime/api.py,sha256=FxzTqri4no8ClkOm7vZADG8aD47jcGBCTTQDEORmOJM,6326
         
     | 
| 
      
 3 
     | 
    
         
            +
            omnata_plugin_runtime/configuration.py,sha256=g_p8z0b23FQInlAaPuLIxpH_qoAbaEZp2ZL3m7Xml-A,36631
         
     | 
| 
      
 4 
     | 
    
         
            +
            omnata_plugin_runtime/forms.py,sha256=GzSPEwcijsoPCXEO1mHiE8ylvX_KSE5TkhwqkymA2Ss,19755
         
     | 
| 
      
 5 
     | 
    
         
            +
            omnata_plugin_runtime/logging.py,sha256=bn7eKoNWvtuyTk7RTwBS9UARMtqkiICtgMtzq3KA2V0,3272
         
     | 
| 
      
 6 
     | 
    
         
            +
            omnata_plugin_runtime/omnata_plugin.py,sha256=XyiWPEFKoH0H8bYuTVgTacpL5OM2K3lVRjlayENuR9A,111528
         
     | 
| 
      
 7 
     | 
    
         
            +
            omnata_plugin_runtime/plugin_entrypoints.py,sha256=JirYUbPBaN0UMh9t_uAHDdhaQZ7NUhdMJ11eHRKOoNY,29302
         
     | 
| 
      
 8 
     | 
    
         
            +
            omnata_plugin_runtime/rate_limiting.py,sha256=DVQ_bc-mVLBkrU1PTns1MWXhHiLpSB5HkWCcdePtJ2A,25611
         
     | 
| 
      
 9 
     | 
    
         
            +
            omnata_plugin_runtime-0.5.4.dist-info/LICENSE,sha256=IMF9i4xIpgCADf0U-V1cuf9HBmqWQd3qtI3FSuyW4zE,26526
         
     | 
| 
      
 10 
     | 
    
         
            +
            omnata_plugin_runtime-0.5.4.dist-info/METADATA,sha256=WplHHMcEM4pLjgbYACc2B4d8oYsADqDIcP7BSLn6qb8,1947
         
     | 
| 
      
 11 
     | 
    
         
            +
            omnata_plugin_runtime-0.5.4.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
         
     | 
| 
      
 12 
     | 
    
         
            +
            omnata_plugin_runtime-0.5.4.dist-info/RECORD,,
         
     | 
| 
         @@ -1,12 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            omnata_plugin_runtime/__init__.py,sha256=MS9d1whnfT_B3-ThqZ7l63QeC_8OEKTuaYV5wTwRpBA,1576
         
     | 
| 
       2 
     | 
    
         
            -
            omnata_plugin_runtime/api.py,sha256=FxzTqri4no8ClkOm7vZADG8aD47jcGBCTTQDEORmOJM,6326
         
     | 
| 
       3 
     | 
    
         
            -
            omnata_plugin_runtime/configuration.py,sha256=4eKYhw6_l-RUVUwNU5NlTpPwL7xZRs6VLaCKf8OIKuY,36420
         
     | 
| 
       4 
     | 
    
         
            -
            omnata_plugin_runtime/forms.py,sha256=42o3DJnnxJ-W92pNaF5MuawvDPUK5O0azvn80HDxTZM,19744
         
     | 
| 
       5 
     | 
    
         
            -
            omnata_plugin_runtime/logging.py,sha256=bn7eKoNWvtuyTk7RTwBS9UARMtqkiICtgMtzq3KA2V0,3272
         
     | 
| 
       6 
     | 
    
         
            -
            omnata_plugin_runtime/omnata_plugin.py,sha256=zIk8dS5m4pXsVy_2im-Cd-t1uQV9hf1seosb1T2jGGs,110880
         
     | 
| 
       7 
     | 
    
         
            -
            omnata_plugin_runtime/plugin_entrypoints.py,sha256=JirYUbPBaN0UMh9t_uAHDdhaQZ7NUhdMJ11eHRKOoNY,29302
         
     | 
| 
       8 
     | 
    
         
            -
            omnata_plugin_runtime/rate_limiting.py,sha256=DVQ_bc-mVLBkrU1PTns1MWXhHiLpSB5HkWCcdePtJ2A,25611
         
     | 
| 
       9 
     | 
    
         
            -
            omnata_plugin_runtime-0.5.3.dist-info/LICENSE,sha256=IMF9i4xIpgCADf0U-V1cuf9HBmqWQd3qtI3FSuyW4zE,26526
         
     | 
| 
       10 
     | 
    
         
            -
            omnata_plugin_runtime-0.5.3.dist-info/METADATA,sha256=NjxZcT3Dc8AZ44OHNjr1LYIyIO9Mt3mCrh45kd9zlf4,1947
         
     | 
| 
       11 
     | 
    
         
            -
            omnata_plugin_runtime-0.5.3.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
         
     | 
| 
       12 
     | 
    
         
            -
            omnata_plugin_runtime-0.5.3.dist-info/RECORD,,
         
     | 
| 
         
            File without changes
         
     | 
| 
         
            File without changes
         
     |