Skip to main content

The Modular Autonomous Discovery for Science (MADSci) Python Client and CLI.

Project description

MADSci Clients

Provides a collection of clients for interacting with the different components of a MADSci interface.

CLI

Note: the MADSci CLI is not currently stable, and commands/options/arguments may have breaking changes from update to update

The command line interface is a tool for MADSci-powered lab administrators and users to interact with the system. It's designed to facilitate common interactions with the definition files used to configure and control a MADSci Lab.

For a complete and up-to-date list of subcommands, run madsci --help. Alternatively, you can use the MADSci Terminal User Interface (TUI) to easily craft commands with madsci tui.

Usage: madsci [OPTIONS] COMMAND [ARGS]...

  MADSci command line interface.

Options:
  -q, --quiet  Run in quiet mode, skipping prompts.
  --help       Show this message and exit.

Commands:
  lab       Manage labs.
  manager   Manage lab system managers.
  node      Manage nodes.
  resource  Manage resources.
  tui       Open Textual TUI.
  version   Display the MADSci client version.
  workcell  Manage workcells

Node Clients

Node clients allow you to interface with MADSci Nodes to:

  • Send actions and get action results
  • Get information about the node
  • Get the current state and status of the node
  • Send administrative commands (safety stop, pause, resume, etc)

As MADSci is designed to support multiple communications protocols, we provide a client for each. In addition, an AbstractNodeClient base class is provided, which can be inherited from to implement your own node clients for different interfaces.

REST Client

The RestNodeClient class allows you to communicate with and control any server implementing the MADSci Node standard (see MADSci Node Module). See a basic example below, or the node_notebook.ipynb in the MADSci Examples.

from madsci.client.node.rest_node_client import RestNodeClient

client = RestNodeClient(url="http://example:2000")
client.get_status()

Event Client

Allows a user or system to interface with a MADSci EventManager, or log events locally if one isn't available/configured. Can be used to both log new events and query logged events.

For detailed documentation on usage, see the EventManager Documentation.

Experiment Application

The ExperimentApplication class is a helper class designed to act as scaffolding for a user's own python experiment. It provides helpful tooling around tracking and responding to changes in Experiment status, marshalling the clients needed to leverage different parts of a MADSci-enabled lab, and implementing your own custom experimental logic.

Experiment Client

Allows the user or an automated system/agent to inerface with a MADSci ExperimentManager to capture Experiment Designs and track status and metadata related to specific Experimental Runs and whole Experimental Campaigns.

For detailed documentation on usage, see the ExperimentManager Documentation

Data Client

Allows the user or an automated system/agent to interface with a MADSci DataManager to upload, query, and fetch DataPoints. Currently supports ValueDataPoints (which can include any JSON-serializable data) and FileDataPoints (which directly stores the files).

For detailed documentation on usage, see the DataManager Documentation.

Resource Client

Allows the user or an automated system/agent to interface with a MADSci ResourceManager to initialize, manage, track, query, update, and remove physical resources (including samples, consumables, containers, labware, etc.).

For detailed documentation on usage, see the ResourceManager Documentation.

Workcell Client

Allows the user or an automated system/agent to interface with a MADSci WorkcellManager. Includes support for submitting, querying, and controlling Workflows, sending admin commands to the Workcell, and interacting with Workcell Locations.

For detailed documentation on usage, see the WorkcellManager Documentation.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

madsci_client-0.3.1.tar.gz (30.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

madsci_client-0.3.1-py3-none-any.whl (35.9 kB view details)

Uploaded Python 3

File details

Details for the file madsci_client-0.3.1.tar.gz.

File metadata

  • Download URL: madsci_client-0.3.1.tar.gz
  • Upload date:
  • Size: 30.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: pdm/2.24.2 CPython/3.9.22 Linux/6.11.0-1014-azure

File hashes

Hashes for madsci_client-0.3.1.tar.gz
Algorithm Hash digest
SHA256 437a1c44de3c41aa65c7c42460ad45bfb9183a322c6b71a2a77f4ef5dbd8ef4e
MD5 ccc2b43c8c2260c68614f5eaf6a00bdf
BLAKE2b-256 92c9bf109b349e29752f7288f84ed4a9191872e771cf4daa56e0e60bf811f2aa

See more details on using hashes here.

File details

Details for the file madsci_client-0.3.1-py3-none-any.whl.

File metadata

  • Download URL: madsci_client-0.3.1-py3-none-any.whl
  • Upload date:
  • Size: 35.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: pdm/2.24.2 CPython/3.9.22 Linux/6.11.0-1014-azure

File hashes

Hashes for madsci_client-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 728dbda68b76eae6347b36e33d9423f833abaf98e43cdfdfc6f12e08cef16a7c
MD5 6fb3c449227b0896c77375008b9e9702
BLAKE2b-256 e01891f3fb6ac5df7eed1f30099c94524596c7384cf9f201b8bfc525730ed6d9

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page