From 92ffb11247c77de94de41234dc5e12e5da26b5c0 Mon Sep 17 00:00:00 2001 From: Nils Date: Tue, 30 Jul 2024 14:09:36 -0400 Subject: [PATCH] HyperNav Analysis Tab enable through GitHub Workflow - Improve error if aquasense package is missing --- inlinino/instruments/hydroscat.py | 11 +++++++---- make.py | 14 ++++++++++++-- 2 files changed, 19 insertions(+), 6 deletions(-) diff --git a/inlinino/instruments/hydroscat.py b/inlinino/instruments/hydroscat.py index feb8cf5..edf29fc 100644 --- a/inlinino/instruments/hydroscat.py +++ b/inlinino/instruments/hydroscat.py @@ -4,9 +4,9 @@ from inlinino.log import Log try: - import aquasense.hydroscat + from aquasense.hydroscat import HydroScat as ASHydroScat except ImportError: - pass + ASHydroScat = None from datetime import datetime @@ -35,7 +35,7 @@ def __init__(self, uuid, cfg, *args, **kwargs): self._io = io.TextIOWrapper(io.BufferedRWPair(self._interface._serial, self._interface._serial)) # Instrument state machine - self.hydroscat: aquasense.hydroscat.HydroScat = None + self.hydroscat: ASHydroScat = None self.output_cal_header = None self.state = "IDLE" self.previous_state = None @@ -85,7 +85,10 @@ def setup(self, cfg): if errmsgs: raise ValueError('\n'.join(errmsgs)) - self.hydroscat = aquasense.hydroscat.HydroScat( + if ASHydroScat is None: + raise ImportError("Package `aquasense` required.") + + self.hydroscat = ASHydroScat( cal_path=cfg["calibration_file"], in_out=self._io, out=None, sep=",", serial_mode=False, burst_mode=cfg["burst_mode"], diff --git a/make.py b/make.py index 5392b86..e98dbed 100644 --- a/make.py +++ b/make.py @@ -3,6 +3,10 @@ import PyInstaller.__main__ import pyqtgraph +try: + import hypernav +except ImportError: + hypernav = None root = os.path.join('.', 'bundle') @@ -47,6 +51,12 @@ (os.path.join(os.path.dirname(pyqtgraph.__file__), 'icons', '*.png'), os.path.join('pyqtgraph', 'icons')), (os.path.join(os.path.dirname(pyqtgraph.__file__), 'icons', '*.svg'), os.path.join('pyqtgraph', 'icons')), ] +if hypernav is not None: + ls.extend([ + (os.path.join(os.path.dirname(hypernav.__file__), 'bin', '*.exe'), os.path.join('hypernav', 'bin')), + (os.path.join(os.path.dirname(hypernav.__file__), 'calibrate', 'templates', '*.txt'), + os.path.join('hypernav', 'calibrate', 'templates')) + ]) for item, dest in ls: add_data.append(f'--add-data={os.path.abspath(item)}{data_sep}{dest}') # Require absolute path for GitHub workflow as data can be on different drive and relpath won't work. @@ -67,11 +77,11 @@ f'--distpath={os.path.join(root, "dist")}', f'--workpath={os.path.join(root, "build")}', f'--specpath={root}', - # '--windowed', + '--windowed', '--noconfirm', # '--log-level=DEBUG', # '--clean', - '--debug=imports', + # '--debug=imports', *add_data, *hidden_imports, *os_specific_args,