From 5fc46cb6e5c7e49eca3b676a97f4bb696c8a2234 Mon Sep 17 00:00:00 2001 From: Sven Augustin Date: Sun, 10 May 2020 12:54:50 +0000 Subject: [PATCH] use DAQTask in Acquisitions, moved Acquisition.can_create_all_filenames() to utils.path --- slic/core/acquisition/acquisition.py | 4 ++-- slic/core/acquisition/diaacquisition.py | 15 +++++---------- slic/utils/__init__.py | 2 +- slic/utils/path.py | 7 +++++++ 4 files changed, 15 insertions(+), 13 deletions(-) diff --git a/slic/core/acquisition/acquisition.py b/slic/core/acquisition/acquisition.py index 8a5b705ef..d46187faf 100644 --- a/slic/core/acquisition/acquisition.py +++ b/slic/core/acquisition/acquisition.py @@ -3,7 +3,7 @@ from abc import abstractmethod from slic.utils.channels import Channels from slic.utils import can_create_file, typename -from slic.core.task import Task +from slic.core.task import DAQTask from .baseacquisition import BaseAcquisition from .sfpaths import SwissFELPaths @@ -42,7 +42,7 @@ class Acquisition(BaseAcquisition): channels = self.default_channels acq = lambda: self._acquire(filename, channels, **kwargs) - return Task(acq, hold=False) + return DAQTask(acq, filename=filename, hold=False) @abstractmethod diff --git a/slic/core/acquisition/diaacquisition.py b/slic/core/acquisition/diaacquisition.py index 033735ea5..43b1afae5 100644 --- a/slic/core/acquisition/diaacquisition.py +++ b/slic/core/acquisition/diaacquisition.py @@ -3,8 +3,8 @@ from time import sleep from detector_integration_api import DetectorIntegrationClient from slic.utils.channels import Channels -from slic.utils import can_create_file -from slic.core.task import Task +from slic.utils import can_create_all_files +from slic.core.task import DAQTask from .baseacquisition import BaseAcquisition from .diaconfig import DIAConfig, EXPTIME @@ -42,7 +42,8 @@ class DIAAcquisition(BaseAcquisition): if filename: if use_default_dir: filename = os.path.join(self.default_dir, filename) - if not self.can_create_all_files(filename): + filenames = self.make_all_filenames(filename) + if not can_create_all_files(filenames): return else: filename = "/dev/null" @@ -65,15 +66,9 @@ class DIAAcquisition(BaseAcquisition): self.wait_until_finished() self.client.reset() - return Task(_acquire, stopper=self.client.stop, hold=False) + return DAQTask(_acquire, stopper=self.client.stop, filenames=filenames, hold=False) - def can_create_all_files(self, base): - for fn in self.make_all_filenames(base): - if not can_create_file(fn): - return False - return True - def make_all_filenames(self, base): res = [] for client in self.active_clients: diff --git a/slic/utils/__init__.py b/slic/utils/__init__.py index 3f1ee03d7..8ba17f6f4 100644 --- a/slic/utils/__init__.py +++ b/slic/utils/__init__.py @@ -6,7 +6,7 @@ from .elog import Elog from .ipy import devices from .json import json_save, json_load from .npy import fraction_to_percentage, within, within_fraction, get_dtype, get_shape, is_array -from .path import can_create_file, glob_files, make_missing_dir +from .path import can_create_all_files, can_create_file, glob_files, make_missing_dir from .pv import PV from .screenshot import Screenshot diff --git a/slic/utils/path.py b/slic/utils/path.py index 14b84ba20..65fea5d0a 100644 --- a/slic/utils/path.py +++ b/slic/utils/path.py @@ -4,6 +4,13 @@ from pathlib import Path from .ask_yes_no import ask_yes_No +def can_create_all_files(filenames): + for fn in filenames: + if not can_create_file(fn): + return False + return True + + def can_create_file(filename): if not os.path.isfile(filename): return True