diff --git a/main/_sources/usage.rst.txt b/main/_sources/usage.rst.txt index aaefda6..b9522b4 100644 --- a/main/_sources/usage.rst.txt +++ b/main/_sources/usage.rst.txt @@ -174,13 +174,23 @@ Each *job* stores its data and logs in its own *job* folder, which is a subfolde Note that a *pipeline* dashboard functionality is planned for a future version of ``tomato``. -Final job data -************** +Final job data and metadata +*************************** By default, all data in the *job* folder is processed to create a NetCDF file. The NetCDF files can be read using :func:`xaray.open_datatree`, returning a :class:`xarray.DataTree`. -In the root node of the :class:`~xarray.DataTree`, a copy of the full *payload* is included, serialised as a json :class:`str`. Additionally, execution-specific metadata, such as the *pipeline* ``name``, and *job* submission/execution/completion time are stored on the root node, too. +In the root node of the :class:`~xarray.DataTree`, the :obj:`attrs` dictionary contains all **tomato**-relevant metadata. This currently includes: -The child nodes of the :class:`~xarray.DataTree` contain the actual data from each *pipeline* *component*, unit-annotated using the CF Metadata Conventions. The node names correspond to the ``role`` that *component* fullfils in a *pipeline*. +- ``tomato_version`` which is the version of **tomato** used to create the NetCDF file, +- ``tomato_Job`` which is the *job* object serialised as a json :class:`str`, containing the full *payload*, sample information, as well as *job* submission/execution/completion time. + +The child nodes of the :class:`~xarray.DataTree` contain: + +- the actual data from each *pipeline* *component*, unit-annotated using the CF Metadata Conventions. The node names correspond to the ``role`` that *component* fullfils in a *pipeline*. +- a ``tomato_Component`` entry in the :obj:`attrs` object, which is the *component* object serialised as a json :class:`str`, containing information about the *device* address and channel that define the *component*, the *driver* and *device* names, as well as the *component* capabilities. + +.. note:: + + The ``tomato_Job`` and ``tomato_Component`` entries can be converted back to the source objects using :func:`tomato.models.Job.model_validate_json` and :func:`tomato.models.Component.model_validate_json`, respectively. .. note:: diff --git a/main/_static/documentation_options.js b/main/_static/documentation_options.js index 0f8e147..446079c 100644 --- a/main/_static/documentation_options.js +++ b/main/_static/documentation_options.js @@ -1,5 +1,5 @@ const DOCUMENTATION_OPTIONS = { - VERSION: '1.0rc3.dev1', + VERSION: '1.0rc3.dev2', LANGUAGE: 'en', COLLAPSE_INDEX: false, BUILDER: 'html', diff --git a/main/apidoc/tomato.daemon.html b/main/apidoc/tomato.daemon.html index be289af..d727185 100644 --- a/main/apidoc/tomato.daemon.html +++ b/main/apidoc/tomato.daemon.html @@ -4,7 +4,7 @@ - tomato.daemon package — tomato 1.0rc3.dev1 documentation + tomato.daemon package — tomato 1.0rc3.dev2 documentation @@ -16,7 +16,7 @@ - + @@ -39,7 +39,7 @@
- 1.0rc3.dev1 + 1.0rc3.dev2
@@ -287,9 +287,9 @@

tomato.daemon.cmd: command parsing for tomato daemon
-tomato.daemon.io.merge_netcdfs(jobpath: Path, outpath: Path)
-

Merges the individual pickled xr.Datasets of each Component found in -jobpath into a single xr.DataTree, which is then stored in the NetCDF file, +tomato.daemon.io.merge_netcdfs(job: Job, snapshot=False) +

Merges the individual pickled xr.Datasets of each Component found in job.jobpath +into a single xr.DataTree, which is then stored in the NetCDF file, using the Component role as the group label.

@@ -388,7 +388,7 @@

tomato.daemon.cmd: command parsing for tomato daemon
-tomato.daemon.job.job_main_loop(context: Context, port: int, payload: Payload, pipname: str, jobpath: Path, snappath: Path, logpath: Path) None
+tomato.daemon.job.job_main_loop(context: Context, port: int, job: Job, pipname: str, logpath: Path) None

The main loop function of tomato-job, split for better readability.

@@ -422,7 +422,7 @@

tomato.daemon.cmd: command parsing for tomato daemon Other Versions - v: 1.0rc3.dev1 + v: 1.0rc3.dev2
diff --git a/main/apidoc/tomato.driverinterface_1_0.html b/main/apidoc/tomato.driverinterface_1_0.html index fd0b990..472100e 100644 --- a/main/apidoc/tomato.driverinterface_1_0.html +++ b/main/apidoc/tomato.driverinterface_1_0.html @@ -4,7 +4,7 @@ - tomato.driverinterface_1_0 package — tomato 1.0rc3.dev1 documentation + tomato.driverinterface_1_0 package — tomato 1.0rc3.dev2 documentation @@ -16,7 +16,7 @@ - + @@ -39,7 +39,7 @@
- 1.0rc3.dev1 + 1.0rc3.dev2
@@ -111,7 +111,6 @@
  • ModelInterface.dev_register()
  • ModelInterface.dev_teardown()
  • ModelInterface.dev_reset()
  • -
  • ModelInterface.attrs()
  • ModelInterface.dev_set_attr()
  • ModelInterface.dev_get_attr()
  • ModelInterface.dev_status()
  • @@ -122,6 +121,7 @@
  • ModelInterface.status()
  • ModelInterface.reset()
  • ModelInterface.capabilities()
  • +
  • ModelInterface.attrs()
  • @@ -229,7 +229,7 @@
    class tomato.driverinterface_1_0.ModelInterface(settings=None)

    Bases: object

    -

    An abstract base class specifying the a driver interface.

    +

    An abstract base class specifying the driver interface.

    Individual driver modules should expose a DriverInterface which inherits from this abstract class. Only the methods of this class should be used to interact with drivers and their devices.

    @@ -243,16 +243,19 @@ class DeviceManager(driver, key, **kwargs)

    Bases: object

    An abstract base class specifying a manager for an individual component.

    +

    This class should handle determining attributes and capabilities of the component, +the reading/writing of those attributes, processing of tasks, and caching and +returning of task data.

    -driver: super
    +driver: ModelInterface

    The parent DriverInterface instance.

    key: tuple
    -

    The key in driver.devmap referring to this object.

    +

    The key in self.driver.devmap referring to this object.

    @@ -372,8 +375,8 @@
    CreateDeviceManager(key, **kwargs)
    -

    A factory function which is used to pass this ModelInterface to the new -DeviceManager instance.

    +

    A factory function which is used to pass this instance of the ModelInterface +to the new DeviceManager instance.

    @@ -416,13 +419,6 @@ is executed at the end of every job.

    -
    -
    -attrs(key: tuple, **kwargs: dict) Reply
    -

    Query available Attrs on the specified device component.

    -

    Pass-through to the DeviceManager.attrs() function.

    -
    -
    dev_set_attr(attr: str, val: Any, key: tuple, **kwargs: dict) Reply
    @@ -436,15 +432,15 @@ dev_get_attr(attr: str, key: tuple, **kwargs: dict) Reply

    Get value of the Attr from the specified device component.

    Pass-through to the DeviceManager.get_attr() function. Units are not -returned; those can be queried for all Attrs using attrs().

    +returned; those can be queried for all Attrs using self.attrs().

    dev_status(key: tuple, **kwargs: dict) Reply

    Get the status report from the specified device component.

    -

    Iterates over all Attrs on the component that have status=True and -returns their values in a dict.

    +

    Iterates over all Attrs on the component that have status=True and +returns their values in the Reply.data as a dict.

    @@ -506,6 +502,13 @@

    Pass-through to DriverManager.capabilities().

    +
    +
    +attrs(key: tuple, **kwargs: dict) Reply
    +

    Query available Attrs on the specified device component.

    +

    Pass-through to the DeviceManager.attrs() function.

    +
    + @@ -537,7 +540,7 @@
    Other Versions - v: 1.0rc3.dev1 + v: 1.0rc3.dev2
    diff --git a/main/apidoc/tomato.html b/main/apidoc/tomato.html index df512f6..ff126d4 100644 --- a/main/apidoc/tomato.html +++ b/main/apidoc/tomato.html @@ -4,7 +4,7 @@ - tomato package — tomato 1.0rc3.dev1 documentation + tomato package — tomato 1.0rc3.dev2 documentation @@ -16,7 +16,7 @@ - + @@ -39,7 +39,7 @@
    - 1.0rc3.dev1 + 1.0rc3.dev2
    @@ -293,7 +293,6 @@

    SubpackagesModelInterface.dev_register()
  • ModelInterface.dev_teardown()
  • ModelInterface.dev_reset()
  • -
  • ModelInterface.attrs()
  • ModelInterface.dev_set_attr()
  • ModelInterface.dev_get_attr()
  • ModelInterface.dev_status()
  • @@ -304,6 +303,7 @@

    SubpackagesModelInterface.status()
  • ModelInterface.reset()
  • ModelInterface.capabilities()
  • +
  • ModelInterface.attrs()
  • @@ -1675,7 +1675,7 @@

    tomato.drivers: Shim interfacing with tomato driver package
    Other Versions - v: 1.0rc3.dev1 + v: 1.0rc3.dev2
    diff --git a/main/apidoc/tomato.ketchup.html b/main/apidoc/tomato.ketchup.html index b942351..330f0d2 100644 --- a/main/apidoc/tomato.ketchup.html +++ b/main/apidoc/tomato.ketchup.html @@ -4,7 +4,7 @@ - tomato.ketchup package — tomato 1.0rc3.dev1 documentation + tomato.ketchup package — tomato 1.0rc3.dev2 documentation @@ -16,7 +16,7 @@ - + @@ -39,7 +39,7 @@
    - 1.0rc3.dev1 + 1.0rc3.dev2
    @@ -298,7 +298,7 @@

    tomato.ketchup: command line interface to the tomato job qu
    Other Versions - v: 1.0rc3.dev1 + v: 1.0rc3.dev2
    diff --git a/main/apidoc/tomato.tomato.html b/main/apidoc/tomato.tomato.html index 4feba26..a4e4761 100644 --- a/main/apidoc/tomato.tomato.html +++ b/main/apidoc/tomato.tomato.html @@ -4,7 +4,7 @@ - tomato.tomato package — tomato 1.0rc3.dev1 documentation + tomato.tomato package — tomato 1.0rc3.dev2 documentation @@ -16,7 +16,7 @@ - + @@ -38,7 +38,7 @@
    - 1.0rc3.dev1 + 1.0rc3.dev2
    @@ -321,7 +321,7 @@

    tomato.tomato: command line interface to the tomato daemon<
    Other Versions - v: 1.0rc3.dev1 + v: 1.0rc3.dev2
    diff --git a/main/driver_develop.html b/main/driver_develop.html index a137eed..d4483f6 100644 --- a/main/driver_develop.html +++ b/main/driver_develop.html @@ -4,7 +4,7 @@ - Developing tomato drivers — tomato 1.0rc3.dev1 documentation + Developing tomato drivers — tomato 1.0rc3.dev2 documentation @@ -16,7 +16,7 @@ - + @@ -39,7 +39,7 @@
    - 1.0rc3.dev1 + 1.0rc3.dev2
    @@ -148,7 +148,7 @@

    ModelInterface ver. 1.0
    class tomato.driverinterface_1_0.ModelInterface(settings=None)
    -

    An abstract base class specifying the a driver interface.

    +

    An abstract base class specifying the driver interface.

    Individual driver modules should expose a DriverInterface which inherits from this abstract class. Only the methods of this class should be used to interact with drivers and their devices.

    @@ -156,16 +156,19 @@

    ModelInterface ver. 1.0 class DeviceManager(driver, key, **kwargs)

    An abstract base class specifying a manager for an individual component.

    +

    This class should handle determining attributes and capabilities of the component, +the reading/writing of those attributes, processing of tasks, and caching and +returning of task data.

    -driver: super
    +driver:
    ModelInterface

    The parent DriverInterface instance.

    key: tuple
    -

    The key in driver.devmap referring to this object.

    +

    The key in self.driver.devmap referring to this object.

    @@ -280,8 +283,8 @@

    ModelInterface ver. 1.0
    CreateDeviceManager(key, **kwargs)
    -

    A factory function which is used to pass this ModelInterface to the new -DeviceManager instance.

    +

    A factory function which is used to pass this instance of the ModelInterface +to the new DeviceManager instance.

    @@ -324,13 +327,6 @@

    ModelInterface ver. 1.0

    -
    -
    -attrs(key: tuple, **kwargs: dict) Reply
    -

    Query available Attrs on the specified device component.

    -

    Pass-through to the DeviceManager.attrs() function.

    -
    -
    dev_set_attr(attr: str, val: Any, key: tuple, **kwargs: dict) Reply
    @@ -344,15 +340,15 @@

    ModelInterface ver. 1.0dev_get_attr(attr: str, key: tuple, **kwargs: dict) Reply

    Get value of the Attr from the specified device component.

    Pass-through to the DeviceManager.get_attr() function. Units are not -returned; those can be queried for all Attrs using attrs().

    +returned; those can be queried for all Attrs using self.attrs().

    dev_status(key: tuple, **kwargs: dict) Reply

    Get the status report from the specified device component.

    -

    Iterates over all Attrs on the component that have status=True and -returns their values in a dict.

    +

    Iterates over all Attrs on the component that have status=True and +returns their values in the Reply.data as a dict.

    @@ -414,6 +410,13 @@

    ModelInterface ver. 1.0Pass-through to DriverManager.capabilities().

    +
    +
    +attrs(key: tuple, **kwargs: dict) Reply
    +

    Query available Attrs on the specified device component.

    +

    Pass-through to the DeviceManager.attrs() function.

    +
    + @@ -446,7 +449,7 @@

    ModelInterface ver. 1.0 Other Versions - v: 1.0rc3.dev1 + v: 1.0rc3.dev2
    diff --git a/main/genindex.html b/main/genindex.html index e369240..19585ad 100644 --- a/main/genindex.html +++ b/main/genindex.html @@ -3,7 +3,7 @@ - Index — tomato 1.0rc3.dev1 documentation + Index — tomato 1.0rc3.dev2 documentation @@ -15,7 +15,7 @@ - + @@ -38,7 +38,7 @@
    - 1.0rc3.dev1 + 1.0rc3.dev2
    @@ -752,7 +752,7 @@

    V

    Other Versions - v: 1.0rc3.dev1 + v: 1.0rc3.dev2
    diff --git a/main/index.html b/main/index.html index 14d1137..593b482 100644 --- a/main/index.html +++ b/main/index.html @@ -4,7 +4,7 @@ - tomato: au-tomation without the pain! — tomato 1.0rc3.dev1 documentation + tomato: au-tomation without the pain! — tomato 1.0rc3.dev2 documentation @@ -16,7 +16,7 @@ - + @@ -38,7 +38,7 @@
    - 1.0rc3.dev1 + 1.0rc3.dev2
    @@ -167,7 +167,7 @@

    tomato: au-tomation without the pain! Other Versions - v: 1.0rc3.dev1 + v: 1.0rc3.dev2
    diff --git a/main/installation.html b/main/installation.html index 2e642f3..bd38cae 100644 --- a/main/installation.html +++ b/main/installation.html @@ -4,7 +4,7 @@ - Installation — tomato 1.0rc3.dev1 documentation + Installation — tomato 1.0rc3.dev2 documentation @@ -16,7 +16,7 @@ - + @@ -39,7 +39,7 @@
    - 1.0rc3.dev1 + 1.0rc3.dev2
    @@ -146,7 +146,7 @@

    Testing the installation Other Versions - v: 1.0rc3.dev1 + v: 1.0rc3.dev2
    diff --git a/main/objects.inv b/main/objects.inv index a2dddd3..026e56d 100644 Binary files a/main/objects.inv and b/main/objects.inv differ diff --git a/main/py-modindex.html b/main/py-modindex.html index 17043bc..bc1c7d3 100644 --- a/main/py-modindex.html +++ b/main/py-modindex.html @@ -3,7 +3,7 @@ - Python Module Index — tomato 1.0rc3.dev1 documentation + Python Module Index — tomato 1.0rc3.dev2 documentation @@ -15,7 +15,7 @@ - + @@ -41,7 +41,7 @@
    - 1.0rc3.dev1 + 1.0rc3.dev2
    @@ -187,7 +187,7 @@

    Python Module Index

    Other Versions - v: 1.0rc3.dev1 + v: 1.0rc3.dev2
    diff --git a/main/quickstart.html b/main/quickstart.html index 03a9119..ff748ad 100644 --- a/main/quickstart.html +++ b/main/quickstart.html @@ -4,7 +4,7 @@ - Quick start guide — tomato 1.0rc3.dev1 documentation + Quick start guide — tomato 1.0rc3.dev2 documentation @@ -16,7 +16,7 @@ - + @@ -41,7 +41,7 @@
    - 1.0rc3.dev1 + 1.0rc3.dev2
    @@ -816,7 +816,7 @@

    pipelines section Other Versions - v: 1.0rc3.dev1 + v: 1.0rc3.dev2
    diff --git a/main/search.html b/main/search.html index 81b24a5..cc05818 100644 --- a/main/search.html +++ b/main/search.html @@ -3,7 +3,7 @@ - Search — tomato 1.0rc3.dev1 documentation + Search — tomato 1.0rc3.dev2 documentation @@ -16,7 +16,7 @@ - + @@ -41,7 +41,7 @@
    - 1.0rc3.dev1 + 1.0rc3.dev2
    @@ -130,7 +130,7 @@
    Other Versions - v: 1.0rc3.dev1 + v: 1.0rc3.dev2
    diff --git a/main/searchindex.js b/main/searchindex.js index 147453f..0b08a16 100644 --- a/main/searchindex.js +++ b/main/searchindex.js @@ -1 +1 @@ -Search.setIndex({"alltitles": {"Accessing output data": [[9, "accessing-output-data"]], "Best Practices when developing a driver": [[5, "best-practices-when-developing-a-driver"]], "Bootstrapping a driver process": [[5, "bootstrapping-a-driver-process"]], "Communication between jobs and drivers": [[5, "communication-between-jobs-and-drivers"]], "Data snapshotting": [[9, "data-snapshotting"]], "Developing tomato drivers": [[5, "developing-tomato-drivers"]], "Devices file": [[8, "devices-file"]], "Final job data": [[9, "final-job-data"]], "First time set-up": [[8, "first-time-set-up"]], "Installation": [[7, "installation"]], "Machine-readable output": [[9, "machine-readable-output"]], "ModelInterface ver. 1.0": [[5, "modelinterface-ver-1-0"]], "Payload file": [[8, "payload-file"]], "Quick start guide": [[8, "quick-start-guide"]], "Settings file": [[8, "settings-file"]], "Starting tomato.daemon": [[9, "starting-tomato-daemon"]], "Submodules": [[0, "module-tomato.drivers"], [1, "module-tomato.daemon.cmd"]], "Subpackages": [[0, "subpackages"]], "Testing the installation": [[7, "testing-the-installation"]], "Usage": [[9, "usage"]], "Using ketchup": [[9, "using-ketchup"]], "Using tomato": [[9, "using-tomato"]], "Version history": [[10, "version-history"]], "devices section": [[8, "devices-section"]], "pipelines section": [[8, "pipelines-section"]], "tomato concepts flowchart": [[8, "tomato-concepts-flowchart"]], "tomato driver library": [[6, null]], "tomato package": [[0, "module-tomato"]], "tomato program flowchart": [[8, "tomato-program-flowchart"]], "tomato user manual": [[6, null]], "tomato-v0.2": [[10, "tomato-v0-2"]], "tomato-v1.0": [[10, "tomato-v1-0"]], "tomato.daemon package": [[1, "module-tomato.daemon"]], "tomato.daemon.cmd: command parsing for tomato daemon": [[1, "tomato-daemon-cmd-command-parsing-for-tomato-daemon"]], "tomato.daemon.driver: the driver manager of tomato daemon": [[1, "tomato-daemon-driver-the-driver-manager-of-tomato-daemon"]], "tomato.daemon.io: functions for storing and loading data": [[1, "tomato-daemon-io-functions-for-storing-and-loading-data"]], "tomato.daemon.job: the job manager of tomato daemon": [[1, "tomato-daemon-job-the-job-manager-of-tomato-daemon"]], "tomato.daemon: module of functions comprising the tomato daemon": [[1, "tomato-daemon-module-of-functions-comprising-the-tomato-daemon"]], "tomato.driverinterface_1_0 package": [[2, "module-tomato.driverinterface_1_0"]], "tomato.drivers: Shim interfacing with tomato driver packages": [[0, "tomato-drivers-shim-interfacing-with-tomato-driver-packages"]], "tomato.ketchup package": [[3, "module-tomato.ketchup"]], "tomato.ketchup: command line interface to the tomato job queue": [[3, "tomato-ketchup-command-line-interface-to-the-tomato-job-queue"]], "tomato.models: Pydantic models for internal tomato use": [[0, "tomato-models-pydantic-models-for-internal-tomato-use"]], "tomato.tomato package": [[4, "module-tomato.tomato"]], "tomato.tomato: command line interface to the tomato daemon": [[4, "tomato-tomato-command-line-interface-to-the-tomato-daemon"]], "tomato: au-tomation without the pain!": [[6, "tomato-au-tomation-without-the-pain"]]}, "docnames": ["apidoc/tomato", "apidoc/tomato.daemon", "apidoc/tomato.driverinterface_1_0", "apidoc/tomato.ketchup", "apidoc/tomato.tomato", "driver_develop", "index", "installation", "quickstart", "usage", "version"], "envversion": {"sphinx": 61, "sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1}, "filenames": ["apidoc/tomato.rst", "apidoc/tomato.daemon.rst", "apidoc/tomato.driverinterface_1_0.rst", "apidoc/tomato.ketchup.rst", "apidoc/tomato.tomato.rst", "driver_develop.rst", "index.rst", "installation.rst", "quickstart.rst", "usage.rst", "version.rst"], "indexentries": {"action_queued_jobs() (in module tomato.daemon.job)": [[1, "tomato.daemon.job.action_queued_jobs", false]], "address (tomato.models.component attribute)": [[0, "tomato.models.Component.address", false]], "address (tomato.models.device attribute)": [[0, "tomato.models.Device.address", false]], "appdir (tomato.models.daemon attribute)": [[0, "tomato.models.Daemon.appdir", false]], "attrs() (tomato.driverinterface_1_0.modelinterface method)": [[2, "tomato.driverinterface_1_0.ModelInterface.attrs", false]], "attrs() (tomato.driverinterface_1_0.modelinterface.devicemanager method)": [[2, "tomato.driverinterface_1_0.ModelInterface.DeviceManager.attrs", false]], "cancel() (in module tomato.ketchup)": [[3, "tomato.ketchup.cancel", false]], "capabilities (tomato.models.component attribute)": [[0, "tomato.models.Component.capabilities", false]], "capabilities() (tomato.driverinterface_1_0.modelinterface method)": [[2, "tomato.driverinterface_1_0.ModelInterface.capabilities", false]], "capabilities() (tomato.driverinterface_1_0.modelinterface.devicemanager method)": [[2, "tomato.driverinterface_1_0.ModelInterface.DeviceManager.capabilities", false]], "channel (tomato.models.component attribute)": [[0, "tomato.models.Component.channel", false]], "channels (tomato.models.device attribute)": [[0, "tomato.models.Device.channels", false]], "check_queued_jobs() (in module tomato.daemon.job)": [[1, "tomato.daemon.job.check_queued_jobs", false]], "cmps (tomato.models.daemon attribute)": [[0, "tomato.models.Daemon.cmps", false]], "coerce_channel() (tomato.models.component class method)": [[0, "tomato.models.Component.coerce_channel", false]], "coerce_channels() (tomato.models.device class method)": [[0, "tomato.models.Device.coerce_channels", false]], "completed_at (tomato.models.completedjob attribute)": [[0, "tomato.models.CompletedJob.completed_at", false]], "completed_at (tomato.models.job attribute)": [[0, "tomato.models.Job.completed_at", false]], "component() (in module tomato.daemon.cmd)": [[1, "tomato.daemon.cmd.component", false]], "component_tag (dgbowl_schemas.tomato.payload.task attribute)": [[8, "dgbowl_schemas.tomato.payload.Task.component_tag", false]], "components (tomato.models.pipeline attribute)": [[0, "tomato.models.Pipeline.components", false]], "connected_at (tomato.models.driver attribute)": [[0, "tomato.models.Driver.connected_at", false]], "createdevicemanager() (tomato.driverinterface_1_0.modelinterface method)": [[2, "tomato.driverinterface_1_0.ModelInterface.CreateDeviceManager", false]], "data (tomato.driverinterface_1_0.modelinterface.devicemanager attribute)": [[2, "tomato.driverinterface_1_0.ModelInterface.DeviceManager.data", false]], "data (tomato.models.reply attribute)": [[0, "tomato.models.Reply.data", false]], "data_to_pickle() (in module tomato.daemon.io)": [[1, "tomato.daemon.io.data_to_pickle", false]], "datalock (tomato.driverinterface_1_0.modelinterface.devicemanager attribute)": [[2, "tomato.driverinterface_1_0.ModelInterface.DeviceManager.datalock", false]], "dev_get_attr() (tomato.driverinterface_1_0.modelinterface method)": [[2, "tomato.driverinterface_1_0.ModelInterface.dev_get_attr", false]], "dev_register() (tomato.driverinterface_1_0.modelinterface method)": [[2, "tomato.driverinterface_1_0.ModelInterface.dev_register", false]], "dev_reset() (tomato.driverinterface_1_0.modelinterface method)": [[2, "tomato.driverinterface_1_0.ModelInterface.dev_reset", false]], "dev_set_attr() (tomato.driverinterface_1_0.modelinterface method)": [[2, "tomato.driverinterface_1_0.ModelInterface.dev_set_attr", false]], "dev_status() (tomato.driverinterface_1_0.modelinterface method)": [[2, "tomato.driverinterface_1_0.ModelInterface.dev_status", false]], "dev_teardown() (tomato.driverinterface_1_0.modelinterface method)": [[2, "tomato.driverinterface_1_0.ModelInterface.dev_teardown", false]], "device (tomato.models.component attribute)": [[0, "tomato.models.Component.device", false]], "device() (in module tomato.daemon.cmd)": [[1, "tomato.daemon.cmd.device", false]], "devmap (tomato.driverinterface_1_0.modelinterface attribute)": [[2, "tomato.driverinterface_1_0.ModelInterface.devmap", false]], "devs (tomato.models.daemon attribute)": [[0, "tomato.models.Daemon.devs", false]], "do_task() (tomato.driverinterface_1_0.modelinterface.devicemanager method)": [[2, "tomato.driverinterface_1_0.ModelInterface.DeviceManager.do_task", false]], "driver (tomato.driverinterface_1_0.modelinterface.devicemanager attribute)": [[2, "tomato.driverinterface_1_0.ModelInterface.DeviceManager.driver", false]], "driver (tomato.models.component attribute)": [[0, "tomato.models.Component.driver", false]], "driver (tomato.models.device attribute)": [[0, "tomato.models.Device.driver", false]], "driver() (in module tomato.daemon.cmd)": [[1, "tomato.daemon.cmd.driver", false]], "driver_to_interface() (in module tomato.drivers)": [[0, "tomato.drivers.driver_to_interface", false]], "drvs (tomato.models.daemon attribute)": [[0, "tomato.models.Daemon.drvs", false]], "executed_at (tomato.models.job attribute)": [[0, "tomato.models.Job.executed_at", false]], "extract_methodfile() (dgbowl_schemas.tomato.payload.payload class method)": [[8, "dgbowl_schemas.tomato.payload.Payload.extract_methodfile", false]], "extract_samplefile() (dgbowl_schemas.tomato.payload.payload class method)": [[8, "dgbowl_schemas.tomato.payload.Payload.extract_samplefile", false]], "find_matching_pipelines() (in module tomato.daemon.job)": [[1, "tomato.daemon.job.find_matching_pipelines", false]], "get_attr() (tomato.driverinterface_1_0.modelinterface.devicemanager method)": [[2, "tomato.driverinterface_1_0.ModelInterface.DeviceManager.get_attr", false]], "get_data() (tomato.driverinterface_1_0.modelinterface.devicemanager method)": [[2, "tomato.driverinterface_1_0.ModelInterface.DeviceManager.get_data", false]], "get_pipelines() (in module tomato.tomato)": [[4, "tomato.tomato.get_pipelines", false]], "id (tomato.models.completedjob attribute)": [[0, "tomato.models.CompletedJob.id", false]], "id (tomato.models.job attribute)": [[0, "tomato.models.Job.id", false]], "in_devmap() (in module tomato.driverinterface_1_0)": [[2, "tomato.driverinterface_1_0.in_devmap", false]], "init() (in module tomato.tomato)": [[4, "tomato.tomato.init", false]], "job() (in module tomato.daemon.cmd)": [[1, "tomato.daemon.cmd.job", false]], "job_main_loop() (in module tomato.daemon.job)": [[1, "tomato.daemon.job.job_main_loop", false]], "job_thread() (in module tomato.daemon.job)": [[1, "tomato.daemon.job.job_thread", false]], "jobid (tomato.models.pipeline attribute)": [[0, "tomato.models.Pipeline.jobid", false]], "jobname (tomato.models.completedjob attribute)": [[0, "tomato.models.CompletedJob.jobname", false]], "jobname (tomato.models.job attribute)": [[0, "tomato.models.Job.jobname", false]], "jobpath (tomato.models.completedjob attribute)": [[0, "tomato.models.CompletedJob.jobpath", false]], "jobpath (tomato.models.job attribute)": [[0, "tomato.models.Job.jobpath", false]], "jobs (tomato.models.daemon attribute)": [[0, "tomato.models.Daemon.jobs", false]], "key (tomato.driverinterface_1_0.modelinterface.devicemanager attribute)": [[2, "tomato.driverinterface_1_0.ModelInterface.DeviceManager.key", false]], "kill_tomato_job() (in module tomato.daemon.job)": [[1, "tomato.daemon.job.kill_tomato_job", false]], "lazy_pirate() (in module tomato.daemon.job)": [[1, "tomato.daemon.job.lazy_pirate", false]], "load() (in module tomato.daemon.io)": [[1, "tomato.daemon.io.load", false]], "load_device_file() (in module tomato.tomato)": [[4, "tomato.tomato.load_device_file", false]], "logdir (tomato.models.daemon attribute)": [[0, "tomato.models.Daemon.logdir", false]], "manage_running_pips() (in module tomato.daemon.job)": [[1, "tomato.daemon.job.manage_running_pips", false]], "manager() (in module tomato.daemon.driver)": [[1, "tomato.daemon.driver.manager", false]], "manager() (in module tomato.daemon.job)": [[1, "tomato.daemon.job.manager", false]], "max_duration (dgbowl_schemas.tomato.payload.task attribute)": [[8, "dgbowl_schemas.tomato.payload.Task.max_duration", false]], "merge_netcdfs() (in module tomato.daemon.io)": [[1, "tomato.daemon.io.merge_netcdfs", false]], "merge_pipelines() (in module tomato.daemon.cmd)": [[1, "tomato.daemon.cmd.merge_pipelines", false]], "method (dgbowl_schemas.tomato.payload.payload attribute)": [[8, "dgbowl_schemas.tomato.payload.Payload.method", false]], "modelinterface (class in tomato.driverinterface_1_0)": [[2, "tomato.driverinterface_1_0.ModelInterface", false]], "modelinterface.devicemanager (class in tomato.driverinterface_1_0)": [[2, "tomato.driverinterface_1_0.ModelInterface.DeviceManager", false]], "module": [[0, "module-tomato", false], [0, "module-tomato.drivers", false], [0, "module-tomato.models", false], [1, "module-tomato.daemon", false], [1, "module-tomato.daemon.cmd", false], [1, "module-tomato.daemon.driver", false], [1, "module-tomato.daemon.io", false], [1, "module-tomato.daemon.job", false], [2, "module-tomato.driverinterface_1_0", false], [3, "module-tomato.ketchup", false], [4, "module-tomato.tomato", false]], "msg (tomato.models.reply attribute)": [[0, "tomato.models.Reply.msg", false]], "name (tomato.models.component attribute)": [[0, "tomato.models.Component.name", false]], "name (tomato.models.device attribute)": [[0, "tomato.models.Device.name", false]], "name (tomato.models.driver attribute)": [[0, "tomato.models.Driver.name", false]], "name (tomato.models.pipeline attribute)": [[0, "tomato.models.Pipeline.name", false]], "nextjob (tomato.models.daemon attribute)": [[0, "tomato.models.Daemon.nextjob", false]], "payload (tomato.models.job attribute)": [[0, "tomato.models.Job.payload", false]], "pid (tomato.models.driver attribute)": [[0, "tomato.models.Driver.pid", false]], "pid (tomato.models.job attribute)": [[0, "tomato.models.Job.pid", false]], "pipeline() (in module tomato.daemon.cmd)": [[1, "tomato.daemon.cmd.pipeline", false]], "pipeline_eject() (in module tomato.tomato)": [[4, "tomato.tomato.pipeline_eject", false]], "pipeline_load() (in module tomato.tomato)": [[4, "tomato.tomato.pipeline_load", false]], "pipeline_ready() (in module tomato.tomato)": [[4, "tomato.tomato.pipeline_ready", false]], "pips (tomato.models.daemon attribute)": [[0, "tomato.models.Daemon.pips", false]], "polling_interval (dgbowl_schemas.tomato.payload.task attribute)": [[8, "dgbowl_schemas.tomato.payload.Task.polling_interval", false]], "pollrate (tomato.models.device attribute)": [[0, "tomato.models.Device.pollrate", false]], "port (tomato.models.daemon attribute)": [[0, "tomato.models.Daemon.port", false]], "port (tomato.models.driver attribute)": [[0, "tomato.models.Driver.port", false]], "prepare_task() (tomato.driverinterface_1_0.modelinterface.devicemanager method)": [[2, "tomato.driverinterface_1_0.ModelInterface.DeviceManager.prepare_task", false]], "ready (tomato.models.pipeline attribute)": [[0, "tomato.models.Pipeline.ready", false]], "reload() (in module tomato.tomato)": [[4, "tomato.tomato.reload", false]], "reset() (tomato.driverinterface_1_0.modelinterface method)": [[2, "tomato.driverinterface_1_0.ModelInterface.reset", false]], "reset() (tomato.driverinterface_1_0.modelinterface.devicemanager method)": [[2, "tomato.driverinterface_1_0.ModelInterface.DeviceManager.reset", false]], "respath (tomato.models.completedjob attribute)": [[0, "tomato.models.CompletedJob.respath", false]], "respath (tomato.models.job attribute)": [[0, "tomato.models.Job.respath", false]], "role (tomato.models.component attribute)": [[0, "tomato.models.Component.role", false]], "run() (tomato.driverinterface_1_0.modelinterface.devicemanager method)": [[2, "tomato.driverinterface_1_0.ModelInterface.DeviceManager.run", false]], "run_ketchup() (in module tomato)": [[0, "tomato.run_ketchup", false]], "run_tomato() (in module tomato)": [[0, "tomato.run_tomato", false]], "running (tomato.driverinterface_1_0.modelinterface.devicemanager attribute)": [[2, "tomato.driverinterface_1_0.ModelInterface.DeviceManager.running", false]], "rw (tomato.driverinterface_1_0.attr attribute)": [[2, "tomato.driverinterface_1_0.Attr.rw", false]], "sample (dgbowl_schemas.tomato.payload.payload attribute)": [[8, "dgbowl_schemas.tomato.payload.Payload.sample", false]], "sampleid (tomato.models.pipeline attribute)": [[0, "tomato.models.Pipeline.sampleid", false]], "sampling_interval (dgbowl_schemas.tomato.payload.task attribute)": [[8, "dgbowl_schemas.tomato.payload.Task.sampling_interval", false]], "search() (in module tomato.ketchup)": [[3, "tomato.ketchup.search", false]], "set_attr() (tomato.driverinterface_1_0.modelinterface.devicemanager method)": [[2, "tomato.driverinterface_1_0.ModelInterface.DeviceManager.set_attr", false]], "set_loglevel() (in module tomato)": [[0, "tomato.set_loglevel", false]], "set_loglevel() (in module tomato.tomato)": [[4, "tomato.tomato.set_loglevel", false]], "settings (dgbowl_schemas.tomato.payload.payload attribute)": [[8, "dgbowl_schemas.tomato.payload.Payload.settings", false]], "settings (tomato.driverinterface_1_0.modelinterface attribute)": [[2, "tomato.driverinterface_1_0.ModelInterface.settings", false]], "settings (tomato.models.daemon attribute)": [[0, "tomato.models.Daemon.settings", false]], "settings (tomato.models.driver attribute)": [[0, "tomato.models.Driver.settings", false]], "setup() (in module tomato.daemon.cmd)": [[1, "tomato.daemon.cmd.setup", false]], "setup_logging() (in module tomato.daemon)": [[1, "tomato.daemon.setup_logging", false]], "snappath (tomato.models.job attribute)": [[0, "tomato.models.Job.snappath", false]], "snapshot() (in module tomato.ketchup)": [[3, "tomato.ketchup.snapshot", false]], "spawn_tomato_driver() (in module tomato.daemon.driver)": [[1, "tomato.daemon.driver.spawn_tomato_driver", false]], "spawned_at (tomato.models.driver attribute)": [[0, "tomato.models.Driver.spawned_at", false]], "start() (in module tomato.tomato)": [[4, "tomato.tomato.start", false]], "status (tomato.driverinterface_1_0.attr attribute)": [[2, "tomato.driverinterface_1_0.Attr.status", false]], "status (tomato.models.completedjob attribute)": [[0, "tomato.models.CompletedJob.status", false]], "status (tomato.models.daemon attribute)": [[0, "tomato.models.Daemon.status", false]], "status (tomato.models.job attribute)": [[0, "tomato.models.Job.status", false]], "status() (in module tomato.daemon.cmd)": [[1, "tomato.daemon.cmd.status", false]], "status() (in module tomato.ketchup)": [[3, "tomato.ketchup.status", false]], "status() (in module tomato.tomato)": [[4, "tomato.tomato.status", false]], "status() (tomato.driverinterface_1_0.modelinterface method)": [[2, "tomato.driverinterface_1_0.ModelInterface.status", false]], "status() (tomato.driverinterface_1_0.modelinterface.devicemanager method)": [[2, "tomato.driverinterface_1_0.ModelInterface.DeviceManager.status", false]], "stop() (in module tomato.daemon.cmd)": [[1, "tomato.daemon.cmd.stop", false]], "stop() (in module tomato.tomato)": [[4, "tomato.tomato.stop", false]], "stop_task() (tomato.driverinterface_1_0.modelinterface.devicemanager method)": [[2, "tomato.driverinterface_1_0.ModelInterface.DeviceManager.stop_task", false]], "stop_tomato_driver() (in module tomato.daemon.driver)": [[1, "tomato.daemon.driver.stop_tomato_driver", false]], "store() (in module tomato.daemon.io)": [[1, "tomato.daemon.io.store", false]], "submit() (in module tomato.ketchup)": [[3, "tomato.ketchup.submit", false]], "submitted_at (tomato.models.job attribute)": [[0, "tomato.models.Job.submitted_at", false]], "success (tomato.models.reply attribute)": [[0, "tomato.models.Reply.success", false]], "task_data() (tomato.driverinterface_1_0.modelinterface method)": [[2, "tomato.driverinterface_1_0.ModelInterface.task_data", false]], "task_list (tomato.driverinterface_1_0.modelinterface.devicemanager attribute)": [[2, "tomato.driverinterface_1_0.ModelInterface.DeviceManager.task_list", false]], "task_runner() (tomato.driverinterface_1_0.modelinterface.devicemanager method)": [[2, "tomato.driverinterface_1_0.ModelInterface.DeviceManager.task_runner", false]], "task_start() (tomato.driverinterface_1_0.modelinterface method)": [[2, "tomato.driverinterface_1_0.ModelInterface.task_start", false]], "task_status() (tomato.driverinterface_1_0.modelinterface method)": [[2, "tomato.driverinterface_1_0.ModelInterface.task_status", false]], "task_stop() (tomato.driverinterface_1_0.modelinterface method)": [[2, "tomato.driverinterface_1_0.ModelInterface.task_stop", false]], "technique_name (dgbowl_schemas.tomato.payload.task attribute)": [[8, "dgbowl_schemas.tomato.payload.Task.technique_name", false]], "technique_params (dgbowl_schemas.tomato.payload.task attribute)": [[8, "dgbowl_schemas.tomato.payload.Task.technique_params", false]], "thread (tomato.driverinterface_1_0.modelinterface.devicemanager attribute)": [[2, "tomato.driverinterface_1_0.ModelInterface.DeviceManager.thread", false]], "tomato": [[0, "module-tomato", false]], "tomato.daemon": [[1, "module-tomato.daemon", false]], "tomato.daemon.cmd": [[1, "module-tomato.daemon.cmd", false]], "tomato.daemon.driver": [[1, "module-tomato.daemon.driver", false]], "tomato.daemon.io": [[1, "module-tomato.daemon.io", false]], "tomato.daemon.job": [[1, "module-tomato.daemon.job", false]], "tomato.driverinterface_1_0": [[2, "module-tomato.driverinterface_1_0", false]], "tomato.drivers": [[0, "module-tomato.drivers", false]], "tomato.ketchup": [[3, "module-tomato.ketchup", false]], "tomato.models": [[0, "module-tomato.models", false]], "tomato.tomato": [[4, "module-tomato.tomato", false]], "tomato_daemon() (in module tomato.daemon)": [[1, "tomato.daemon.tomato_daemon", false]], "tomato_driver() (in module tomato.daemon.driver)": [[1, "tomato.daemon.driver.tomato_driver", false]], "tomato_driver_bootstrap() (in module tomato.daemon.driver)": [[1, "tomato.daemon.driver.tomato_driver_bootstrap", false]], "tomato_job() (in module tomato.daemon.job)": [[1, "tomato.daemon.job.tomato_job", false]], "type (tomato.driverinterface_1_0.attr attribute)": [[2, "tomato.driverinterface_1_0.Attr.type", false]], "units (tomato.driverinterface_1_0.attr attribute)": [[2, "tomato.driverinterface_1_0.Attr.units", false]], "verbosity (tomato.models.daemon attribute)": [[0, "tomato.models.Daemon.verbosity", false]], "version (dgbowl_schemas.tomato.payload.payload attribute)": [[8, "dgbowl_schemas.tomato.payload.Payload.version", false]], "version (tomato.driverinterface_1_0.modelinterface attribute)": [[2, "tomato.driverinterface_1_0.ModelInterface.version", false]]}, "objects": {"": [[0, 3, 0, "-", "tomato"]], "dgbowl_schemas.tomato.payload": [[8, 0, 1, "", "Payload"], [8, 0, 1, "", "Task"]], "dgbowl_schemas.tomato.payload.Payload": [[8, 1, 1, "", "extract_methodfile"], [8, 1, 1, "", "extract_samplefile"], [8, 2, 1, "", "method"], [8, 2, 1, "", "sample"], [8, 2, 1, "", "settings"], [8, 2, 1, "", "version"]], "dgbowl_schemas.tomato.payload.Task": [[8, 2, 1, "", "component_tag"], [8, 2, 1, "", "max_duration"], [8, 2, 1, "", "polling_interval"], [8, 2, 1, "", "sampling_interval"], [8, 2, 1, "", "technique_name"], [8, 2, 1, "", "technique_params"]], "tomato": [[1, 3, 0, "-", "daemon"], [2, 3, 0, "-", "driverinterface_1_0"], [0, 3, 0, "-", "drivers"], [3, 3, 0, "-", "ketchup"], [0, 3, 0, "-", "models"], [0, 4, 1, "", "run_ketchup"], [0, 4, 1, "", "run_tomato"], [0, 4, 1, "", "set_loglevel"], [4, 3, 0, "-", "tomato"]], "tomato.daemon": [[1, 3, 0, "-", "cmd"], [1, 3, 0, "-", "driver"], [1, 3, 0, "-", "io"], [1, 3, 0, "-", "job"], [1, 4, 1, "", "setup_logging"], [1, 4, 1, "", "tomato_daemon"]], "tomato.daemon.cmd": [[1, 4, 1, "", "component"], [1, 4, 1, "", "device"], [1, 4, 1, "", "driver"], [1, 4, 1, "", "job"], [1, 4, 1, "", "merge_pipelines"], [1, 4, 1, "", "pipeline"], [1, 4, 1, "", "setup"], [1, 4, 1, "", "status"], [1, 4, 1, "", "stop"]], "tomato.daemon.driver": [[1, 4, 1, "", "manager"], [1, 4, 1, "", "spawn_tomato_driver"], [1, 4, 1, "", "stop_tomato_driver"], [1, 4, 1, "", "tomato_driver"], [1, 4, 1, "", "tomato_driver_bootstrap"]], "tomato.daemon.io": [[1, 4, 1, "", "data_to_pickle"], [1, 4, 1, "", "load"], [1, 4, 1, "", "merge_netcdfs"], [1, 4, 1, "", "store"]], "tomato.daemon.job": [[1, 4, 1, "", "action_queued_jobs"], [1, 4, 1, "", "check_queued_jobs"], [1, 4, 1, "", "find_matching_pipelines"], [1, 4, 1, "", "job_main_loop"], [1, 4, 1, "", "job_thread"], [1, 4, 1, "", "kill_tomato_job"], [1, 4, 1, "", "lazy_pirate"], [1, 4, 1, "", "manage_running_pips"], [1, 4, 1, "", "manager"], [1, 4, 1, "", "tomato_job"]], "tomato.driverinterface_1_0": [[2, 0, 1, "", "Attr"], [2, 5, 1, "", "ModelInterface"], [2, 4, 1, "", "in_devmap"]], "tomato.driverinterface_1_0.Attr": [[2, 2, 1, "", "rw"], [2, 2, 1, "", "status"], [2, 2, 1, "", "type"], [2, 2, 1, "", "units"]], "tomato.driverinterface_1_0.ModelInterface": [[2, 6, 1, "", "CreateDeviceManager"], [2, 5, 1, "", "DeviceManager"], [2, 6, 1, "", "attrs"], [2, 6, 1, "", "capabilities"], [2, 6, 1, "", "dev_get_attr"], [2, 6, 1, "", "dev_register"], [2, 6, 1, "", "dev_reset"], [2, 6, 1, "", "dev_set_attr"], [2, 6, 1, "", "dev_status"], [2, 6, 1, "", "dev_teardown"], [2, 7, 1, "", "devmap"], [2, 6, 1, "", "reset"], [2, 7, 1, "", "settings"], [2, 6, 1, "", "status"], [2, 6, 1, "", "task_data"], [2, 6, 1, "", "task_start"], [2, 6, 1, "", "task_status"], [2, 6, 1, "", "task_stop"], [2, 7, 1, "", "version"]], "tomato.driverinterface_1_0.ModelInterface.DeviceManager": [[2, 6, 1, "", "attrs"], [2, 6, 1, "", "capabilities"], [2, 7, 1, "", "data"], [2, 7, 1, "", "datalock"], [2, 6, 1, "", "do_task"], [2, 7, 1, "", "driver"], [2, 6, 1, "", "get_attr"], [2, 6, 1, "", "get_data"], [2, 7, 1, "", "key"], [2, 6, 1, "", "prepare_task"], [2, 6, 1, "", "reset"], [2, 6, 1, "", "run"], [2, 7, 1, "", "running"], [2, 6, 1, "", "set_attr"], [2, 6, 1, "", "status"], [2, 6, 1, "", "stop_task"], [2, 7, 1, "", "task_list"], [2, 6, 1, "", "task_runner"], [2, 7, 1, "", "thread"]], "tomato.drivers": [[0, 4, 1, "", "driver_to_interface"]], "tomato.ketchup": [[3, 4, 1, "", "cancel"], [3, 4, 1, "", "search"], [3, 4, 1, "", "snapshot"], [3, 4, 1, "", "status"], [3, 4, 1, "", "submit"]], "tomato.models": [[0, 0, 1, "", "CompletedJob"], [0, 0, 1, "", "Component"], [0, 0, 1, "", "Daemon"], [0, 0, 1, "", "Device"], [0, 0, 1, "", "Driver"], [0, 0, 1, "", "Job"], [0, 0, 1, "", "Pipeline"], [0, 0, 1, "", "Reply"]], "tomato.models.CompletedJob": [[0, 2, 1, "", "completed_at"], [0, 2, 1, "", "id"], [0, 2, 1, "", "jobname"], [0, 2, 1, "", "jobpath"], [0, 2, 1, "", "respath"], [0, 2, 1, "", "status"]], "tomato.models.Component": [[0, 2, 1, "", "address"], [0, 2, 1, "", "capabilities"], [0, 2, 1, "", "channel"], [0, 1, 1, "", "coerce_channel"], [0, 2, 1, "", "device"], [0, 2, 1, "", "driver"], [0, 2, 1, "", "name"], [0, 2, 1, "", "role"]], "tomato.models.Daemon": [[0, 2, 1, "", "appdir"], [0, 2, 1, "", "cmps"], [0, 2, 1, "", "devs"], [0, 2, 1, "", "drvs"], [0, 2, 1, "", "jobs"], [0, 2, 1, "", "logdir"], [0, 2, 1, "", "nextjob"], [0, 2, 1, "", "pips"], [0, 2, 1, "", "port"], [0, 2, 1, "", "settings"], [0, 2, 1, "", "status"], [0, 2, 1, "", "verbosity"]], "tomato.models.Device": [[0, 2, 1, "", "address"], [0, 2, 1, "", "channels"], [0, 1, 1, "", "coerce_channels"], [0, 2, 1, "", "driver"], [0, 2, 1, "", "name"], [0, 2, 1, "", "pollrate"]], "tomato.models.Driver": [[0, 2, 1, "", "connected_at"], [0, 2, 1, "", "name"], [0, 2, 1, "", "pid"], [0, 2, 1, "", "port"], [0, 2, 1, "", "settings"], [0, 2, 1, "", "spawned_at"]], "tomato.models.Job": [[0, 2, 1, "", "completed_at"], [0, 2, 1, "", "executed_at"], [0, 2, 1, "", "id"], [0, 2, 1, "", "jobname"], [0, 2, 1, "", "jobpath"], [0, 2, 1, "", "payload"], [0, 2, 1, "", "pid"], [0, 2, 1, "", "respath"], [0, 2, 1, "", "snappath"], [0, 2, 1, "", "status"], [0, 2, 1, "", "submitted_at"]], "tomato.models.Pipeline": [[0, 2, 1, "", "components"], [0, 2, 1, "", "jobid"], [0, 2, 1, "", "name"], [0, 2, 1, "", "ready"], [0, 2, 1, "", "sampleid"]], "tomato.models.Reply": [[0, 2, 1, "", "data"], [0, 2, 1, "", "msg"], [0, 2, 1, "", "success"]], "tomato.tomato": [[4, 4, 1, "", "get_pipelines"], [4, 4, 1, "", "init"], [4, 4, 1, "", "load_device_file"], [4, 4, 1, "", "pipeline_eject"], [4, 4, 1, "", "pipeline_load"], [4, 4, 1, "", "pipeline_ready"], [4, 4, 1, "", "reload"], [4, 4, 1, "", "set_loglevel"], [4, 4, 1, "", "start"], [4, 4, 1, "", "status"], [4, 4, 1, "", "stop"]]}, "objnames": {"0": ["py", "pydantic_model", "Python model"], "1": ["py", "pydantic_validator", "Python validator"], "2": ["py", "pydantic_field", "Python field"], "3": ["py", "module", "Python module"], "4": ["py", "function", "Python function"], "5": ["py", "class", "Python class"], "6": ["py", "method", "Python method"], "7": ["py", "attribute", "Python attribute"]}, "objtypes": {"0": "py:pydantic_model", "1": "py:pydantic_validator", "2": "py:pydantic_field", "3": "py:module", "4": "py:function", "5": "py:class", "6": "py:method", "7": "py:attribute"}, "terms": {"": [3, 5, 6, 8, 10], "0": [2, 8, 9], "00": 3, "03": 3, "0a1": 8, "0rc2": 4, "1": [0, 2, 3, 4, 8, 9], "100": 8, "1000": 1, "11": 3, "123": 8, "1234": [4, 8], "1235": 4, "133355": 3, "15": 3, "16": 3, "168": 8, "17": 3, "19": 3, "192": 8, "2": [3, 8, 9], "20": 4, "2020": [6, 10], "2024": 3, "2030": [6, 10], "23": 3, "2419": 6, "3": [3, 5, 8], "3600": 8, "39": 3, "46": 3, "490703766": 6, "5": 8, "50": 3, "500": 1, "523873650": 6, "53": 3, "702504": 3, "8": 5, "957189": [6, 10], "972593": 3, "99": 8, "A": [1, 2, 5, 8, 9, 10], "As": [5, 7, 9], "At": 0, "By": [8, 9], "For": [1, 8, 9], "If": [1, 8, 9], "In": [5, 8, 9], "It": [2, 5, 8, 9], "No": [2, 5, 6, 10], "Of": 8, "The": [1, 2, 3, 5, 6, 7, 8, 9, 10], "Then": [1, 5], "There": [5, 9], "These": 8, "To": [5, 7, 8, 9], "Will": 4, "_": [3, 4, 5], "a1": 8, "abc": 8, "about": [1, 3, 5, 8, 9], "abov": [1, 7, 8], "abstract": [2, 5, 8], "access": 5, "acquir": 5, "act": [1, 5], "action": 5, "action_queued_job": [0, 1], "activ": 1, "actual": [1, 3, 5, 9], "addit": 8, "addition": 9, "additionalproperti": [0, 8], "addr": 8, "address": [0, 1, 2, 5, 8], "advanc": 5, "affect": 1, "after": [2, 5], "afterward": 1, "again": 4, "against": 9, "agreement": [6, 10], "alexandr": 6, "all": [1, 2, 3, 5, 7, 8, 9], "allow": [1, 8], "alreadi": [2, 4, 5, 9], "also": [2, 4, 5, 8, 9, 10], "alter": 1, "altern": 9, "alwai": [5, 9], "among": [2, 5], "an": [2, 3, 5, 6, 8, 9], "ani": [0, 1, 2, 4, 5, 8, 9], "annot": [2, 5, 9], "anoth": [2, 4, 5], "anyof": [0, 8], "app": 9, "appdir": [0, 4, 8], "append": 5, "appropri": [1, 5], "ar": [1, 2, 4, 5, 7, 8, 9], "arbitrary_types_allow": 0, "archiv": [3, 8, 9], "argument": [1, 3, 8, 9], "around": 1, "arrai": [0, 8], "ask": 8, "assign": [1, 8], "associ": 8, "assum": 8, "attempt": [1, 3, 4], "attr": [0, 2, 5], "attribut": [2, 5, 8], "aurora": 10, "author": [0, 1, 3, 4, 6, 10], "autom": [6, 9], "automat": [8, 9], "avail": [2, 5, 7, 8, 9], "avoid": 1, "b": 8, "b2": 8, "back": 1, "base": [0, 1, 2, 5], "basemodel": [0, 2], "basic": [4, 8, 10], "batteri": [6, 10], "been": [3, 5, 8, 9, 10], "befor": [1, 2, 5, 8], "begin": 9, "being": [2, 5, 8], "below": 8, "berlin": 10, "better": 1, "between": 8, "big": 10, "biolog": [2, 5, 10], "bool": [0, 2], "boolean": [0, 2, 8], "bootstrap": 0, "both": 1, "bound": 8, "bronkhorst": 6, "build": 7, "built": 7, "c": [0, 3, 9], "cach": [2, 4, 5], "call": [1, 2, 3, 5, 8], "can": [1, 2, 5, 7, 8, 9], "can_submit": [2, 5], "cancel": [0, 3, 9], "capabl": [0, 2, 5, 8, 9], "care": 5, "carri": [5, 8], "case": [2, 5, 9], "caveat": [2, 5], "cd": [0, 3, 7, 9], "ce": [0, 1, 9], "certain": 8, "cf": 9, "chang": [1, 4, 9], "channel": [0, 1, 2, 5, 8], "check": [1, 2, 3, 5, 8, 9], "check_queued_job": [0, 1], "child": 9, "children": 1, "choos": 4, "class": [2, 5, 8, 10], "clean": [2, 5, 9], "cleanli": 9, "clear": [2, 5], "clone": 7, "close": 4, "cmd": 0, "cmp": [0, 1, 4], "code": [0, 1, 3, 4, 6, 8, 10], "coerce_channel": 0, "collect": [2, 5], "com": [7, 8], "com1": 8, "com2": 8, "command": [0, 5, 7, 8, 9], "commun": 10, "compat": [4, 5], "compil": [2, 5], "complet": [0, 1, 2, 5, 9], "completed_at": [0, 3], "completedjob": 0, "compon": [0, 1, 2, 4, 5, 8, 9], "component_tag": 8, "compris": 0, "concat": [6, 10], "concaten": 1, "concept": 9, "conda": 7, "condit": 9, "config": [0, 4, 8], "configur": [5, 6, 8, 9], "conhost": 1, "connect": [0, 5], "connected_at": 0, "consid": 5, "consist": [2, 5, 9], "const": 8, "constructor": 5, "contact": 1, "contain": [1, 2, 3, 5, 8, 9], "context": [1, 3, 4, 5], "contribut": 10, "convent": [5, 9], "convers": [6, 10], "convert": [2, 5], "copi": [1, 9], "correspond": [8, 9, 10], "cost": [2, 5], "counter": [3, 6, 8], "counter_15_0": 3, "crash": [1, 8, 9], "creat": [2, 3, 4, 5, 7, 8, 9], "createdevicemanag": [0, 2, 5], "criteria": 9, "critic": [2, 5, 8], "cur": 1, "current": [1, 2, 3, 5, 6, 8, 9], "custom": [4, 8, 9], "cwd": 9, "d": 1, "d2": 10, "daemon": [0, 3, 5, 6, 8], "dashboard": 9, "data": [0, 2, 3, 4, 5, 8, 10], "data_to_pickl": [0, 1], "datadir": [4, 8], "datalock": [0, 2, 5], "datapoint": 5, "dataset": [1, 2, 5], "datatre": [1, 9], "date": [3, 9], "deal": 5, "debug": 8, "decid": 5, "def": [0, 8], "default": [0, 2, 4, 8, 9], "defin": [5, 8], "definit": 8, "deliver": 10, "delta": 4, "depend": [8, 10], "deprec": 5, "describ": [2, 8], "descript": [2, 8], "detail": 9, "dev": [0, 4, 5, 8], "dev2": 4, "dev_get_attr": [0, 2, 5], "dev_regist": [0, 2, 5], "dev_reset": [0, 2, 5], "dev_set_attr": [0, 2, 5], "dev_statu": [0, 2, 5], "dev_teardown": [0, 2, 5], "develop": [6, 10], "devic": [0, 1, 2, 4, 5, 6, 9, 10], "devicemanag": [0, 2, 5], "devmap": [0, 2, 5], "dfg": 6, "dgbowl": [7, 8], "dgbowl_schema": 8, "dict": [0, 1, 2, 3, 4, 5, 8], "dictionari": [2, 5], "differ": [4, 9], "dir": 9, "direct": 5, "directli": [5, 9], "directori": [3, 8], "dllpath": [2, 5], "do": [8, 9], "do_task": [0, 2, 5], "doc": 7, "document": [2, 5, 7, 9], "doe": [5, 8], "done": 8, "dorj": 8, "driver": [2, 7, 8, 9, 10], "driver_to_interfac": 0, "driverinterfac": [2, 5, 8], "driverinterface_1_0": [0, 5], "drivermanag": [2, 5], "drivermanager_1_0": 5, "drivernam": 0, "drv": [0, 4], "dummi": 10, "dump": 1, "durat": [2, 5, 8], "d\u00fcbendorf": 10, "e": [1, 2, 5, 8], "each": [1, 5, 8, 9], "easiest": 8, "eject": [4, 9], "element": 3, "emerg": [2, 5], "emmi": 6, "empa": [6, 10], "empti": 9, "end": [1, 2, 5], "energi": [6, 10], "enforc": 5, "ensur": [1, 5], "enter": [5, 8, 9], "entri": [2, 5, 8], "enum": [0, 8], "enumer": 8, "env": 8, "environ": 7, "epfl": 10, "ercol": [6, 10], "error": [2, 5, 8, 9], "establish": 5, "european": [6, 10], "even": 3, "everi": [2, 5, 8], "ex": 1, "exampl": [3, 4, 6, 8], "example_count": [7, 8], "exceed": [2, 5], "except": 5, "execut": [0, 1, 2, 5, 8, 9], "executed_at": [0, 3], "exist": [1, 3, 4, 9], "exit": 1, "expect": [1, 5], "experiment": 8, "expos": [2, 5], "extra": 8, "extract_methodfil": 8, "extract_samplefil": 8, "face": [8, 9], "facilit": 10, "factori": [2, 5], "fail": 9, "failur": [3, 4], "fair": [3, 8], "fals": [0, 2, 8], "fed": 1, "fetch": [1, 5], "field": [0, 2, 8], "file": [1, 3, 4, 5, 9], "filenam": [1, 8, 9], "final": [1, 2, 5, 8], "find": [3, 9], "find_matching_pipelin": [0, 1], "finish": [1, 3], "first": [1, 7, 9, 10], "float": 8, "flowchart": 9, "folder": [1, 7, 8, 9], "follow": [4, 5, 8, 9], "forbid": 8, "form": 9, "format": [1, 8, 9], "found": [1, 3], "frequenc": 8, "from": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "full": 9, "fullfil": 9, "func": 2, "function": [0, 2, 3, 4, 5, 8, 9, 10], "fund": [6, 10], "further": [8, 9], "futur": [2, 5, 6, 9, 10], "g": [5, 8], "gbocho": 6, "gener": [5, 8, 9], "get": [2, 3, 4, 5], "get_attr": [0, 2, 5], "get_data": [0, 2, 5], "get_pipelin": [0, 4], "git": 7, "github": [7, 8], "given": [1, 2, 3, 5], "gracefulli": 1, "graham": 6, "grand": 1, "grant": [6, 10], "group": 1, "guarante": 5, "guid": [6, 9], "ha": [1, 3, 5, 6, 8, 9, 10], "handl": [1, 2, 5], "hard": 8, "hardwar": [5, 8], "have": [1, 2, 5, 9], "helper": [1, 2, 5], "here": [1, 2, 5, 8], "histori": 6, "home": [4, 8], "horizon": [6, 10], "how": [5, 9], "howev": [5, 8, 9], "http": [7, 8], "hycam": 6, "i": [1, 2, 3, 4, 5, 6, 8, 9, 10], "id": [0, 3], "identifi": 3, "implement": 5, "import": [5, 8], "in_devmap": [0, 2], "includ": [1, 3, 4, 5, 6, 8, 9, 10], "incur": [2, 5], "independ": 8, "indic": [2, 5, 9], "individu": [1, 2, 5, 8, 9], "info": 8, "inform": [1, 3, 5, 8, 9], "inherit": [2, 5], "init": [0, 4, 8, 9], "initi": [2, 5, 6, 10], "initialis": 8, "innov": [6, 10], "instal": [6, 8], "instanc": [1, 2, 5, 9], "instanti": 5, "instead": [8, 10], "instruct": [1, 2, 5, 8, 9], "instrument": [6, 8], "int": [0, 1, 3, 4, 8, 9], "integ": [0, 8], "intend": [2, 5, 9], "interact": [2, 4, 5, 8, 9], "interfac": [1, 2, 5], "intern": [5, 8], "interprocess": 10, "interv": 8, "introduc": 5, "invalid": 3, "invent": [6, 10], "invoc": 9, "involv": 1, "io": 0, "ipc": [2, 5], "issu": 8, "item": [0, 8], "iter": [1, 2, 5], "its": [1, 5, 8, 9], "itself": 5, "j": 3, "job": [0, 2, 4, 6, 8], "job_main_loop": [0, 1], "job_thread": [0, 1], "jobid": [0, 1, 3, 9], "jobnam": [0, 3], "jobname_is_thi": 3, "jobpath": [0, 1], "join": 1, "json": [0, 2, 3, 8, 9], "jumo": 6, "keep": 9, "kei": [0, 1, 2, 5], "ketchup": [0, 6, 8], "kill": [1, 3], "kill_tomato_job": [0, 1], "kimbel": 6, "known": [5, 9], "krau": [0, 1, 3, 4, 6, 8, 10], "kwarg": [2, 5], "lab": [6, 8, 10], "label": 1, "larg": [6, 10], "latest": 5, "latter": 8, "launch": [1, 5, 7, 8], "lausann": 10, "lazy_pir": [0, 1], "lead": 9, "least": 5, "librari": [8, 10], "line": [0, 8, 9], "linger": [2, 5], "link": 5, "linux": 8, "list": [1, 2, 3, 4, 5, 8, 9], "listen": 5, "liter": [0, 8], "live": 9, "load": [0, 4, 9], "load_device_fil": [0, 4], "local": 8, "localappdata": 8, "locat": [5, 8, 9], "lock": [2, 5], "log": [1, 4, 5, 8, 9], "logdir": [0, 4], "logfil": 5, "logger": 1, "loglevel": 0, "logpath": 1, "look": 8, "loop": [1, 2, 5], "lori": [6, 10], "mai": [8, 9], "main": [1, 2, 5], "maintain": 5, "manag": [0, 2, 3, 4, 5, 6, 8, 9], "manage_running_pip": [0, 1], "manipul": [2, 5], "map": [0, 1, 2, 5, 10], "mark": [1, 2, 4, 5, 9], "match": [1, 3, 9], "materi": [6, 10], "max": 8, "max_dur": [2, 5, 8], "maximum": [2, 5, 8], "mean": [8, 9], "measur": [2, 5, 8, 9], "meet": 9, "merg": 1, "merge_netcdf": [0, 1], "merge_pipelin": [0, 1], "metadata": 9, "method": [1, 2, 5, 8], "methodfil": 8, "model": [2, 8], "modelintefac": 5, "modelinterfac": [0, 1, 2, 10], "modul": [0, 2, 3, 4, 5, 8, 9], "monitor": 1, "more": [8, 9], "most": 5, "move": 1, "msg": [0, 1, 3, 4], "multi": 8, "multichannel": 8, "multipl": [3, 9], "must": 9, "name": [0, 1, 2, 3, 5, 8, 9], "nc": 9, "necessari": [1, 8], "need": [5, 7, 8, 9], "netcdf": [1, 9], "new": [1, 2, 4, 5, 10], "next": 1, "nextjob": [0, 4], "nfunction": 8, "nmeasur": 8, "nmethod": 8, "node": 9, "noether": 6, "non": 3, "none": [0, 1, 2, 5, 8], "normal": [2, 5], "note": [1, 9], "noth": 3, "notic": 5, "now": 10, "nprovid": 8, "null": [0, 2, 3, 8], "number": 8, "object": [0, 1, 2, 5, 8], "onc": [1, 5, 9], "one": [1, 3, 4, 5, 8, 9], "onli": [1, 2, 3, 5, 7, 9], "onto": [1, 2, 5, 8, 9], "open": 3, "open_datatre": 9, "oper": [2, 5], "oppos": 9, "option": [0, 5, 7, 8], "organis": 8, "other": 8, "out": [5, 8], "outpath": 1, "output": [3, 8], "over": [1, 2, 5], "overal": 8, "overview": 9, "overwrit": 4, "overwritten": 9, "own": [5, 9], "p": 4, "packag": [5, 6, 7, 9], "param": 8, "paramet": [8, 9], "parent": [2, 5], "pars": [0, 8, 9, 10], "part": [2, 5, 6, 10], "particular": 8, "pass": [1, 2, 5, 8, 9], "passthrough": 5, "path": [1, 4, 8], "payload": [0, 1, 3, 9], "pc": 9, "pep": 5, "per": 1, "perform": [1, 2, 3, 5, 8], "period": [2, 5, 9], "peter": [0, 1, 3, 4, 6, 10], "pickl": [1, 9], "pid": [0, 1], "piec": 8, "pip": [0, 1, 4, 7, 8], "pipelin": [0, 1, 4, 6, 9], "pipeline_eject": [0, 4], "pipeline_load": [0, 4], "pipeline_readi": [0, 4], "pipnam": 1, "place": [5, 8, 9], "plan": [8, 9], "platform": 7, "point": 8, "poll": [1, 5, 8], "polling_interv": 8, "pollrat": [0, 2, 5, 8], "popul": 1, "port": [0, 1, 3, 4, 5, 9], "possibl": [5, 8, 9], "pre": 7, "precaut": 9, "prefix": [5, 8], "prepar": [2, 5, 8], "prepare_task": [0, 2, 5], "present": [4, 5, 8, 9], "previous": 6, "prime": [2, 5], "prioriti": 6, "privaci": 5, "privat": 5, "probe": 9, "proce": 9, "process": [1, 2, 4, 8, 9], "programm": [6, 10], "project": [6, 10], "propag": 1, "properti": [0, 2, 8], "provid": [1, 2, 5, 8, 9, 10], "psutil": [1, 6], "public": 10, "push": [2, 5], "pydant": [2, 8], "pyobj": 1, "pypi": 7, "pytest": 7, "python": [1, 5], "q": [0, 3, 9], "queri": [2, 3, 4, 5], "queu": [1, 2, 3, 5], "queue": [0, 1, 2, 5, 6, 8, 9, 10], "quick": [6, 9], "quit": [1, 2, 5], "qw": [0, 3, 9], "r": [0, 9], "race": 9, "rais": 3, "rd": [0, 1, 3, 9], "re": [1, 2, 5], "read": [2, 5, 9], "readabl": 1, "readi": [0, 2, 4, 5, 9], "real": 8, "realist": 8, "receiv": [1, 6, 10], "recommend": 7, "reconfigur": 4, "recoveri": 1, "reentrant": 5, "ref": [0, 8], "refer": [2, 5], "regist": [2, 5], "reinstanti": 5, "relat": 1, "releas": 10, "reload": [0, 4, 9], "remain": [2, 5, 9], "remov": [2, 5, 9, 10], "replac": 8, "repli": [0, 1, 2, 3, 4, 5], "report": [1, 2, 5], "repositori": 7, "repres": [2, 5, 8], "req": 1, "request": [1, 3, 9], "requir": [0, 2, 4, 7, 8], "research": [6, 10], "reset": [0, 1, 2, 5], "respath": 0, "respect": 7, "respons": [1, 2, 5, 8, 9], "respos": 1, "restor": 1, "restructur": 10, "result": 9, "retri": 1, "return": [1, 2, 3, 5, 9], "rlock": [2, 5], "role": [0, 1, 8, 9], "root": 9, "run": [0, 1, 2, 3, 4, 5, 7, 8, 9], "run_ketchup": 0, "run_tomato": 0, "rw": [0, 2], "safe": [2, 5], "same": [5, 9], "sampl": [1, 4, 8, 9], "samplefil": 8, "sampleid": [0, 4, 9], "samplenam": 9, "sampling_interv": [2, 5, 8], "save": 1, "scale": [6, 10], "schedul": [1, 6, 9, 10], "schema": [0, 2, 8], "search": [0, 3], "second": 8, "section": 10, "see": [6, 8, 9], "select": 5, "self": [2, 5], "separ": [5, 7, 8, 10], "sequenc": [0, 8], "serialis": 9, "set": [0, 1, 2, 3, 4, 5, 6, 9], "set_attr": [0, 2, 5], "set_loglevel": [0, 4], "settin": [2, 5], "setup": [0, 1], "setup_log": [0, 1], "sever": 9, "share": 8, "ship": 8, "should": [1, 2, 5, 7, 8], "show": [0, 2, 8], "shown": 8, "similar": 8, "similarli": 5, "singl": [1, 3, 5, 8, 9], "slot": [2, 5], "snappath": [0, 1], "snapshot": [0, 3, 4, 8, 10], "so": [2, 5], "socket": 1, "some": [2, 5, 8], "spawn": [0, 1, 5, 8], "spawn_tomato_driv": [0, 1], "spawned_at": 0, "specif": [1, 2, 5, 8, 9], "specifi": [1, 2, 3, 5, 8, 9], "split": 1, "sqlite": 10, "stakehold": 10, "start": [0, 1, 2, 4, 5, 6], "state": [1, 2, 4, 5, 8, 9], "statu": [0, 1, 2, 3, 4, 5, 9], "status": 9, "step": 8, "stop": [0, 1, 2, 4, 5, 9], "stop_task": [0, 2, 5], "stop_tomato_driv": [0, 1], "storag": [5, 8, 9], "store": [0, 2, 5, 8, 9], "str": [0, 1, 2, 3, 4, 5, 8, 9], "string": [0, 2, 8], "strongli": 7, "sub": [1, 5], "subfold": 9, "submiss": [3, 8, 9], "submit": [0, 1, 2, 3, 5, 8, 9], "submitted_at": [0, 3], "subsequ": [5, 9], "subthread": 1, "succe": 9, "success": [0, 1, 3, 4, 8], "successfulli": [1, 3, 4, 8, 9], "suit": 7, "suitabl": 9, "super": [2, 5], "suppli": [2, 5], "support": [2, 5, 9], "suppos": 1, "sustain": [6, 10], "t": 2, "tag": 8, "take": 5, "target": [2, 5, 7], "task": [1, 2, 5, 8, 9], "task_data": [0, 2, 5], "task_list": [0, 2, 5], "task_runn": [0, 2, 5], "task_start": [0, 2, 5], "task_statu": [0, 2, 5], "task_stop": [0, 2, 5], "task_submit": 5, "teardown": 1, "techniqu": [2, 5, 8], "technique_nam": [8, 9], "technique_param": [2, 5, 8], "termin": 1, "test": 10, "testpar": 8, "text": 9, "than": 8, "thei": 9, "them": 9, "theo": 10, "therefor": [2, 5, 8], "thi": [1, 2, 5, 6, 7, 8, 9, 10], "those": [2, 5, 8, 9], "though": 3, "thread": [0, 1, 2, 5], "through": [2, 5], "time": [5, 9], "timeout": [1, 3, 4], "titl": [0, 2, 8], "to_payload": 8, "tomato": 7, "tomato_daemon": [0, 1], "tomato_driv": [0, 1], "tomato_driver_bootstrap": [0, 1], "tomato_job": [0, 1], "toml": [4, 8], "too": 9, "track": 9, "true": [0, 2, 3, 4, 5, 8], "tu": 10, "tupl": [2, 4, 5], "two": [1, 8, 9], "type": [0, 1, 2, 5, 8], "uncertainti": 9, "under": [5, 6, 10], "union": [6, 10], "uniqueitem": 0, "unit": [0, 2, 5, 9], "unless": 9, "unlock": 8, "unlock_when_don": 8, "until": [2, 5, 9], "up": [1, 2, 3, 5, 9], "updat": [1, 2, 5], "us": [1, 2, 4, 5, 7, 8, 10], "usag": [4, 6], "user": [8, 9], "usual": 5, "util": [6, 8, 9], "val": [2, 5], "valid": [0, 2, 3, 5, 8], "valu": [1, 2, 5, 8], "variabl": 5, "variou": 8, "venv": 7, "verbos": [0, 1, 3, 4, 5, 8], "version": [0, 2, 5, 6, 8, 9], "via": [1, 5, 8], "vv": 7, "wa": [3, 9], "wai": [5, 8, 9], "wait": [2, 5, 9], "want": 1, "warn": [2, 3, 5, 8], "we": [1, 5, 7, 8, 9], "well": [5, 6, 8, 9], "were": 8, "what": 5, "wheel": 7, "when": [1, 2, 8, 9], "whenev": 5, "where": [8, 9], "wherev": 5, "whether": [1, 2, 3, 5, 8], "which": [1, 2, 4, 5, 8, 9], "while": 9, "whole": 9, "window": [1, 8], "within": [1, 7, 8, 9], "without": [4, 5, 9], "work": [3, 5, 7, 9], "worker": [2, 5], "world": 8, "would": 8, "wrapper": 1, "write": [2, 5], "wrote": [4, 8], "xarai": 9, "xarrai": 9, "xr": 1, "y": [3, 4, 9], "yadg": 10, "yaml": [3, 4, 8, 9], "yamlpath": 4, "yml": [3, 4, 8], "you": [7, 9], "your": [5, 8], "zip": 9, "zmq": 10}, "titles": ["tomato package", "tomato.daemon package", "tomato.driverinterface_1_0 package", "tomato.ketchup package", "tomato.tomato package", "Developing tomato drivers", "tomato: au-tomation without the pain!", "Installation", "Quick start guide", "Usage", "Version history"], "titleterms": {"0": [5, 10], "1": 5, "2": 10, "access": 9, "au": 6, "best": 5, "between": 5, "bootstrap": 5, "cmd": 1, "command": [1, 3, 4], "commun": 5, "compris": 1, "concept": 8, "daemon": [1, 4, 9], "data": [1, 9], "develop": 5, "devic": 8, "driver": [0, 1, 5, 6], "driverinterface_1_0": 2, "file": 8, "final": 9, "first": 8, "flowchart": 8, "function": 1, "guid": 8, "histori": 10, "instal": 7, "interfac": [0, 3, 4], "intern": 0, "io": 1, "job": [1, 3, 5, 9], "ketchup": [3, 9], "librari": 6, "line": [3, 4], "load": 1, "machin": 9, "manag": 1, "manual": 6, "model": 0, "modelinterfac": 5, "modul": 1, "output": 9, "packag": [0, 1, 2, 3, 4], "pain": 6, "pars": 1, "payload": 8, "pipelin": 8, "practic": 5, "process": 5, "program": 8, "pydant": 0, "queue": 3, "quick": 8, "readabl": 9, "section": 8, "set": 8, "shim": 0, "snapshot": 9, "start": [8, 9], "store": 1, "submodul": [0, 1], "subpackag": 0, "test": 7, "time": 8, "tomat": 6, "tomato": [0, 1, 2, 3, 4, 5, 6, 8, 9, 10], "up": 8, "us": [0, 9], "usag": 9, "user": 6, "v0": 10, "v1": 10, "ver": 5, "version": 10, "when": 5, "without": 6}}) \ No newline at end of file +Search.setIndex({"alltitles": {"Accessing output data": [[9, "accessing-output-data"]], "Best Practices when developing a driver": [[5, "best-practices-when-developing-a-driver"]], "Bootstrapping a driver process": [[5, "bootstrapping-a-driver-process"]], "Communication between jobs and drivers": [[5, "communication-between-jobs-and-drivers"]], "Data snapshotting": [[9, "data-snapshotting"]], "Developing tomato drivers": [[5, "developing-tomato-drivers"]], "Devices file": [[8, "devices-file"]], "Final job data and metadata": [[9, "final-job-data-and-metadata"]], "First time set-up": [[8, "first-time-set-up"]], "Installation": [[7, "installation"]], "Machine-readable output": [[9, "machine-readable-output"]], "ModelInterface ver. 1.0": [[5, "modelinterface-ver-1-0"]], "Payload file": [[8, "payload-file"]], "Quick start guide": [[8, "quick-start-guide"]], "Settings file": [[8, "settings-file"]], "Starting tomato.daemon": [[9, "starting-tomato-daemon"]], "Submodules": [[0, "module-tomato.drivers"], [1, "module-tomato.daemon.cmd"]], "Subpackages": [[0, "subpackages"]], "Testing the installation": [[7, "testing-the-installation"]], "Usage": [[9, "usage"]], "Using ketchup": [[9, "using-ketchup"]], "Using tomato": [[9, "using-tomato"]], "Version history": [[10, "version-history"]], "devices section": [[8, "devices-section"]], "pipelines section": [[8, "pipelines-section"]], "tomato concepts flowchart": [[8, "tomato-concepts-flowchart"]], "tomato driver library": [[6, null]], "tomato package": [[0, "module-tomato"]], "tomato program flowchart": [[8, "tomato-program-flowchart"]], "tomato user manual": [[6, null]], "tomato-v0.2": [[10, "tomato-v0-2"]], "tomato-v1.0": [[10, "tomato-v1-0"]], "tomato.daemon package": [[1, "module-tomato.daemon"]], "tomato.daemon.cmd: command parsing for tomato daemon": [[1, "tomato-daemon-cmd-command-parsing-for-tomato-daemon"]], "tomato.daemon.driver: the driver manager of tomato daemon": [[1, "tomato-daemon-driver-the-driver-manager-of-tomato-daemon"]], "tomato.daemon.io: functions for storing and loading data": [[1, "tomato-daemon-io-functions-for-storing-and-loading-data"]], "tomato.daemon.job: the job manager of tomato daemon": [[1, "tomato-daemon-job-the-job-manager-of-tomato-daemon"]], "tomato.daemon: module of functions comprising the tomato daemon": [[1, "tomato-daemon-module-of-functions-comprising-the-tomato-daemon"]], "tomato.driverinterface_1_0 package": [[2, "module-tomato.driverinterface_1_0"]], "tomato.drivers: Shim interfacing with tomato driver packages": [[0, "tomato-drivers-shim-interfacing-with-tomato-driver-packages"]], "tomato.ketchup package": [[3, "module-tomato.ketchup"]], "tomato.ketchup: command line interface to the tomato job queue": [[3, "tomato-ketchup-command-line-interface-to-the-tomato-job-queue"]], "tomato.models: Pydantic models for internal tomato use": [[0, "tomato-models-pydantic-models-for-internal-tomato-use"]], "tomato.tomato package": [[4, "module-tomato.tomato"]], "tomato.tomato: command line interface to the tomato daemon": [[4, "tomato-tomato-command-line-interface-to-the-tomato-daemon"]], "tomato: au-tomation without the pain!": [[6, "tomato-au-tomation-without-the-pain"]]}, "docnames": ["apidoc/tomato", "apidoc/tomato.daemon", "apidoc/tomato.driverinterface_1_0", "apidoc/tomato.ketchup", "apidoc/tomato.tomato", "driver_develop", "index", "installation", "quickstart", "usage", "version"], "envversion": {"sphinx": 61, "sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1}, "filenames": ["apidoc/tomato.rst", "apidoc/tomato.daemon.rst", "apidoc/tomato.driverinterface_1_0.rst", "apidoc/tomato.ketchup.rst", "apidoc/tomato.tomato.rst", "driver_develop.rst", "index.rst", "installation.rst", "quickstart.rst", "usage.rst", "version.rst"], "indexentries": {"action_queued_jobs() (in module tomato.daemon.job)": [[1, "tomato.daemon.job.action_queued_jobs", false]], "address (tomato.models.component attribute)": [[0, "tomato.models.Component.address", false]], "address (tomato.models.device attribute)": [[0, "tomato.models.Device.address", false]], "appdir (tomato.models.daemon attribute)": [[0, "tomato.models.Daemon.appdir", false]], "attrs() (tomato.driverinterface_1_0.modelinterface method)": [[2, "tomato.driverinterface_1_0.ModelInterface.attrs", false]], "attrs() (tomato.driverinterface_1_0.modelinterface.devicemanager method)": [[2, "tomato.driverinterface_1_0.ModelInterface.DeviceManager.attrs", false]], "cancel() (in module tomato.ketchup)": [[3, "tomato.ketchup.cancel", false]], "capabilities (tomato.models.component attribute)": [[0, "tomato.models.Component.capabilities", false]], "capabilities() (tomato.driverinterface_1_0.modelinterface method)": [[2, "tomato.driverinterface_1_0.ModelInterface.capabilities", false]], "capabilities() (tomato.driverinterface_1_0.modelinterface.devicemanager method)": [[2, "tomato.driverinterface_1_0.ModelInterface.DeviceManager.capabilities", false]], "channel (tomato.models.component attribute)": [[0, "tomato.models.Component.channel", false]], "channels (tomato.models.device attribute)": [[0, "tomato.models.Device.channels", false]], "check_queued_jobs() (in module tomato.daemon.job)": [[1, "tomato.daemon.job.check_queued_jobs", false]], "cmps (tomato.models.daemon attribute)": [[0, "tomato.models.Daemon.cmps", false]], "coerce_channel() (tomato.models.component class method)": [[0, "tomato.models.Component.coerce_channel", false]], "coerce_channels() (tomato.models.device class method)": [[0, "tomato.models.Device.coerce_channels", false]], "completed_at (tomato.models.completedjob attribute)": [[0, "tomato.models.CompletedJob.completed_at", false]], "completed_at (tomato.models.job attribute)": [[0, "tomato.models.Job.completed_at", false]], "component() (in module tomato.daemon.cmd)": [[1, "tomato.daemon.cmd.component", false]], "component_tag (dgbowl_schemas.tomato.payload.task attribute)": [[8, "dgbowl_schemas.tomato.payload.Task.component_tag", false]], "components (tomato.models.pipeline attribute)": [[0, "tomato.models.Pipeline.components", false]], "connected_at (tomato.models.driver attribute)": [[0, "tomato.models.Driver.connected_at", false]], "createdevicemanager() (tomato.driverinterface_1_0.modelinterface method)": [[2, "tomato.driverinterface_1_0.ModelInterface.CreateDeviceManager", false]], "data (tomato.driverinterface_1_0.modelinterface.devicemanager attribute)": [[2, "tomato.driverinterface_1_0.ModelInterface.DeviceManager.data", false]], "data (tomato.models.reply attribute)": [[0, "tomato.models.Reply.data", false]], "data_to_pickle() (in module tomato.daemon.io)": [[1, "tomato.daemon.io.data_to_pickle", false]], "datalock (tomato.driverinterface_1_0.modelinterface.devicemanager attribute)": [[2, "tomato.driverinterface_1_0.ModelInterface.DeviceManager.datalock", false]], "dev_get_attr() (tomato.driverinterface_1_0.modelinterface method)": [[2, "tomato.driverinterface_1_0.ModelInterface.dev_get_attr", false]], "dev_register() (tomato.driverinterface_1_0.modelinterface method)": [[2, "tomato.driverinterface_1_0.ModelInterface.dev_register", false]], "dev_reset() (tomato.driverinterface_1_0.modelinterface method)": [[2, "tomato.driverinterface_1_0.ModelInterface.dev_reset", false]], "dev_set_attr() (tomato.driverinterface_1_0.modelinterface method)": [[2, "tomato.driverinterface_1_0.ModelInterface.dev_set_attr", false]], "dev_status() (tomato.driverinterface_1_0.modelinterface method)": [[2, "tomato.driverinterface_1_0.ModelInterface.dev_status", false]], "dev_teardown() (tomato.driverinterface_1_0.modelinterface method)": [[2, "tomato.driverinterface_1_0.ModelInterface.dev_teardown", false]], "device (tomato.models.component attribute)": [[0, "tomato.models.Component.device", false]], "device() (in module tomato.daemon.cmd)": [[1, "tomato.daemon.cmd.device", false]], "devmap (tomato.driverinterface_1_0.modelinterface attribute)": [[2, "tomato.driverinterface_1_0.ModelInterface.devmap", false]], "devs (tomato.models.daemon attribute)": [[0, "tomato.models.Daemon.devs", false]], "do_task() (tomato.driverinterface_1_0.modelinterface.devicemanager method)": [[2, "tomato.driverinterface_1_0.ModelInterface.DeviceManager.do_task", false]], "driver (tomato.driverinterface_1_0.modelinterface.devicemanager attribute)": [[2, "tomato.driverinterface_1_0.ModelInterface.DeviceManager.driver", false]], "driver (tomato.models.component attribute)": [[0, "tomato.models.Component.driver", false]], "driver (tomato.models.device attribute)": [[0, "tomato.models.Device.driver", false]], "driver() (in module tomato.daemon.cmd)": [[1, "tomato.daemon.cmd.driver", false]], "driver_to_interface() (in module tomato.drivers)": [[0, "tomato.drivers.driver_to_interface", false]], "drvs (tomato.models.daemon attribute)": [[0, "tomato.models.Daemon.drvs", false]], "executed_at (tomato.models.job attribute)": [[0, "tomato.models.Job.executed_at", false]], "extract_methodfile() (dgbowl_schemas.tomato.payload.payload class method)": [[8, "dgbowl_schemas.tomato.payload.Payload.extract_methodfile", false]], "extract_samplefile() (dgbowl_schemas.tomato.payload.payload class method)": [[8, "dgbowl_schemas.tomato.payload.Payload.extract_samplefile", false]], "find_matching_pipelines() (in module tomato.daemon.job)": [[1, "tomato.daemon.job.find_matching_pipelines", false]], "get_attr() (tomato.driverinterface_1_0.modelinterface.devicemanager method)": [[2, "tomato.driverinterface_1_0.ModelInterface.DeviceManager.get_attr", false]], "get_data() (tomato.driverinterface_1_0.modelinterface.devicemanager method)": [[2, "tomato.driverinterface_1_0.ModelInterface.DeviceManager.get_data", false]], "get_pipelines() (in module tomato.tomato)": [[4, "tomato.tomato.get_pipelines", false]], "id (tomato.models.completedjob attribute)": [[0, "tomato.models.CompletedJob.id", false]], "id (tomato.models.job attribute)": [[0, "tomato.models.Job.id", false]], "in_devmap() (in module tomato.driverinterface_1_0)": [[2, "tomato.driverinterface_1_0.in_devmap", false]], "init() (in module tomato.tomato)": [[4, "tomato.tomato.init", false]], "job() (in module tomato.daemon.cmd)": [[1, "tomato.daemon.cmd.job", false]], "job_main_loop() (in module tomato.daemon.job)": [[1, "tomato.daemon.job.job_main_loop", false]], "job_thread() (in module tomato.daemon.job)": [[1, "tomato.daemon.job.job_thread", false]], "jobid (tomato.models.pipeline attribute)": [[0, "tomato.models.Pipeline.jobid", false]], "jobname (tomato.models.completedjob attribute)": [[0, "tomato.models.CompletedJob.jobname", false]], "jobname (tomato.models.job attribute)": [[0, "tomato.models.Job.jobname", false]], "jobpath (tomato.models.completedjob attribute)": [[0, "tomato.models.CompletedJob.jobpath", false]], "jobpath (tomato.models.job attribute)": [[0, "tomato.models.Job.jobpath", false]], "jobs (tomato.models.daemon attribute)": [[0, "tomato.models.Daemon.jobs", false]], "key (tomato.driverinterface_1_0.modelinterface.devicemanager attribute)": [[2, "tomato.driverinterface_1_0.ModelInterface.DeviceManager.key", false]], "kill_tomato_job() (in module tomato.daemon.job)": [[1, "tomato.daemon.job.kill_tomato_job", false]], "lazy_pirate() (in module tomato.daemon.job)": [[1, "tomato.daemon.job.lazy_pirate", false]], "load() (in module tomato.daemon.io)": [[1, "tomato.daemon.io.load", false]], "load_device_file() (in module tomato.tomato)": [[4, "tomato.tomato.load_device_file", false]], "logdir (tomato.models.daemon attribute)": [[0, "tomato.models.Daemon.logdir", false]], "manage_running_pips() (in module tomato.daemon.job)": [[1, "tomato.daemon.job.manage_running_pips", false]], "manager() (in module tomato.daemon.driver)": [[1, "tomato.daemon.driver.manager", false]], "manager() (in module tomato.daemon.job)": [[1, "tomato.daemon.job.manager", false]], "max_duration (dgbowl_schemas.tomato.payload.task attribute)": [[8, "dgbowl_schemas.tomato.payload.Task.max_duration", false]], "merge_netcdfs() (in module tomato.daemon.io)": [[1, "tomato.daemon.io.merge_netcdfs", false]], "merge_pipelines() (in module tomato.daemon.cmd)": [[1, "tomato.daemon.cmd.merge_pipelines", false]], "method (dgbowl_schemas.tomato.payload.payload attribute)": [[8, "dgbowl_schemas.tomato.payload.Payload.method", false]], "modelinterface (class in tomato.driverinterface_1_0)": [[2, "tomato.driverinterface_1_0.ModelInterface", false]], "modelinterface.devicemanager (class in tomato.driverinterface_1_0)": [[2, "tomato.driverinterface_1_0.ModelInterface.DeviceManager", false]], "module": [[0, "module-tomato", false], [0, "module-tomato.drivers", false], [0, "module-tomato.models", false], [1, "module-tomato.daemon", false], [1, "module-tomato.daemon.cmd", false], [1, "module-tomato.daemon.driver", false], [1, "module-tomato.daemon.io", false], [1, "module-tomato.daemon.job", false], [2, "module-tomato.driverinterface_1_0", false], [3, "module-tomato.ketchup", false], [4, "module-tomato.tomato", false]], "msg (tomato.models.reply attribute)": [[0, "tomato.models.Reply.msg", false]], "name (tomato.models.component attribute)": [[0, "tomato.models.Component.name", false]], "name (tomato.models.device attribute)": [[0, "tomato.models.Device.name", false]], "name (tomato.models.driver attribute)": [[0, "tomato.models.Driver.name", false]], "name (tomato.models.pipeline attribute)": [[0, "tomato.models.Pipeline.name", false]], "nextjob (tomato.models.daemon attribute)": [[0, "tomato.models.Daemon.nextjob", false]], "payload (tomato.models.job attribute)": [[0, "tomato.models.Job.payload", false]], "pid (tomato.models.driver attribute)": [[0, "tomato.models.Driver.pid", false]], "pid (tomato.models.job attribute)": [[0, "tomato.models.Job.pid", false]], "pipeline() (in module tomato.daemon.cmd)": [[1, "tomato.daemon.cmd.pipeline", false]], "pipeline_eject() (in module tomato.tomato)": [[4, "tomato.tomato.pipeline_eject", false]], "pipeline_load() (in module tomato.tomato)": [[4, "tomato.tomato.pipeline_load", false]], "pipeline_ready() (in module tomato.tomato)": [[4, "tomato.tomato.pipeline_ready", false]], "pips (tomato.models.daemon attribute)": [[0, "tomato.models.Daemon.pips", false]], "polling_interval (dgbowl_schemas.tomato.payload.task attribute)": [[8, "dgbowl_schemas.tomato.payload.Task.polling_interval", false]], "pollrate (tomato.models.device attribute)": [[0, "tomato.models.Device.pollrate", false]], "port (tomato.models.daemon attribute)": [[0, "tomato.models.Daemon.port", false]], "port (tomato.models.driver attribute)": [[0, "tomato.models.Driver.port", false]], "prepare_task() (tomato.driverinterface_1_0.modelinterface.devicemanager method)": [[2, "tomato.driverinterface_1_0.ModelInterface.DeviceManager.prepare_task", false]], "ready (tomato.models.pipeline attribute)": [[0, "tomato.models.Pipeline.ready", false]], "reload() (in module tomato.tomato)": [[4, "tomato.tomato.reload", false]], "reset() (tomato.driverinterface_1_0.modelinterface method)": [[2, "tomato.driverinterface_1_0.ModelInterface.reset", false]], "reset() (tomato.driverinterface_1_0.modelinterface.devicemanager method)": [[2, "tomato.driverinterface_1_0.ModelInterface.DeviceManager.reset", false]], "respath (tomato.models.completedjob attribute)": [[0, "tomato.models.CompletedJob.respath", false]], "respath (tomato.models.job attribute)": [[0, "tomato.models.Job.respath", false]], "role (tomato.models.component attribute)": [[0, "tomato.models.Component.role", false]], "run() (tomato.driverinterface_1_0.modelinterface.devicemanager method)": [[2, "tomato.driverinterface_1_0.ModelInterface.DeviceManager.run", false]], "run_ketchup() (in module tomato)": [[0, "tomato.run_ketchup", false]], "run_tomato() (in module tomato)": [[0, "tomato.run_tomato", false]], "running (tomato.driverinterface_1_0.modelinterface.devicemanager attribute)": [[2, "tomato.driverinterface_1_0.ModelInterface.DeviceManager.running", false]], "rw (tomato.driverinterface_1_0.attr attribute)": [[2, "tomato.driverinterface_1_0.Attr.rw", false]], "sample (dgbowl_schemas.tomato.payload.payload attribute)": [[8, "dgbowl_schemas.tomato.payload.Payload.sample", false]], "sampleid (tomato.models.pipeline attribute)": [[0, "tomato.models.Pipeline.sampleid", false]], "sampling_interval (dgbowl_schemas.tomato.payload.task attribute)": [[8, "dgbowl_schemas.tomato.payload.Task.sampling_interval", false]], "search() (in module tomato.ketchup)": [[3, "tomato.ketchup.search", false]], "set_attr() (tomato.driverinterface_1_0.modelinterface.devicemanager method)": [[2, "tomato.driverinterface_1_0.ModelInterface.DeviceManager.set_attr", false]], "set_loglevel() (in module tomato)": [[0, "tomato.set_loglevel", false]], "set_loglevel() (in module tomato.tomato)": [[4, "tomato.tomato.set_loglevel", false]], "settings (dgbowl_schemas.tomato.payload.payload attribute)": [[8, "dgbowl_schemas.tomato.payload.Payload.settings", false]], "settings (tomato.driverinterface_1_0.modelinterface attribute)": [[2, "tomato.driverinterface_1_0.ModelInterface.settings", false]], "settings (tomato.models.daemon attribute)": [[0, "tomato.models.Daemon.settings", false]], "settings (tomato.models.driver attribute)": [[0, "tomato.models.Driver.settings", false]], "setup() (in module tomato.daemon.cmd)": [[1, "tomato.daemon.cmd.setup", false]], "setup_logging() (in module tomato.daemon)": [[1, "tomato.daemon.setup_logging", false]], "snappath (tomato.models.job attribute)": [[0, "tomato.models.Job.snappath", false]], "snapshot() (in module tomato.ketchup)": [[3, "tomato.ketchup.snapshot", false]], "spawn_tomato_driver() (in module tomato.daemon.driver)": [[1, "tomato.daemon.driver.spawn_tomato_driver", false]], "spawned_at (tomato.models.driver attribute)": [[0, "tomato.models.Driver.spawned_at", false]], "start() (in module tomato.tomato)": [[4, "tomato.tomato.start", false]], "status (tomato.driverinterface_1_0.attr attribute)": [[2, "tomato.driverinterface_1_0.Attr.status", false]], "status (tomato.models.completedjob attribute)": [[0, "tomato.models.CompletedJob.status", false]], "status (tomato.models.daemon attribute)": [[0, "tomato.models.Daemon.status", false]], "status (tomato.models.job attribute)": [[0, "tomato.models.Job.status", false]], "status() (in module tomato.daemon.cmd)": [[1, "tomato.daemon.cmd.status", false]], "status() (in module tomato.ketchup)": [[3, "tomato.ketchup.status", false]], "status() (in module tomato.tomato)": [[4, "tomato.tomato.status", false]], "status() (tomato.driverinterface_1_0.modelinterface method)": [[2, "tomato.driverinterface_1_0.ModelInterface.status", false]], "status() (tomato.driverinterface_1_0.modelinterface.devicemanager method)": [[2, "tomato.driverinterface_1_0.ModelInterface.DeviceManager.status", false]], "stop() (in module tomato.daemon.cmd)": [[1, "tomato.daemon.cmd.stop", false]], "stop() (in module tomato.tomato)": [[4, "tomato.tomato.stop", false]], "stop_task() (tomato.driverinterface_1_0.modelinterface.devicemanager method)": [[2, "tomato.driverinterface_1_0.ModelInterface.DeviceManager.stop_task", false]], "stop_tomato_driver() (in module tomato.daemon.driver)": [[1, "tomato.daemon.driver.stop_tomato_driver", false]], "store() (in module tomato.daemon.io)": [[1, "tomato.daemon.io.store", false]], "submit() (in module tomato.ketchup)": [[3, "tomato.ketchup.submit", false]], "submitted_at (tomato.models.job attribute)": [[0, "tomato.models.Job.submitted_at", false]], "success (tomato.models.reply attribute)": [[0, "tomato.models.Reply.success", false]], "task_data() (tomato.driverinterface_1_0.modelinterface method)": [[2, "tomato.driverinterface_1_0.ModelInterface.task_data", false]], "task_list (tomato.driverinterface_1_0.modelinterface.devicemanager attribute)": [[2, "tomato.driverinterface_1_0.ModelInterface.DeviceManager.task_list", false]], "task_runner() (tomato.driverinterface_1_0.modelinterface.devicemanager method)": [[2, "tomato.driverinterface_1_0.ModelInterface.DeviceManager.task_runner", false]], "task_start() (tomato.driverinterface_1_0.modelinterface method)": [[2, "tomato.driverinterface_1_0.ModelInterface.task_start", false]], "task_status() (tomato.driverinterface_1_0.modelinterface method)": [[2, "tomato.driverinterface_1_0.ModelInterface.task_status", false]], "task_stop() (tomato.driverinterface_1_0.modelinterface method)": [[2, "tomato.driverinterface_1_0.ModelInterface.task_stop", false]], "technique_name (dgbowl_schemas.tomato.payload.task attribute)": [[8, "dgbowl_schemas.tomato.payload.Task.technique_name", false]], "technique_params (dgbowl_schemas.tomato.payload.task attribute)": [[8, "dgbowl_schemas.tomato.payload.Task.technique_params", false]], "thread (tomato.driverinterface_1_0.modelinterface.devicemanager attribute)": [[2, "tomato.driverinterface_1_0.ModelInterface.DeviceManager.thread", false]], "tomato": [[0, "module-tomato", false]], "tomato.daemon": [[1, "module-tomato.daemon", false]], "tomato.daemon.cmd": [[1, "module-tomato.daemon.cmd", false]], "tomato.daemon.driver": [[1, "module-tomato.daemon.driver", false]], "tomato.daemon.io": [[1, "module-tomato.daemon.io", false]], "tomato.daemon.job": [[1, "module-tomato.daemon.job", false]], "tomato.driverinterface_1_0": [[2, "module-tomato.driverinterface_1_0", false]], "tomato.drivers": [[0, "module-tomato.drivers", false]], "tomato.ketchup": [[3, "module-tomato.ketchup", false]], "tomato.models": [[0, "module-tomato.models", false]], "tomato.tomato": [[4, "module-tomato.tomato", false]], "tomato_daemon() (in module tomato.daemon)": [[1, "tomato.daemon.tomato_daemon", false]], "tomato_driver() (in module tomato.daemon.driver)": [[1, "tomato.daemon.driver.tomato_driver", false]], "tomato_driver_bootstrap() (in module tomato.daemon.driver)": [[1, "tomato.daemon.driver.tomato_driver_bootstrap", false]], "tomato_job() (in module tomato.daemon.job)": [[1, "tomato.daemon.job.tomato_job", false]], "type (tomato.driverinterface_1_0.attr attribute)": [[2, "tomato.driverinterface_1_0.Attr.type", false]], "units (tomato.driverinterface_1_0.attr attribute)": [[2, "tomato.driverinterface_1_0.Attr.units", false]], "verbosity (tomato.models.daemon attribute)": [[0, "tomato.models.Daemon.verbosity", false]], "version (dgbowl_schemas.tomato.payload.payload attribute)": [[8, "dgbowl_schemas.tomato.payload.Payload.version", false]], "version (tomato.driverinterface_1_0.modelinterface attribute)": [[2, "tomato.driverinterface_1_0.ModelInterface.version", false]]}, "objects": {"": [[0, 3, 0, "-", "tomato"]], "dgbowl_schemas.tomato.payload": [[8, 0, 1, "", "Payload"], [8, 0, 1, "", "Task"]], "dgbowl_schemas.tomato.payload.Payload": [[8, 1, 1, "", "extract_methodfile"], [8, 1, 1, "", "extract_samplefile"], [8, 2, 1, "", "method"], [8, 2, 1, "", "sample"], [8, 2, 1, "", "settings"], [8, 2, 1, "", "version"]], "dgbowl_schemas.tomato.payload.Task": [[8, 2, 1, "", "component_tag"], [8, 2, 1, "", "max_duration"], [8, 2, 1, "", "polling_interval"], [8, 2, 1, "", "sampling_interval"], [8, 2, 1, "", "technique_name"], [8, 2, 1, "", "technique_params"]], "tomato": [[1, 3, 0, "-", "daemon"], [2, 3, 0, "-", "driverinterface_1_0"], [0, 3, 0, "-", "drivers"], [3, 3, 0, "-", "ketchup"], [0, 3, 0, "-", "models"], [0, 4, 1, "", "run_ketchup"], [0, 4, 1, "", "run_tomato"], [0, 4, 1, "", "set_loglevel"], [4, 3, 0, "-", "tomato"]], "tomato.daemon": [[1, 3, 0, "-", "cmd"], [1, 3, 0, "-", "driver"], [1, 3, 0, "-", "io"], [1, 3, 0, "-", "job"], [1, 4, 1, "", "setup_logging"], [1, 4, 1, "", "tomato_daemon"]], "tomato.daemon.cmd": [[1, 4, 1, "", "component"], [1, 4, 1, "", "device"], [1, 4, 1, "", "driver"], [1, 4, 1, "", "job"], [1, 4, 1, "", "merge_pipelines"], [1, 4, 1, "", "pipeline"], [1, 4, 1, "", "setup"], [1, 4, 1, "", "status"], [1, 4, 1, "", "stop"]], "tomato.daemon.driver": [[1, 4, 1, "", "manager"], [1, 4, 1, "", "spawn_tomato_driver"], [1, 4, 1, "", "stop_tomato_driver"], [1, 4, 1, "", "tomato_driver"], [1, 4, 1, "", "tomato_driver_bootstrap"]], "tomato.daemon.io": [[1, 4, 1, "", "data_to_pickle"], [1, 4, 1, "", "load"], [1, 4, 1, "", "merge_netcdfs"], [1, 4, 1, "", "store"]], "tomato.daemon.job": [[1, 4, 1, "", "action_queued_jobs"], [1, 4, 1, "", "check_queued_jobs"], [1, 4, 1, "", "find_matching_pipelines"], [1, 4, 1, "", "job_main_loop"], [1, 4, 1, "", "job_thread"], [1, 4, 1, "", "kill_tomato_job"], [1, 4, 1, "", "lazy_pirate"], [1, 4, 1, "", "manage_running_pips"], [1, 4, 1, "", "manager"], [1, 4, 1, "", "tomato_job"]], "tomato.driverinterface_1_0": [[2, 0, 1, "", "Attr"], [2, 5, 1, "", "ModelInterface"], [2, 4, 1, "", "in_devmap"]], "tomato.driverinterface_1_0.Attr": [[2, 2, 1, "", "rw"], [2, 2, 1, "", "status"], [2, 2, 1, "", "type"], [2, 2, 1, "", "units"]], "tomato.driverinterface_1_0.ModelInterface": [[2, 6, 1, "", "CreateDeviceManager"], [2, 5, 1, "", "DeviceManager"], [2, 6, 1, "", "attrs"], [2, 6, 1, "", "capabilities"], [2, 6, 1, "", "dev_get_attr"], [2, 6, 1, "", "dev_register"], [2, 6, 1, "", "dev_reset"], [2, 6, 1, "", "dev_set_attr"], [2, 6, 1, "", "dev_status"], [2, 6, 1, "", "dev_teardown"], [2, 7, 1, "", "devmap"], [2, 6, 1, "", "reset"], [2, 7, 1, "", "settings"], [2, 6, 1, "", "status"], [2, 6, 1, "", "task_data"], [2, 6, 1, "", "task_start"], [2, 6, 1, "", "task_status"], [2, 6, 1, "", "task_stop"], [2, 7, 1, "", "version"]], "tomato.driverinterface_1_0.ModelInterface.DeviceManager": [[2, 6, 1, "", "attrs"], [2, 6, 1, "", "capabilities"], [2, 7, 1, "", "data"], [2, 7, 1, "", "datalock"], [2, 6, 1, "", "do_task"], [2, 7, 1, "", "driver"], [2, 6, 1, "", "get_attr"], [2, 6, 1, "", "get_data"], [2, 7, 1, "", "key"], [2, 6, 1, "", "prepare_task"], [2, 6, 1, "", "reset"], [2, 6, 1, "", "run"], [2, 7, 1, "", "running"], [2, 6, 1, "", "set_attr"], [2, 6, 1, "", "status"], [2, 6, 1, "", "stop_task"], [2, 7, 1, "", "task_list"], [2, 6, 1, "", "task_runner"], [2, 7, 1, "", "thread"]], "tomato.drivers": [[0, 4, 1, "", "driver_to_interface"]], "tomato.ketchup": [[3, 4, 1, "", "cancel"], [3, 4, 1, "", "search"], [3, 4, 1, "", "snapshot"], [3, 4, 1, "", "status"], [3, 4, 1, "", "submit"]], "tomato.models": [[0, 0, 1, "", "CompletedJob"], [0, 0, 1, "", "Component"], [0, 0, 1, "", "Daemon"], [0, 0, 1, "", "Device"], [0, 0, 1, "", "Driver"], [0, 0, 1, "", "Job"], [0, 0, 1, "", "Pipeline"], [0, 0, 1, "", "Reply"]], "tomato.models.CompletedJob": [[0, 2, 1, "", "completed_at"], [0, 2, 1, "", "id"], [0, 2, 1, "", "jobname"], [0, 2, 1, "", "jobpath"], [0, 2, 1, "", "respath"], [0, 2, 1, "", "status"]], "tomato.models.Component": [[0, 2, 1, "", "address"], [0, 2, 1, "", "capabilities"], [0, 2, 1, "", "channel"], [0, 1, 1, "", "coerce_channel"], [0, 2, 1, "", "device"], [0, 2, 1, "", "driver"], [0, 2, 1, "", "name"], [0, 2, 1, "", "role"]], "tomato.models.Daemon": [[0, 2, 1, "", "appdir"], [0, 2, 1, "", "cmps"], [0, 2, 1, "", "devs"], [0, 2, 1, "", "drvs"], [0, 2, 1, "", "jobs"], [0, 2, 1, "", "logdir"], [0, 2, 1, "", "nextjob"], [0, 2, 1, "", "pips"], [0, 2, 1, "", "port"], [0, 2, 1, "", "settings"], [0, 2, 1, "", "status"], [0, 2, 1, "", "verbosity"]], "tomato.models.Device": [[0, 2, 1, "", "address"], [0, 2, 1, "", "channels"], [0, 1, 1, "", "coerce_channels"], [0, 2, 1, "", "driver"], [0, 2, 1, "", "name"], [0, 2, 1, "", "pollrate"]], "tomato.models.Driver": [[0, 2, 1, "", "connected_at"], [0, 2, 1, "", "name"], [0, 2, 1, "", "pid"], [0, 2, 1, "", "port"], [0, 2, 1, "", "settings"], [0, 2, 1, "", "spawned_at"]], "tomato.models.Job": [[0, 2, 1, "", "completed_at"], [0, 2, 1, "", "executed_at"], [0, 2, 1, "", "id"], [0, 2, 1, "", "jobname"], [0, 2, 1, "", "jobpath"], [0, 2, 1, "", "payload"], [0, 2, 1, "", "pid"], [0, 2, 1, "", "respath"], [0, 2, 1, "", "snappath"], [0, 2, 1, "", "status"], [0, 2, 1, "", "submitted_at"]], "tomato.models.Pipeline": [[0, 2, 1, "", "components"], [0, 2, 1, "", "jobid"], [0, 2, 1, "", "name"], [0, 2, 1, "", "ready"], [0, 2, 1, "", "sampleid"]], "tomato.models.Reply": [[0, 2, 1, "", "data"], [0, 2, 1, "", "msg"], [0, 2, 1, "", "success"]], "tomato.tomato": [[4, 4, 1, "", "get_pipelines"], [4, 4, 1, "", "init"], [4, 4, 1, "", "load_device_file"], [4, 4, 1, "", "pipeline_eject"], [4, 4, 1, "", "pipeline_load"], [4, 4, 1, "", "pipeline_ready"], [4, 4, 1, "", "reload"], [4, 4, 1, "", "set_loglevel"], [4, 4, 1, "", "start"], [4, 4, 1, "", "status"], [4, 4, 1, "", "stop"]]}, "objnames": {"0": ["py", "pydantic_model", "Python model"], "1": ["py", "pydantic_validator", "Python validator"], "2": ["py", "pydantic_field", "Python field"], "3": ["py", "module", "Python module"], "4": ["py", "function", "Python function"], "5": ["py", "class", "Python class"], "6": ["py", "method", "Python method"], "7": ["py", "attribute", "Python attribute"]}, "objtypes": {"0": "py:pydantic_model", "1": "py:pydantic_validator", "2": "py:pydantic_field", "3": "py:module", "4": "py:function", "5": "py:class", "6": "py:method", "7": "py:attribute"}, "terms": {"": [3, 5, 6, 8, 10], "0": [2, 8, 9], "00": 3, "03": 3, "0a1": 8, "0rc2": 4, "1": [0, 2, 3, 4, 8, 9], "100": 8, "1000": 1, "11": 3, "123": 8, "1234": [4, 8], "1235": 4, "133355": 3, "15": 3, "16": 3, "168": 8, "17": 3, "19": 3, "192": 8, "2": [3, 8, 9], "20": 4, "2020": [6, 10], "2024": 3, "2030": [6, 10], "23": 3, "2419": 6, "3": [3, 5, 8], "3600": 8, "39": 3, "46": 3, "490703766": 6, "5": 8, "50": 3, "500": 1, "523873650": 6, "53": 3, "702504": 3, "8": 5, "957189": [6, 10], "972593": 3, "99": 8, "A": [1, 2, 5, 8, 9, 10], "As": [5, 7, 9], "At": 0, "By": [8, 9], "For": [1, 8, 9], "If": [1, 8, 9], "In": [5, 8, 9], "It": [2, 5, 8, 9], "No": [2, 5, 6, 10], "Of": 8, "The": [1, 2, 3, 5, 6, 7, 8, 9, 10], "Then": [1, 5], "There": [5, 9], "These": 8, "To": [5, 7, 8, 9], "Will": 4, "_": [3, 4, 5], "a1": 8, "abc": 8, "about": [1, 3, 5, 8, 9], "abov": [1, 7, 8], "abstract": [2, 5, 8], "access": 5, "acquir": 5, "act": [1, 5], "action": 5, "action_queued_job": [0, 1], "activ": 1, "actual": [1, 3, 5, 9], "addit": 8, "additionalproperti": [0, 8], "addr": 8, "address": [0, 1, 2, 5, 8, 9], "advanc": 5, "affect": 1, "after": [2, 5], "afterward": 1, "again": 4, "against": 9, "agreement": [6, 10], "alexandr": 6, "all": [1, 2, 3, 5, 7, 8, 9], "allow": [1, 8], "alreadi": [2, 4, 5, 9], "also": [2, 4, 5, 8, 9, 10], "alter": 1, "altern": 9, "alwai": [5, 9], "among": [2, 5], "an": [2, 3, 5, 6, 8, 9], "ani": [0, 1, 2, 4, 5, 8, 9], "annot": [2, 5, 9], "anoth": [2, 4, 5], "anyof": [0, 8], "app": 9, "appdir": [0, 4, 8], "append": 5, "appropri": [1, 5], "ar": [1, 2, 4, 5, 7, 8, 9], "arbitrary_types_allow": 0, "archiv": [3, 8, 9], "argument": [1, 3, 8, 9], "around": 1, "arrai": [0, 8], "ask": 8, "assign": [1, 8], "associ": 8, "assum": 8, "attempt": [1, 3, 4], "attr": [0, 2, 5, 9], "attribut": [2, 5, 8], "aurora": 10, "author": [0, 1, 3, 4, 6, 10], "autom": [6, 9], "automat": [8, 9], "avail": [2, 5, 7, 8, 9], "avoid": 1, "b": 8, "b2": 8, "back": [1, 9], "base": [0, 1, 2, 5], "basemodel": [0, 2], "basic": [4, 8, 10], "batteri": [6, 10], "been": [3, 5, 8, 9, 10], "befor": [1, 2, 5, 8], "begin": 9, "being": [2, 5, 8], "below": 8, "berlin": 10, "better": 1, "between": 8, "big": 10, "biolog": [2, 5, 10], "bool": [0, 2], "boolean": [0, 2, 8], "bootstrap": 0, "both": 1, "bound": 8, "bronkhorst": 6, "build": 7, "built": 7, "c": [0, 3, 9], "cach": [2, 4, 5], "call": [1, 2, 3, 5, 8], "can": [1, 2, 5, 7, 8, 9], "can_submit": [2, 5], "cancel": [0, 3, 9], "capabl": [0, 2, 5, 8, 9], "care": 5, "carri": [5, 8], "case": [2, 5, 9], "caveat": [2, 5], "cd": [0, 3, 7, 9], "ce": [0, 1, 9], "certain": 8, "cf": 9, "chang": [1, 4, 9], "channel": [0, 1, 2, 5, 8, 9], "check": [1, 2, 3, 5, 8, 9], "check_queued_job": [0, 1], "child": 9, "children": 1, "choos": 4, "class": [2, 5, 8, 10], "clean": [2, 5, 9], "cleanli": 9, "clear": [2, 5], "clone": 7, "close": 4, "cmd": 0, "cmp": [0, 1, 4], "code": [0, 1, 3, 4, 6, 8, 10], "coerce_channel": 0, "collect": [2, 5], "com": [7, 8], "com1": 8, "com2": 8, "command": [0, 5, 7, 8, 9], "commun": 10, "compat": [4, 5], "compil": [2, 5], "complet": [0, 1, 2, 5, 9], "completed_at": [0, 3], "completedjob": 0, "compon": [0, 1, 2, 4, 5, 8, 9], "component_tag": 8, "compris": 0, "concat": [6, 10], "concaten": 1, "concept": 9, "conda": 7, "condit": 9, "config": [0, 4, 8], "configur": [5, 6, 8, 9], "conhost": 1, "connect": [0, 5], "connected_at": 0, "consid": 5, "consist": [2, 5, 9], "const": 8, "constructor": 5, "contact": 1, "contain": [1, 2, 3, 5, 8, 9], "context": [1, 3, 4, 5], "contribut": 10, "convent": [5, 9], "convers": [6, 10], "convert": [2, 5, 9], "copi": 1, "correspond": [8, 9, 10], "cost": [2, 5], "counter": [3, 6, 8], "counter_15_0": 3, "crash": [1, 8, 9], "creat": [2, 3, 4, 5, 7, 8, 9], "createdevicemanag": [0, 2, 5], "criteria": 9, "critic": [2, 5, 8], "cur": 1, "current": [1, 2, 3, 5, 6, 8, 9], "custom": [4, 8, 9], "cwd": 9, "d": 1, "d2": 10, "daemon": [0, 3, 5, 6, 8], "dashboard": 9, "data": [0, 2, 3, 4, 5, 8, 10], "data_to_pickl": [0, 1], "datadir": [4, 8], "datalock": [0, 2, 5], "datapoint": 5, "dataset": [1, 2, 5], "datatre": [1, 9], "date": [3, 9], "deal": 5, "debug": 8, "decid": 5, "def": [0, 8], "default": [0, 2, 4, 8, 9], "defin": [5, 8, 9], "definit": 8, "deliver": 10, "delta": 4, "depend": [8, 10], "deprec": 5, "describ": [2, 8], "descript": [2, 8], "detail": 9, "determin": [2, 5], "dev": [0, 4, 5, 8], "dev2": 4, "dev_get_attr": [0, 2, 5], "dev_regist": [0, 2, 5], "dev_reset": [0, 2, 5], "dev_set_attr": [0, 2, 5], "dev_statu": [0, 2, 5], "dev_teardown": [0, 2, 5], "develop": [6, 10], "devic": [0, 1, 2, 4, 5, 6, 9, 10], "devicemanag": [0, 2, 5], "devmap": [0, 2, 5], "dfg": 6, "dgbowl": [7, 8], "dgbowl_schema": 8, "dict": [0, 1, 2, 3, 4, 5, 8], "dictionari": [2, 5, 9], "differ": [4, 9], "dir": 9, "direct": 5, "directli": [5, 9], "directori": [3, 8], "dllpath": [2, 5], "do": [8, 9], "do_task": [0, 2, 5], "doc": 7, "document": [2, 5, 7, 9], "doe": [5, 8], "done": 8, "dorj": 8, "driver": [2, 7, 8, 9, 10], "driver_to_interfac": 0, "driverinterfac": [2, 5, 8], "driverinterface_1_0": [0, 5], "drivermanag": [2, 5], "drivermanager_1_0": 5, "drivernam": 0, "drv": [0, 4], "dummi": 10, "dump": 1, "durat": [2, 5, 8], "d\u00fcbendorf": 10, "e": [1, 2, 5, 8], "each": [1, 5, 8, 9], "easiest": 8, "eject": [4, 9], "element": 3, "emerg": [2, 5], "emmi": 6, "empa": [6, 10], "empti": 9, "end": [1, 2, 5], "energi": [6, 10], "enforc": 5, "ensur": [1, 5], "enter": [5, 8, 9], "entri": [2, 5, 8, 9], "enum": [0, 8], "enumer": 8, "env": 8, "environ": 7, "epfl": 10, "ercol": [6, 10], "error": [2, 5, 8, 9], "establish": 5, "european": [6, 10], "even": 3, "everi": [2, 5, 8], "ex": 1, "exampl": [3, 4, 6, 8], "example_count": [7, 8], "exceed": [2, 5], "except": 5, "execut": [0, 1, 2, 5, 8, 9], "executed_at": [0, 3], "exist": [1, 3, 4, 9], "exit": 1, "expect": [1, 5], "experiment": 8, "expos": [2, 5], "extra": 8, "extract_methodfil": 8, "extract_samplefil": 8, "face": [8, 9], "facilit": 10, "factori": [2, 5], "fail": 9, "failur": [3, 4], "fair": [3, 8], "fals": [0, 1, 2, 8], "fed": 1, "fetch": [1, 5], "field": [0, 2, 8], "file": [1, 3, 4, 5, 9], "filenam": [1, 8, 9], "final": [1, 2, 5, 8], "find": [3, 9], "find_matching_pipelin": [0, 1], "finish": [1, 3], "first": [1, 7, 9, 10], "float": 8, "flowchart": 9, "folder": [1, 7, 8, 9], "follow": [4, 5, 8, 9], "forbid": 8, "form": 9, "format": [1, 8, 9], "found": [1, 3], "frequenc": 8, "from": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "full": 9, "fullfil": 9, "func": 2, "function": [0, 2, 3, 4, 5, 8, 9, 10], "fund": [6, 10], "further": [8, 9], "futur": [2, 5, 6, 9, 10], "g": [5, 8], "gbocho": 6, "gener": [5, 8, 9], "get": [2, 3, 4, 5], "get_attr": [0, 2, 5], "get_data": [0, 2, 5], "get_pipelin": [0, 4], "git": 7, "github": [7, 8], "given": [1, 2, 3, 5], "gracefulli": 1, "graham": 6, "grand": 1, "grant": [6, 10], "group": 1, "guarante": 5, "guid": [6, 9], "ha": [1, 3, 5, 6, 8, 9, 10], "handl": [1, 2, 5], "hard": 8, "hardwar": [5, 8], "have": [1, 2, 5, 9], "helper": [1, 2, 5], "here": [1, 2, 5, 8], "histori": 6, "home": [4, 8], "horizon": [6, 10], "how": [5, 9], "howev": [5, 8, 9], "http": [7, 8], "hycam": 6, "i": [1, 2, 3, 4, 5, 6, 8, 9, 10], "id": [0, 3], "identifi": 3, "implement": 5, "import": [5, 8], "in_devmap": [0, 2], "includ": [1, 3, 4, 5, 6, 8, 9, 10], "incur": [2, 5], "independ": 8, "indic": [2, 5, 9], "individu": [1, 2, 5, 8, 9], "info": 8, "inform": [1, 3, 5, 8, 9], "inherit": [2, 5], "init": [0, 4, 8, 9], "initi": [2, 5, 6, 10], "initialis": 8, "innov": [6, 10], "instal": [6, 8], "instanc": [1, 2, 5, 9], "instanti": 5, "instead": [8, 10], "instruct": [1, 2, 5, 8, 9], "instrument": [6, 8], "int": [0, 1, 3, 4, 8, 9], "integ": [0, 8], "intend": [2, 5, 9], "interact": [2, 4, 5, 8, 9], "interfac": [1, 2, 5], "intern": [5, 8], "interprocess": 10, "interv": 8, "introduc": 5, "invalid": 3, "invent": [6, 10], "invoc": 9, "involv": 1, "io": 0, "ipc": [2, 5], "issu": 8, "item": [0, 8], "iter": [1, 2, 5], "its": [1, 5, 8, 9], "itself": 5, "j": 3, "job": [0, 2, 4, 6, 8], "job_main_loop": [0, 1], "job_thread": [0, 1], "jobid": [0, 1, 3, 9], "jobnam": [0, 3], "jobname_is_thi": 3, "jobpath": [0, 1], "join": 1, "json": [0, 2, 3, 8, 9], "jumo": 6, "keep": 9, "kei": [0, 1, 2, 5], "ketchup": [0, 6, 8], "kill": [1, 3], "kill_tomato_job": [0, 1], "kimbel": 6, "known": [5, 9], "krau": [0, 1, 3, 4, 6, 8, 10], "kwarg": [2, 5], "lab": [6, 8, 10], "label": 1, "larg": [6, 10], "latest": 5, "latter": 8, "launch": [1, 5, 7, 8], "lausann": 10, "lazy_pir": [0, 1], "lead": 9, "least": 5, "librari": [8, 10], "line": [0, 8, 9], "linger": [2, 5], "link": 5, "linux": 8, "list": [1, 2, 3, 4, 5, 8, 9], "listen": 5, "liter": [0, 8], "live": 9, "load": [0, 4, 9], "load_device_fil": [0, 4], "local": 8, "localappdata": 8, "locat": [5, 8, 9], "lock": [2, 5], "log": [1, 4, 5, 8, 9], "logdir": [0, 4], "logfil": 5, "logger": 1, "loglevel": 0, "logpath": 1, "look": 8, "loop": [1, 2, 5], "lori": [6, 10], "mai": [8, 9], "main": [1, 2, 5], "maintain": 5, "manag": [0, 2, 3, 4, 5, 6, 8, 9], "manage_running_pip": [0, 1], "manipul": [2, 5], "map": [0, 1, 2, 5, 10], "mark": [1, 2, 4, 5, 9], "match": [1, 3, 9], "materi": [6, 10], "max": 8, "max_dur": [2, 5, 8], "maximum": [2, 5, 8], "mean": [8, 9], "measur": [2, 5, 8, 9], "meet": 9, "merg": 1, "merge_netcdf": [0, 1], "merge_pipelin": [0, 1], "method": [1, 2, 5, 8], "methodfil": 8, "model": [2, 8, 9], "model_validate_json": 9, "modelintefac": 5, "modelinterfac": [0, 1, 2, 10], "modul": [0, 2, 3, 4, 5, 8, 9], "monitor": 1, "more": [8, 9], "most": 5, "move": 1, "msg": [0, 1, 3, 4], "multi": 8, "multichannel": 8, "multipl": [3, 9], "must": 9, "name": [0, 1, 2, 3, 5, 8, 9], "nc": 9, "necessari": [1, 8], "need": [5, 7, 8, 9], "netcdf": [1, 9], "new": [1, 2, 4, 5, 10], "next": 1, "nextjob": [0, 4], "nfunction": 8, "nmeasur": 8, "nmethod": 8, "node": 9, "noether": 6, "non": 3, "none": [0, 1, 2, 5, 8], "normal": [2, 5], "note": [1, 9], "noth": 3, "notic": 5, "now": 10, "nprovid": 8, "null": [0, 2, 3, 8], "number": 8, "object": [0, 1, 2, 5, 8, 9], "onc": [1, 5, 9], "one": [1, 3, 4, 5, 8, 9], "onli": [1, 2, 3, 5, 7, 9], "onto": [1, 2, 5, 8, 9], "open": 3, "open_datatre": 9, "oper": [2, 5], "oppos": 9, "option": [0, 5, 7, 8], "organis": 8, "other": 8, "out": [5, 8], "output": [3, 8], "over": [1, 2, 5], "overal": 8, "overview": 9, "overwrit": 4, "overwritten": 9, "own": [5, 9], "p": 4, "packag": [5, 6, 7, 9], "param": 8, "paramet": [8, 9], "parent": [2, 5], "pars": [0, 8, 9, 10], "part": [2, 5, 6, 10], "particular": 8, "pass": [1, 2, 5, 8, 9], "passthrough": 5, "path": [1, 4, 8], "payload": [0, 1, 3, 9], "pc": 9, "pep": 5, "per": 1, "perform": [1, 2, 3, 5, 8], "period": [2, 5, 9], "peter": [0, 1, 3, 4, 6, 10], "pickl": [1, 9], "pid": [0, 1], "piec": 8, "pip": [0, 1, 4, 7, 8], "pipelin": [0, 1, 4, 6, 9], "pipeline_eject": [0, 4], "pipeline_load": [0, 4], "pipeline_readi": [0, 4], "pipnam": 1, "place": [5, 8, 9], "plan": [8, 9], "platform": 7, "point": 8, "poll": [1, 5, 8], "polling_interv": 8, "pollrat": [0, 2, 5, 8], "popul": 1, "port": [0, 1, 3, 4, 5, 9], "possibl": [5, 8, 9], "pre": 7, "precaut": 9, "prefix": [5, 8], "prepar": [2, 5, 8], "prepare_task": [0, 2, 5], "present": [4, 5, 8, 9], "previous": 6, "prime": [2, 5], "prioriti": 6, "privaci": 5, "privat": 5, "probe": 9, "proce": 9, "process": [1, 2, 4, 8, 9], "programm": [6, 10], "project": [6, 10], "propag": 1, "properti": [0, 2, 8], "provid": [1, 2, 5, 8, 9, 10], "psutil": [1, 6], "public": 10, "push": [2, 5], "pydant": [2, 8], "pyobj": 1, "pypi": 7, "pytest": 7, "python": [1, 5], "q": [0, 3, 9], "queri": [2, 3, 4, 5], "queu": [1, 2, 3, 5], "queue": [0, 1, 2, 5, 6, 8, 9, 10], "quick": [6, 9], "quit": [1, 2, 5], "qw": [0, 3, 9], "r": [0, 9], "race": 9, "rais": 3, "rd": [0, 1, 3, 9], "re": [1, 2, 5], "read": [2, 5, 9], "readabl": 1, "readi": [0, 2, 4, 5, 9], "real": 8, "realist": 8, "receiv": [1, 6, 10], "recommend": 7, "reconfigur": 4, "recoveri": 1, "reentrant": 5, "ref": [0, 8], "refer": [2, 5], "regist": [2, 5], "reinstanti": 5, "relat": 1, "releas": 10, "relev": 9, "reload": [0, 4, 9], "remain": [2, 5, 9], "remov": [2, 5, 9, 10], "replac": 8, "repli": [0, 1, 2, 3, 4, 5], "report": [1, 2, 5], "repositori": 7, "repres": [2, 5, 8], "req": 1, "request": [1, 3, 9], "requir": [0, 2, 4, 7, 8], "research": [6, 10], "reset": [0, 1, 2, 5], "respath": 0, "respect": [7, 9], "respons": [1, 2, 5, 8, 9], "respos": 1, "restor": 1, "restructur": 10, "result": 9, "retri": 1, "return": [1, 2, 3, 5, 9], "rlock": [2, 5], "role": [0, 1, 8, 9], "root": 9, "run": [0, 1, 2, 3, 4, 5, 7, 8, 9], "run_ketchup": 0, "run_tomato": 0, "rw": [0, 2], "safe": [2, 5], "same": [5, 9], "sampl": [1, 4, 8, 9], "samplefil": 8, "sampleid": [0, 4, 9], "samplenam": 9, "sampling_interv": [2, 5, 8], "save": 1, "scale": [6, 10], "schedul": [1, 6, 9, 10], "schema": [0, 2, 8], "search": [0, 3], "second": 8, "section": 10, "see": [6, 8, 9], "select": 5, "self": [2, 5], "separ": [5, 7, 8, 10], "sequenc": [0, 8], "serialis": 9, "set": [0, 1, 2, 3, 4, 5, 6, 9], "set_attr": [0, 2, 5], "set_loglevel": [0, 4], "settin": [2, 5], "setup": [0, 1], "setup_log": [0, 1], "sever": 9, "share": 8, "ship": 8, "should": [1, 2, 5, 7, 8], "show": [0, 2, 8], "shown": 8, "similar": 8, "similarli": 5, "singl": [1, 3, 5, 8, 9], "slot": [2, 5], "snappath": 0, "snapshot": [0, 1, 3, 4, 8, 10], "so": [2, 5], "socket": 1, "some": [2, 5, 8], "sourc": 9, "spawn": [0, 1, 5, 8], "spawn_tomato_driv": [0, 1], "spawned_at": 0, "specif": [1, 2, 5, 8], "specifi": [1, 2, 3, 5, 8, 9], "split": 1, "sqlite": 10, "stakehold": 10, "start": [0, 1, 2, 4, 5, 6], "state": [1, 2, 4, 5, 8, 9], "statu": [0, 1, 2, 3, 4, 5, 9], "status": 9, "step": 8, "stop": [0, 1, 2, 4, 5, 9], "stop_task": [0, 2, 5], "stop_tomato_driv": [0, 1], "storag": [5, 8, 9], "store": [0, 2, 5, 8, 9], "str": [0, 1, 2, 3, 4, 5, 8, 9], "string": [0, 2, 8], "strongli": 7, "sub": [1, 5], "subfold": 9, "submiss": [3, 8, 9], "submit": [0, 1, 2, 3, 5, 8, 9], "submitted_at": [0, 3], "subsequ": [5, 9], "subthread": 1, "succe": 9, "success": [0, 1, 3, 4, 8], "successfulli": [1, 3, 4, 8, 9], "suit": 7, "suitabl": 9, "suppli": [2, 5], "support": [2, 5, 9], "suppos": 1, "sustain": [6, 10], "t": 2, "tag": 8, "take": 5, "target": [2, 5, 7], "task": [1, 2, 5, 8, 9], "task_data": [0, 2, 5], "task_list": [0, 2, 5], "task_runn": [0, 2, 5], "task_start": [0, 2, 5], "task_statu": [0, 2, 5], "task_stop": [0, 2, 5], "task_submit": 5, "teardown": 1, "techniqu": [2, 5, 8], "technique_nam": [8, 9], "technique_param": [2, 5, 8], "termin": 1, "test": 10, "testpar": 8, "text": 9, "than": 8, "thei": 9, "them": 9, "theo": 10, "therefor": [2, 5, 8], "thi": [1, 2, 5, 6, 7, 8, 9, 10], "those": [2, 5, 8, 9], "though": 3, "thread": [0, 1, 2, 5], "through": [2, 5], "time": [5, 9], "timeout": [1, 3, 4], "titl": [0, 2, 8], "to_payload": 8, "tomato": 7, "tomato_compon": 9, "tomato_daemon": [0, 1], "tomato_driv": [0, 1], "tomato_driver_bootstrap": [0, 1], "tomato_job": [0, 1, 9], "tomato_vers": 9, "toml": [4, 8], "track": 9, "true": [0, 2, 3, 4, 5, 8], "tu": 10, "tupl": [2, 4, 5], "two": [1, 8, 9], "type": [0, 1, 2, 5, 8], "uncertainti": 9, "under": [5, 6, 10], "union": [6, 10], "uniqueitem": 0, "unit": [0, 2, 5, 9], "unless": 9, "unlock": 8, "unlock_when_don": 8, "until": [2, 5, 9], "up": [1, 2, 3, 5, 9], "updat": [1, 2, 5], "us": [1, 2, 4, 5, 7, 8, 10], "usag": [4, 6], "user": [8, 9], "usual": 5, "util": [6, 8, 9], "val": [2, 5], "valid": [0, 2, 3, 5, 8], "valu": [1, 2, 5, 8], "variabl": 5, "variou": 8, "venv": 7, "verbos": [0, 1, 3, 4, 5, 8], "version": [0, 2, 5, 6, 8, 9], "via": [1, 5, 8], "vv": 7, "wa": [3, 9], "wai": [5, 8, 9], "wait": [2, 5, 9], "want": 1, "warn": [2, 3, 5, 8], "we": [1, 5, 7, 8, 9], "well": [5, 6, 8, 9], "were": 8, "what": 5, "wheel": 7, "when": [1, 2, 8, 9], "whenev": 5, "where": [8, 9], "wherev": 5, "whether": [1, 2, 3, 5, 8], "which": [1, 2, 4, 5, 8, 9], "while": 9, "whole": 9, "window": [1, 8], "within": [1, 7, 8, 9], "without": [4, 5, 9], "work": [3, 5, 7, 9], "worker": [2, 5], "world": 8, "would": 8, "wrapper": 1, "write": [2, 5], "wrote": [4, 8], "xarai": 9, "xarrai": 9, "xr": 1, "y": [3, 4, 9], "yadg": 10, "yaml": [3, 4, 8, 9], "yamlpath": 4, "yml": [3, 4, 8], "you": [7, 9], "your": [5, 8], "zip": 9, "zmq": 10}, "titles": ["tomato package", "tomato.daemon package", "tomato.driverinterface_1_0 package", "tomato.ketchup package", "tomato.tomato package", "Developing tomato drivers", "tomato: au-tomation without the pain!", "Installation", "Quick start guide", "Usage", "Version history"], "titleterms": {"0": [5, 10], "1": 5, "2": 10, "access": 9, "au": 6, "best": 5, "between": 5, "bootstrap": 5, "cmd": 1, "command": [1, 3, 4], "commun": 5, "compris": 1, "concept": 8, "daemon": [1, 4, 9], "data": [1, 9], "develop": 5, "devic": 8, "driver": [0, 1, 5, 6], "driverinterface_1_0": 2, "file": 8, "final": 9, "first": 8, "flowchart": 8, "function": 1, "guid": 8, "histori": 10, "instal": 7, "interfac": [0, 3, 4], "intern": 0, "io": 1, "job": [1, 3, 5, 9], "ketchup": [3, 9], "librari": 6, "line": [3, 4], "load": 1, "machin": 9, "manag": 1, "manual": 6, "metadata": 9, "model": 0, "modelinterfac": 5, "modul": 1, "output": 9, "packag": [0, 1, 2, 3, 4], "pain": 6, "pars": 1, "payload": 8, "pipelin": 8, "practic": 5, "process": 5, "program": 8, "pydant": 0, "queue": 3, "quick": 8, "readabl": 9, "section": 8, "set": 8, "shim": 0, "snapshot": 9, "start": [8, 9], "store": 1, "submodul": [0, 1], "subpackag": 0, "test": 7, "time": 8, "tomat": 6, "tomato": [0, 1, 2, 3, 4, 5, 6, 8, 9, 10], "up": 8, "us": [0, 9], "usag": 9, "user": 6, "v0": 10, "v1": 10, "ver": 5, "version": 10, "when": 5, "without": 6}}) \ No newline at end of file diff --git a/main/usage.html b/main/usage.html index caac68f..b2110b3 100644 --- a/main/usage.html +++ b/main/usage.html @@ -4,7 +4,7 @@ - Usage — tomato 1.0rc3.dev1 documentation + Usage — tomato 1.0rc3.dev2 documentation @@ -16,7 +16,7 @@ - + @@ -39,7 +39,7 @@
    - 1.0rc3.dev1 + 1.0rc3.dev2
    @@ -59,7 +59,7 @@
  • Using ketchup
  • Machine-readable output
  • Accessing output data
  • @@ -300,11 +300,23 @@

    Accessing output dataWhile “live” job data is available in the job folder in pickled form, accessing those files directly is not supported and may lead to race conditions and crashes. If you need an up-to-date data archive, request a snapshot. If you need the current status of a device, probe the responsible driver process.

    Note that a pipeline dashboard functionality is planned for a future version of tomato.

    -
    -

    Final job data

    +
    +

    Final job data and metadata

    By default, all data in the job folder is processed to create a NetCDF file. The NetCDF files can be read using xaray.open_datatree(), returning a xarray.DataTree.

    -

    In the root node of the DataTree, a copy of the full payload is included, serialised as a json str. Additionally, execution-specific metadata, such as the pipeline name, and job submission/execution/completion time are stored on the root node, too.

    -

    The child nodes of the DataTree contain the actual data from each pipeline component, unit-annotated using the CF Metadata Conventions. The node names correspond to the role that component fullfils in a pipeline.

    +

    In the root node of the DataTree, the attrs dictionary contains all tomato-relevant metadata. This currently includes:

    +
      +
    • tomato_version which is the version of tomato used to create the NetCDF file,

    • +
    • tomato_Job which is the job object serialised as a json str, containing the full payload, sample information, as well as job submission/execution/completion time.

    • +
    +

    The child nodes of the DataTree contain:

    +
      +
    • the actual data from each pipeline component, unit-annotated using the CF Metadata Conventions. The node names correspond to the role that component fullfils in a pipeline.

    • +
    • a tomato_Component entry in the attrs object, which is the component object serialised as a json str, containing information about the device address and channel that define the component, the driver and device names, as well as the component capabilities.

    • +
    +
    +

    Note

    +

    The tomato_Job and tomato_Component entries can be converted back to the source objects using tomato.models.Job.model_validate_json() and tomato.models.Component.model_validate_json(), respectively.

    +