Installation

XmsCore can be installed using Anaconda.

You can install XmsCore using the conda command:

conda install -c aquaveo xmscore

This will install XmsCore and all the needed dependencies.

Usage

Currently the xmscore python library only has one public interface. The Observer interface is used by some of the classes in other aquaveo libraries to help determine progress of certain work flows. The Observer class has several functions that you can override to get the progress from functions that accept an Observer object.

from xms.core.misc import Observer

class ExampleObserver(Observer):
    """Mock Observer class for testing."""

    def __init__(self):
        self.status = {
            'operation': None,
            'operation_end': False,
            'operation_begin': False,
            'percent_complete': None,
            'message': '',
            'remaining_seconds': None,
            'elapsed_seconds': None
        }
        super(ExampleObserver, self).__init__()

    def on_progress_status(self, percent_complete):
        self.status['percent_complete'] = percent_complete

    def on_begin_operation_string(self, operation):
        self.status['operation_begin'] = True
        self.status['operation'] = operation

    def on_end_operation(self):
        self.status['operation_end'] = True

    def on_update_message(self, message):
        self.status['message'] = message

    def time_remaining_in_seconds(self, remaining_seconds):
        self.status['remaining_seconds'] = remaining_seconds

    def time_elapsed_in_seconds(self, elapsed_seconds):
        self.status['elapsed_seconds'] = elapsed_seconds

This example Observer can be passed to other classes/functions such as set_observer function of the InterpIdw class. As the interp class goes through operations, this example observer will update the dictionary and you can retrieve the desired data.