Skip to main content

An example of how to include a custom dosing / LED / temperature automation

This is an example repository for creating a custom automation for the Pioreactor. By turning your automation into a repository, it can be installed easier into your Pioreactor cluster, and can be shared with others:

If available on PyPI:

pio install-plugin <plugin-name>

(And also pios to install across your entire cluster.)

If avaiable on Github:

pio install-plugin <plugin-name> --url <git+ url>

Components to make your own automation plugin

Python logic

This is the core logic that interacts with the pioreactor software. See the class MyCustomDosingAutomation for details. Note the following:

  • subclasses from DosingAutomationContrib, LEDAutomationContrib, or TemperatureAutomationContrib
  • requires a key
  • requires an execute

There are many other examples of automations in our core repository

It's important that the class is in this the main __init__.py, as this is how DosingController discovers it.

setup.py

This can be copy-pasted into your project, with the fields updated. The most important field is

  entry_points={'pioreactor.plugins': 'pioreactor_custom_dosing_automation = pioreactor_custom_dosing_automation'},

This is necessary, and your code should be updated with the correct name of your plugin.

Adding specific settings to config.ini

Using the file additional_config.ini (must be located in the source code's folder), you can add user-editable settings for your automation. This will be merged into the config.ini.

Adding your automation to the UI

You can specify the automation in the automation drop-down in the UI, and specify its fields and default values to be shown to the user.

Create a folder called ui in the source code folder. Inside it, create a folder called contrib. And inside that, create a folder depending on your automation type: dosing, led, or temperature. See below for example directory structure.

MANIFEST.in

In order for Python to include ui and/or additional_config.ini, we need to specify them in a MANIFEST.in file. Copy-paste the MANIFEST.in from this project, and make the appropriate substitutions in its contents.

Example directory structure for your plugin

 plugin_name/
    __init__.py
    other_python_files.py
    additional_config.ini
    ui/
      contrib/
        automations/
          dosing/
            plugin_name.yaml        OR
          led/
            plugin_name.yaml        OR
          temperature/
            plugin_name.yaml
setup.py
MANIFEST.in

Download files

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

Source Distribution

pioreactor_custom_dosing_automation-0.0.1.tar.gz (4.1 kB view details)

Uploaded Source

Built Distribution

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

File details

Details for the file pioreactor_custom_dosing_automation-0.0.1.tar.gz.

File metadata

  • Download URL: pioreactor_custom_dosing_automation-0.0.1.tar.gz
  • Upload date:
  • Size: 4.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.5.0.1 requests/2.24.0 requests-toolbelt/0.9.1 tqdm/4.50.0 CPython/3.8.5

File hashes

Hashes for pioreactor_custom_dosing_automation-0.0.1.tar.gz
Algorithm Hash digest
SHA256 ed271398cd0891d2a81c3724cbcee2ec1fe5693422ca5cf561fa981bad912b87
MD5 671e3761e7d45c053acc377c75e31739
BLAKE2b-256 3c9bc8ea20d4b2cdc22ee469b4572b8fceb046bf85f7b5d375c6c317cbe63fdd

See more details on using hashes here.

File details

Details for the file pioreactor_custom_dosing_automation-0.0.1-py3-none-any.whl.

File metadata

  • Download URL: pioreactor_custom_dosing_automation-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 5.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.5.0.1 requests/2.24.0 requests-toolbelt/0.9.1 tqdm/4.50.0 CPython/3.8.5

File hashes

Hashes for pioreactor_custom_dosing_automation-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 050c66d6a27dfac2dbb2113e41d6ba714903e16efdee03fcd09540e78a0c5df3
MD5 c7e017882c92e7b43ae0dff95c65b559
BLAKE2b-256 0d758e689e2fbf29066a456779b2676c6f37a119bb0f0fe0e600b2aa22da16b5

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.0.1 This release

2 files

Supported by

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