From 0228823ea666e897f49ff7c06c0b92b757c34145 Mon Sep 17 00:00:00 2001 From: CamDavidsonPilon Date: Mon, 15 Jul 2024 17:14:21 -0400 Subject: [PATCH] import automations --- pioreactor/background_jobs/dosing_automation.py | 8 +++++++- pioreactor/background_jobs/led_automation.py | 3 ++- pioreactor/background_jobs/temperature_automation.py | 1 + update_scripts/upcoming/update.sh | 9 ++++----- 4 files changed, 14 insertions(+), 7 deletions(-) diff --git a/pioreactor/background_jobs/dosing_automation.py b/pioreactor/background_jobs/dosing_automation.py index fec1957f..80cac7be 100644 --- a/pioreactor/background_jobs/dosing_automation.py +++ b/pioreactor/background_jobs/dosing_automation.py @@ -27,6 +27,7 @@ from pioreactor.utils import whoami from pioreactor.utils.timing import current_utc_datetime from pioreactor.utils.timing import RepeatedTimer +from pioreactor.automations.dosing import * def close(x: float, y: float) -> bool: @@ -685,7 +686,12 @@ def start_dosing_automation( ) -> DosingAutomationJob: unit = unit or whoami.get_unit_name() experiment = experiment or whoami.get_assigned_experiment_name(unit) - klass = available_dosing_automations[automation_name] + try: + klass = available_dosing_automations[automation_name] + except: + raise KeyError( + f"Unable to find {automation_name}. Available automations are {list( available_dosing_automations.keys())}" + ) return klass( unit=unit, diff --git a/pioreactor/background_jobs/led_automation.py b/pioreactor/background_jobs/led_automation.py index 97268aec..c07c84b0 100644 --- a/pioreactor/background_jobs/led_automation.py +++ b/pioreactor/background_jobs/led_automation.py @@ -22,6 +22,7 @@ from pioreactor.utils import whoami from pioreactor.utils.timing import current_utc_datetime from pioreactor.utils.timing import RepeatedTimer +from pioreactor.automations.led import * def brief_pause() -> float: @@ -61,7 +62,7 @@ class LEDAutomationJob(AutomationJob): def __init_subclass__(cls, **kwargs): super().__init_subclass__(**kwargs) - # this registers all subclasses of LEDAutomation + # this registers all subclasses of LEDAutomationJob if hasattr(cls, "automation_name") and getattr(cls, "automation_name") != "led_automation_base": available_led_automations[cls.automation_name] = cls diff --git a/pioreactor/background_jobs/temperature_automation.py b/pioreactor/background_jobs/temperature_automation.py index 0dbe987a..0488737b 100644 --- a/pioreactor/background_jobs/temperature_automation.py +++ b/pioreactor/background_jobs/temperature_automation.py @@ -29,6 +29,7 @@ from pioreactor.utils.timing import RepeatedTimer from pioreactor.utils.timing import to_datetime from pioreactor.version import rpi_version_info +from pioreactor.automations.temperature import * class TemperatureAutomationJob(AutomationJob): diff --git a/update_scripts/upcoming/update.sh b/update_scripts/upcoming/update.sh index f7a0a33b..69d191f1 100644 --- a/update_scripts/upcoming/update.sh +++ b/update_scripts/upcoming/update.sh @@ -14,10 +14,9 @@ HOSTNAME=$(hostname) LEADER_HOSTNAME=$(crudini --get $PIO_DIR/config.ini cluster.topology leader_hostname) if [ "$HOSTNAME" = "$LEADER_HOSTNAME" ]; then - sudo rm /var/www/pioreactorui/contrib/jobs/03_temperature_control.yaml - sudo rm /var/www/pioreactorui/contrib/jobs/04_dosing_control.yaml - sudo rm /var/www/pioreactorui/contrib/jobs/05_led_control.yaml - - sudo rm /var/www/pioreactorui/contrib/charts/06_temperature.yaml + sudo rm /var/www/pioreactorui/contrib/jobs/03_temperature_control.yaml || : + sudo rm /var/www/pioreactorui/contrib/jobs/04_dosing_control.yaml || : + sudo rm /var/www/pioreactorui/contrib/jobs/06_led_control.yaml || : + sudo rm /var/www/pioreactorui/contrib/charts/06_temperature.yaml || : fi