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