Mercurial > repos > rv43 > tomo
annotate detector.py @ 54:71aea0636efe draft
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit fa567bea296594c621d4ffc87b166051eb6b58fe"
| author | rv43 | 
|---|---|
| date | Thu, 28 Jul 2022 17:38:11 +0000 | 
| parents | 26f99fdd8d61 | 
| children | 98a83f03d91b | 
| rev | line source | 
|---|---|
| 49 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 1 import logging | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 2 import os | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 3 import yaml | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 4 from functools import cache | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 5 from copy import deepcopy | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 6 | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 7 #from .general import * | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 8 from general import illegal_value, is_int, is_num, input_yesno | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 9 | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 10 #from hexrd.instrument import HEDMInstrument, PlanarDetector | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 11 | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 12 class DetectorConfig: | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 13 def __init__(self, config_source): | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 14 self._config_source = config_source | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 15 | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 16 if isinstance(self._config_source, str): | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 17 self._config_file = self._config_source | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 18 self._config = self._load_config_file() | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 19 elif isinstance(self._config_source, dict): | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 20 self._config_file = None | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 21 self._config = self._config_source | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 22 else: | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 23 self._config_file = None | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 24 self._config = False | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 25 | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 26 self._valid = self._validate() | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 27 | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 28 if not self.valid: | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 29 logging.error(f'Cannot create a valid instance of {self.__class__.__name__} '+ | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 30 f'from {self._config_source}') | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 31 | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 32 def __repr__(self): | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 33 return(f'{self.__class__.__name__}({self._config_source.__repr__()})') | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 34 def __str__(self): | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 35 return(f'{self.__class__.__name__} generated from {self._config_source}') | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 36 | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 37 @property | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 38 def config_file(self): | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 39 return(self._config_file) | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 40 | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 41 @property | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 42 def config(self): | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 43 return(deepcopy(self._config)) | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 44 | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 45 @property | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 46 def valid(self): | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 47 return(self._valid) | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 48 | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 49 def load_config_file(self): | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 50 raise(NotImplementedError) | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 51 | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 52 def validate(self): | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 53 raise(NotImplementedError) | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 54 | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 55 def _load_config_file(self): | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 56 return(self.load_config_file()) | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 57 | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 58 def _validate(self): | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 59 if not self.config: | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 60 logging.error('A configuration must be loaded prior to calling Detector._validate') | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 61 return(False) | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 62 else: | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 63 return(self.validate()) | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 64 | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 65 def _write_to_file(self, out_file): | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 66 out_file = os.path.abspath(out_file) | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 67 | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 68 current_config_valid = self.validate() | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 69 if not current_config_valid: | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 70 write_invalid_config = input_yesno(s=f'This {self.__class__.__name__} is currently '+ | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 71 f'invalid. Write the configuration to {out_file} anyways?', default='no') | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 72 if not write_invalid_config: | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 73 logging.info('In accordance with user input, the invalid configuration will '+ | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 74 f'not be written to {out_file}') | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 75 return | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 76 | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 77 if os.access(out_file, os.W_OK): | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 78 if os.path.exists(out_file): | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 79 overwrite = input_yesno(s=f'{out_file} already exists. Overwrite?', default='no') | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 80 if overwrite: | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 81 self.write_to_file(out_file) | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 82 else: | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 83 logging.info(f'In accordance with user input, {out_file} will not be '+ | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 84 'overwritten') | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 85 else: | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 86 self.write_to_file(out_file) | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 87 else: | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 88 logging.error(f'Insufficient permissions to write to {out_file}') | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 89 | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 90 def write_to_file(self, out_file): | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 91 raise(NotImplementedError) | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 92 | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 93 class YamlDetectorConfig(DetectorConfig): | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 94 def __init__(self, config_source, validate_yaml_pars=[]): | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 95 self._validate_yaml_pars = validate_yaml_pars | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 96 super().__init__(config_source) | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 97 | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 98 def load_config_file(self): | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 99 if not os.path.splitext(self._config_file)[1]: | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 100 if os.path.isfile(f'{self._config_file}.yml'): | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 101 self._config_file = f'{self._config_file}.yml' | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 102 if os.path.isfile(f'{self._config_file}.yaml'): | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 103 self._config_file = f'{self._config_file}.yaml' | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 104 if not os.path.isfile(self._config_file): | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 105 logging.error(f'Unable to load {self._config_file}') | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 106 return(False) | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 107 with open(self._config_file, 'r') as infile: | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 108 config = yaml.safe_load(infile) | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 109 if isinstance(config, dict): | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 110 return(config) | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 111 else: | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 112 logging.error(f'Unable to load {self._config_file} as a dictionary') | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 113 return(False) | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 114 | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 115 def validate(self): | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 116 if not self._validate_yaml_pars: | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 117 logging.warning('There are no required parameters provided for this detector '+ | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 118 'configuration') | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 119 return(True) | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 120 | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 121 def validate_nested_pars(config, validate_yaml_par): | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 122 yaml_par_levels = validate_yaml_par.split(':') | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 123 first_level_par = yaml_par_levels[0] | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 124 try: | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 125 first_level_par = int(first_level_par) | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 126 except: | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 127 pass | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 128 try: | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 129 next_level_config = config[first_level_par] | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 130 if len(yaml_par_levels) > 1: | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 131 next_level_pars = ':'.join(yaml_par_levels[1:]) | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 132 return(validate_nested_pars(next_level_config, next_level_pars)) | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 133 else: | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 134 return(True) | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 135 except: | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 136 return(False) | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 137 | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 138 pars_missing = [p for p in self._validate_yaml_pars | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 139 if not validate_nested_pars(self.config, p)] | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 140 if len(pars_missing) > 0: | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 141 logging.error(f'Missing item(s) in configuration: {", ".join(pars_missing)}') | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 142 return(False) | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 143 else: | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 144 return(True) | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 145 | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 146 def write_to_file(self, out_file): | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 147 with open(out_file, 'w') as outf: | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 148 yaml.dump(self.config, outf) | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 149 | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 150 | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 151 class TomoDetectorConfig(YamlDetectorConfig): | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 152 def __init__(self, config_source): | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 153 validate_yaml_pars = ['detector', | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 154 'lens_magnification', | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 155 'detector:pixels:rows', | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 156 'detector:pixels:columns', | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 157 *[f'detector:pixels:size:{i}' for i in range(2)]] | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 158 super().__init__(config_source, validate_yaml_pars=validate_yaml_pars) | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 159 | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 160 @property | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 161 @cache | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 162 def lens_magnification(self): | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 163 lens_magnification = self.config.get('lens_magnification') | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 164 if not isinstance(lens_magnification, (int, float)) or lens_magnification <= 0.: | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 165 illegal_value(lens_magnification, 'lens_magnification', 'detector file') | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 166 logging.warning('Using default lens_magnification value of 1.0') | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 167 return(1.0) | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 168 else: | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 169 return(lens_magnification) | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 170 | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 171 @property | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 172 @cache | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 173 def pixel_size(self): | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 174 pixel_size = self.config['detector'].get('pixels').get('size') | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 175 if isinstance(pixel_size, (int, float)): | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 176 if pixel_size <= 0.: | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 177 illegal_value(pixel_size, 'pixel_size', 'detector file') | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 178 return(None) | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 179 pixel_size /= self.lens_magnification | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 180 elif isinstance(pixel_size, list): | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 181 if ((len(pixel_size) > 2) or | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 182 (len(pixel_size) == 2 and pixel_size[0] != pixel_size[1])): | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 183 illegal_value(pixel_size, 'pixel size', 'detector file') | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 184 return(None) | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 185 elif not is_num(pixel_size[0], 0.): | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 186 illegal_value(pixel_size, 'pixel size', 'detector file') | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 187 return(None) | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 188 else: | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 189 pixel_size = pixel_size[0]/self.lens_magnification | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 190 else: | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 191 illegal_value(pixel_size, 'pixel size', 'detector file') | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 192 return(None) | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 193 | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 194 return(pixel_size) | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 195 | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 196 @property | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 197 @cache | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 198 def dimensions(self): | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 199 pixels = self.config['detector'].get('pixels') | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 200 num_rows = pixels.get('rows') | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 201 if not is_int(num_rows, 1): | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 202 illegal_value(num_rows, 'rows', 'detector file') | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 203 return(None) | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 204 num_columns = pixels.get('columns') | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 205 if not is_int(num_columns, 1): | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 206 illegal_value(num_columns, 'columns', 'detector file') | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 207 return(None) | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 208 return(num_rows, num_columns) | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 209 | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 210 | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 211 class EDDDetectorConfig(YamlDetectorConfig): | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 212 def __init__(self, config_source): | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 213 validate_yaml_pars = ['num_bins', | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 214 'max_E', | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 215 # 'angle', # KLS leave this out for now -- I think it has to do with the relative geometry of sample, beam, and detector (not a property of the detector on its own), so may not belong here in the DetectorConfig object? | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 216 'tth_angle', | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 217 'slope', | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 218 'intercept'] | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 219 super().__init__(config_source, validate_yaml_pars=validate_yaml_pars) | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 220 | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 221 @property | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 222 @cache | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 223 def num_bins(self): | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 224 try: | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 225 num_bins = int(self.config['num_bins']) | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 226 if num_bins <= 0: | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 227 raise(ValueError) | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 228 else: | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 229 return(num_bins) | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 230 except: | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 231 illegal_value(self.config['num_bins'], 'num_bins') | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 232 @property | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 233 @cache | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 234 def max_E(self): | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 235 try: | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 236 max_E = float(self.config['max_E']) | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 237 if max_E <= 0: | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 238 raise(ValueError) | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 239 else: | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 240 return(max_E) | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 241 except: | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 242 illegal_value(self.config['max_E'], 'max_E') | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 243 return(None) | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 244 | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 245 @property | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 246 def bin_energies(self): | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 247 return(self.slope * np.linspace(0, self.max_E, self.num_bins, endpoint=False) + | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 248 self.intercept) | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 249 | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 250 @property | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 251 def tth_angle(self): | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 252 try: | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 253 return(float(self.config['tth_angle'])) | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 254 except: | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 255 illegal_value(tth_angle, 'tth_angle') | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 256 return(None) | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 257 @tth_angle.setter | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 258 def tth_angle(self, value): | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 259 try: | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 260 self._config['tth_angle'] = float(value) | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 261 except: | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 262 illegal_value(value, 'tth_angle') | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 263 | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 264 @property | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 265 def slope(self): | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 266 try: | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 267 return(float(self.config['slope'])) | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 268 except: | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 269 illegal_value(slope, 'slope') | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 270 return(None) | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 271 @slope.setter | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 272 def slope(self, value): | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 273 try: | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 274 self._config['slope'] = float(value) | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 275 except: | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 276 illegal_value(value, 'slope') | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 277 | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 278 @property | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 279 def intercept(self): | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 280 try: | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 281 return(float(self.config['intercept'])) | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 282 except: | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 283 illegal_value(intercept, 'intercept') | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 284 return(None) | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 285 @intercept.setter | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 286 def intercept(self, value): | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 287 try: | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 288 self._config['intercept'] = float(value) | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 289 except: | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 290 illegal_value(value, 'intercept') | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 291 | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 292 | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 293 # class HexrdDetectorConfig(YamlDetectorConfig): | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 294 # def __init__(self, config_source, detector_names=[]): | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 295 # self.detector_names = detector_names | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 296 # validate_yaml_pars_each_detector = [*[f'buffer:{i}' for i in range(2)], | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 297 # 'distortion:function_name', | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 298 # *[f'distortion:parameters:{i}' for i in range(6)], | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 299 # 'pixels:columns', | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 300 # 'pixels:rows', | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 301 # *['pixels:size:%i' % i for i in range(2)], | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 302 # 'saturation_level', | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 303 # *[f'transform:tilt:{i}' for i in range(3)], | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 304 # *[f'transform:translation:{i}' for i in range(3)]] | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 305 # validate_yaml_pars = [] | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 306 # for detector_name in self.detector_names: | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 307 # validate_yaml_pars += [f'detectors:{detector_name}:{par}' for par in validate_yaml_pars_each_detector] | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 308 | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 309 # super().__init__(config_source, validate_yaml_pars=validate_yaml_pars) | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 310 | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 311 # def validate(self): | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 312 # yaml_valid = YamlDetectorConfig.validate(self) | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 313 # if not yaml_valid: | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 314 # return(False) | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 315 # else: | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 316 # hedm_instrument = HEDMInstrument(instrument_config=self.config) | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 317 # for detector_name in self.detector_names: | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 318 # if detector_name in hedm_instrument.detectors: | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 319 # if isinstance(hedm_instrument.detectors[detector_name], PlanarDetector): | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 320 # continue | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 321 # else: | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 322 # return(False) | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 323 # else: | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 324 # return(False) | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 325 # return(True) | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 326 | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 327 # class SAXSWAXSDetectorConfig(DetectorConfig): | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 328 # def __init__(self, config_source): | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 329 # super().__init__(config_source) | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 330 | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 331 # @property | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 332 # def ai(self): | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 333 # return(self.config) | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 334 # @ai.setter | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 335 # def ai(self, value): | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 336 # if isinstance(value, pyFAI.azimuthalIntegrator.AzimuthalIntegrator): | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 337 # self.config = ai | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 338 # else: | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 339 # illegal_value(value, 'azimuthal integrator') | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 340 | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 341 # # pyFAI will perform its own error-checking for the mask attribute. | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 342 # mask = property(self.ai.get_mask, self.ai,set_mask) | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 343 | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 344 | 
| 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 rv43 parents: diff
changeset | 345 | 
