tomwer 1.4.0rc1__py3-none-any.whl → 1.4.0rc3__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -18,6 +18,7 @@ from tomoscan.esrf.identifier.hdf5Identifier import (
18
18
  )
19
19
  from tomoscan.esrf.identifier.url_utils import UrlSettings, split_path, split_query
20
20
  from tomoscan.esrf.scan.nxtomoscan import NXtomoScan as _tsNXtomoScan
21
+ from tomoscan.utils.io import filter_esrf_mounting_points
21
22
  from nxtomo.nxobject.nxdetector import ImageKey
22
23
  from nxtomo.paths.nxtomo import get_paths as _get_nexus_paths
23
24
 
@@ -487,6 +488,7 @@ class NXtomoScan(_tsNXtomoScan, TomwerScanBase):
487
488
  bliss_raw_data_files[0] if len(bliss_raw_data_files) > 0 else None
488
489
  )
489
490
  if bliss_raw_data_file is not None:
491
+ bliss_raw_data_file = filter_esrf_mounting_points(bliss_raw_data_file)
490
492
  strips = bliss_raw_data_file.lstrip("/").split("/")
491
493
  if len(strips) > 2 and bliss_raw_data_file.startswith(
492
494
  ("/data/visitor", "/data/visitor")
@@ -180,6 +180,10 @@ class CalculationWidget(qt.QWidget):
180
180
  return axis_mode.AxisMode.from_value(self._qcbPosition.currentText())
181
181
 
182
182
  def setMode(self, mode: axis_mode.AxisMode):
183
+ if mode == self.getMode():
184
+ # when set mode the estimated cor might changed.
185
+ # that we want to avoid.
186
+ return
183
187
  with block_signals(self._qcbPosition):
184
188
  index = self._qcbPosition.findText(mode.value)
185
189
  if index >= 0:
@@ -124,9 +124,8 @@ class EstimatedCORWidget(qt.QGroupBox):
124
124
 
125
125
  """
126
126
  mode = axis_mode.AxisMode.from_value(mode)
127
- self._estimatedCORQCB.setSidesVisible(
128
- axis_mode.AXIS_MODE_METADATAS[mode].valid_sides
129
- )
127
+ valid_sides = axis_mode.AXIS_MODE_METADATAS[mode].valid_sides
128
+ self._estimatedCORQCB.setSidesVisible(valid_sides)
130
129
  first_guess_available = axis_mode.AXIS_MODE_METADATAS[
131
130
  mode
132
131
  ].allows_estimated_cor_as_numerical_value
@@ -135,9 +134,10 @@ class EstimatedCORWidget(qt.QGroupBox):
135
134
  if first_guess_available:
136
135
  # if the first guess is valid, when the sides visibility is modify we want to activate it.
137
136
  self._estimatedCORQCB.selectFirstGuess()
138
- elif not isinstance(self._estimatedCORQCB.getCurrentCorValue(), Side):
139
- # else if the current side cannot be re-used, pick the next one available
140
- if axis_mode.AXIS_MODE_METADATAS[mode].valid_sides:
137
+ elif valid_sides:
138
+ # Proceed only if there are valid sides
139
+ current_side = self._estimatedCORQCB.getCurrentCorValue()
140
+ if not isinstance(current_side, Side) or current_side not in valid_sides:
141
141
  with block_signals(self._estimatedCORQCB):
142
142
  cor_guess = self._estimatedCORQCB.getCurrentCorValue()
143
143
  if cor_guess is not None and self._imageWidth is not None:
@@ -150,18 +150,29 @@ class EstimatedCORWidget(qt.QGroupBox):
150
150
  2 * self._imageWidth / 3 - self._imageWidth / 2
151
151
  )
152
152
 
153
- if left_boundary <= cor_guess < middle_left_boundary:
153
+ if (
154
+ Side.LEFT in valid_sides
155
+ and left_boundary <= cor_guess < middle_left_boundary
156
+ ):
154
157
  new_side = Side.LEFT
155
- elif middle_left_boundary <= cor_guess < middle_right_boundary:
158
+ elif (
159
+ Side.CENTER in valid_sides
160
+ and middle_left_boundary
161
+ <= cor_guess
162
+ < middle_right_boundary
163
+ ):
156
164
  new_side = Side.CENTER
157
- elif middle_right_boundary <= cor_guess <= right_boundary:
165
+ elif (
166
+ Side.RIGHT in valid_sides
167
+ and middle_right_boundary <= cor_guess <= right_boundary
168
+ ):
158
169
  new_side = Side.RIGHT
159
170
  else:
160
- new_side = axis_mode.AXIS_MODE_METADATAS[mode].valid_sides[
161
- 0
162
- ] # Handle out-of-bound cases if needed
171
+ # Fallback to the first available valid side
172
+ new_side = valid_sides[0]
163
173
  else:
164
- new_side = axis_mode.AXIS_MODE_METADATAS[mode].valid_sides[0]
174
+ # If no guess or boundaries are available, fallback to the first valid side
175
+ new_side = valid_sides[0]
165
176
  self._estimatedCORQCB.setCurrentCorValue(new_side)
166
177
  self._axis_params.estimated_cor = new_side
167
178
 
tomwer/version.py CHANGED
@@ -79,7 +79,7 @@ MAJOR = 1
79
79
  MINOR = 4
80
80
  MICRO = 0
81
81
  RELEV = "rc" # <16
82
- SERIAL = 1 # <16
82
+ SERIAL = 3 # <16
83
83
 
84
84
  date = __date__
85
85
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: tomwer
3
- Version: 1.4.0rc1
3
+ Version: 1.4.0rc3
4
4
  Summary: "tomography workflow tools"
5
5
  Home-page: https://gitlab.esrf.fr/tomotools/tomwer
6
6
  Author: Henri Payno, Pierre Paleo, Pierre-Olivier Autran, Jérôme Lesaint, Alessandro Mirone
@@ -18,7 +18,6 @@ orangecontrib/tomwer/tutorials/simple_slice_reconstruction.ows,sha256=O9Bnunjh0Q
18
18
  orangecontrib/tomwer/tutorials/simple_slice_reconstruction_on_slurm.ows,sha256=t-fwTMCvqQV17AIZWM0lSCmjC6loLEHNZSFmAADF9xY,6584
19
19
  orangecontrib/tomwer/tutorials/simple_volume_local_reconstruction.ows,sha256=BBxkMX98PjDZsgxiVz4i-xPFw4WMdzif2YPnRQfONP4,5945
20
20
  orangecontrib/tomwer/tutorials/simple_volume_to_slurm_reconstruction.ows,sha256=TxVvFAfuV-HCIq9k_J45w9VtHDhLfmsN6wWuTNVYnPI,9163
21
- orangecontrib/tomwer/tutorials/test_cor.ows,sha256=tlpNXVRRhGQR5yGMvWvVR5DqVyl1G3f8hSQ8u17hmLU,2464
22
21
  orangecontrib/tomwer/tutorials/using_saaxis_to_find_cor.ows,sha256=TUZNkXEsQyj7Qra1GEb4IhGFDWv3uJzqXbp3P04jwbs,5192
23
22
  orangecontrib/tomwer/tutorials/volume_casting_on_slurm.ows,sha256=yKa6pvd4UB6XDDlj_o7T8Md6bI8aQJXMCUnxyecdXbc,7568
24
23
  orangecontrib/tomwer/tutorials/id16b/ID16b_full_volume.ows,sha256=eSxYxrZ-0WKsmDqXivsHxND7SR2dSwdgG6Wcjbr06Ew,1727
@@ -220,7 +219,7 @@ orangecontrib/tomwer/widgets/visualization/tests/__init__.py,sha256=47DEQpj8HBSa
220
219
  tomwer/__init__.py,sha256=GeLSeY4__z-HQZu1y4ptZ5Y1OeXFvG8kuEwWXhkeaMA,360
221
220
  tomwer/__main__.py,sha256=7tCADiS4u7k1PCxFhlRAcYSIOpxQTGUTx8sCEQ-hi1E,8707
222
221
  tomwer/utils.py,sha256=7h7dEgKAEUmQ43jkULvC1B9Adl55nkCty-SEKUKCl4U,7008
223
- tomwer/version.py,sha256=j1oNp7eNg5mwm_5Q77iTFsL3OJijPmUGXya-gpg8TlM,4383
222
+ tomwer/version.py,sha256=UuEkt01Y05Kcy01F62oh2NLZE9fErohrIU8VDCRcm78,4383
224
223
  tomwer/app/__init__.py,sha256=RYMB2YhbQaoMXC8W-oOyfZ_Y1vmHD7L13YkKeAMuShM,85
225
224
  tomwer/app/axis.py,sha256=BJNuwMOjw1vS2w-9sKxltIgWMEWAPetnK2sAOFmXoZg,5880
226
225
  tomwer/app/canvas.py,sha256=sM368nniUwbQXLA-oNCg1iNwMMol_ZGTKbiw8WsC4yw,1539
@@ -406,7 +405,7 @@ tomwer/core/scan/edfscan.py,sha256=hsFzpYyPIrvsLM61J9aDmpdVskMTFO94fNcF3HEG_iI,2
406
405
  tomwer/core/scan/futurescan.py,sha256=chXjteQ4_6cSyFBoCil-DeHkHGGzM-xb21xJRYLEfhI,213
407
406
  tomwer/core/scan/hdf5scan.py,sha256=rQ-WtbOIgNtnMxA2kC23fEAcJIJIKboAv7UQColkrBg,966
408
407
  tomwer/core/scan/helicalmetadata.py,sha256=JRBxqHkyTe5f3FDlbIeDfN31P6Ms48SqGiFRXHuZ8sw,472
409
- tomwer/core/scan/nxtomoscan.py,sha256=iw6RneKKXZ5u6whN_yghYMoR4fisvYMpJTVMoarxYIE,18768
408
+ tomwer/core/scan/nxtomoscan.py,sha256=H-qSuRiO8orBV5EJBkg5uhUDAJOG2oF1nj5o13MO1xw,18913
410
409
  tomwer/core/scan/scanbase.py,sha256=TMfoQHJgaWTNJfjXiOVYDLT58A03T-O-8MDOM6bwt3E,28514
411
410
  tomwer/core/scan/scanfactory.py,sha256=-bF0Ru9bn8bnGk4MKXhbt5Oli19qN1WvFPDMtqw81BA,9116
412
411
  tomwer/core/scan/scantype.py,sha256=pQjWuCy_014uK5cdb8pFAkE_EPHJvPdSo3NM8aWTo58,137
@@ -544,10 +543,10 @@ tomwer/gui/reconstruction/axis/AxisMainWindow.py,sha256=7w2LhdQ1pa8vU9U-XTA3ohGQ
544
543
  tomwer/gui/reconstruction/axis/AxisOptionsWidget.py,sha256=M47xflZ68KkTDg8tksFt8n7ZFVIr8tJxstlPyG4Odq0,12168
545
544
  tomwer/gui/reconstruction/axis/AxisSettingsWidget.py,sha256=7GpHteE2j9RUo-jUQoJdXJ-GnIi9VnY13Lveq3mvd1M,28120
546
545
  tomwer/gui/reconstruction/axis/AxisWidget.py,sha256=nkORZHLo8D3Sk8j-8QVr9l3Qse66s-Nv-tB6kCkSMTY,19794
547
- tomwer/gui/reconstruction/axis/CalculationWidget.py,sha256=F8z4V5xhoWVQ5sQPVwUv3fsTxIPu4vhlReBTgnnCG0g,8476
546
+ tomwer/gui/reconstruction/axis/CalculationWidget.py,sha256=OgEeOCml6p-vJwEpKZLIoHLXfIrU9X7nLWewPswN1jE,8628
548
547
  tomwer/gui/reconstruction/axis/CompareImages.py,sha256=jqzlMBU_tfIdR1yHuZa8Avt8Te0EPBkjI6R4TY6kIlw,11425
549
548
  tomwer/gui/reconstruction/axis/ControlWidget.py,sha256=DsBPFIEZCva-JPUFxORjkAnoYfgb5udfJ71W-fCwgRY,10686
550
- tomwer/gui/reconstruction/axis/EstimatedCORWidget.py,sha256=tcmedDyeJLl557ytCV5KS_RI6tMimYJmhN3QmWnsPAI,16666
549
+ tomwer/gui/reconstruction/axis/EstimatedCORWidget.py,sha256=dL9SCjPEZ7MQLGZP0gZARb-rxD8YYSl-gcFyuN14jwg,17081
551
550
  tomwer/gui/reconstruction/axis/EstimatedCorComboBox.py,sha256=Hq8o6X5-iVMqltGcpy2E5OpCP5nNV353Mepsf_R7zVY,4434
552
551
  tomwer/gui/reconstruction/axis/InputWidget.py,sha256=UhEWL3aJG56PfkI7DKw-sBd6hDsRJ2NnQ0XN0nBmM6g,13052
553
552
  tomwer/gui/reconstruction/axis/ManualFramesSelection.py,sha256=b7-OjYyLuMQxG19AuvUNdwhSV5ewwfC4s9Yn8-6yZLQ,6481
@@ -904,9 +903,9 @@ tomwer/tests/orangecontrib/tomwer/widgets/visualization/tests/test_volume_viewer
904
903
  tomwer/tests/test_ewoks/test_conversion.py,sha256=a8cEWbErXiFCAkaapi0jeEoRKYxcFQCoa-Jr_u77_OM,3656
905
904
  tomwer/tests/test_ewoks/test_single_node_execution.py,sha256=YBUHfiAnkciv_kjj7biC5fOs7c7ofNImM_azGMn4LZM,2813
906
905
  tomwer/tests/test_ewoks/test_workflows.py,sha256=L0vNnfGpI6Soy8b_w6OjTMhLzUSutMFhWjPOe6kZO-E,5081
907
- tomwer-1.4.0rc1.dist-info/LICENSE,sha256=62p1wL0n9WMTu8x2YDv0odYgTqeSvTd9mQ0v6Mq7lzE,1876
908
- tomwer-1.4.0rc1.dist-info/METADATA,sha256=3QcO1MU_iJulld_cCeDiJAK0U4NWTU7tFLBqcRDD4_k,13406
909
- tomwer-1.4.0rc1.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
910
- tomwer-1.4.0rc1.dist-info/entry_points.txt,sha256=py3ZUWvGnWGc5c7Yhw_uBTm8Fmew0BDw3aQZnWMBNZI,500
911
- tomwer-1.4.0rc1.dist-info/top_level.txt,sha256=Yz5zKh0FPiImtzHYcPuztG1AO8-6KEpUWgoChGbA0Ys,21
912
- tomwer-1.4.0rc1.dist-info/RECORD,,
906
+ tomwer-1.4.0rc3.dist-info/LICENSE,sha256=62p1wL0n9WMTu8x2YDv0odYgTqeSvTd9mQ0v6Mq7lzE,1876
907
+ tomwer-1.4.0rc3.dist-info/METADATA,sha256=3izJhmCSSMMMnTD2V-ixLN46I6rYAWSear15PeMWW3Q,13406
908
+ tomwer-1.4.0rc3.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
909
+ tomwer-1.4.0rc3.dist-info/entry_points.txt,sha256=py3ZUWvGnWGc5c7Yhw_uBTm8Fmew0BDw3aQZnWMBNZI,500
910
+ tomwer-1.4.0rc3.dist-info/top_level.txt,sha256=Yz5zKh0FPiImtzHYcPuztG1AO8-6KEpUWgoChGbA0Ys,21
911
+ tomwer-1.4.0rc3.dist-info/RECORD,,
@@ -1,19 +0,0 @@
1
- <?xml version='1.0' encoding='utf-8'?>
2
- <scheme version="2.0" title="" description="">
3
- <nodes>
4
- <node id="0" name="center of rotation finder" qualified_name="orangecontrib.tomwer.widgets.reconstruction.AxisOW.AxisOW" project_name="tomwer" version="" title="center of rotation finder" position="(375.0, 146.0)" />
5
- <node id="1" name="scan selector" qualified_name="orangecontrib.tomwer.widgets.control.DataSelectorOW.DataSelectorOW" project_name="tomwer" version="" title="scan selector" position="(150.0, 115.0)" />
6
- </nodes>
7
- <links>
8
- <link id="0" source_node_id="1" sink_node_id="0" source_channel="data" sink_channel="data" enabled="true" source_channel_id="data" sink_channel_id="data" />
9
- </links>
10
- <annotations />
11
- <thumbnail />
12
- <node_properties>
13
- <properties node_id="0" format="literal">{'_ewoks_default_inputs': {'data': None, 'axis_params': {'MODE': 'sino-coarse-to-fine', 'POSITION_VALUE': None, 'CALC_INPUT_TYPE': 'transmission_nopag', 'ANGLE_MODE': '0-180', 'SINOGRAM_LINE': 'middle', 'SINOGRAM_SUBSAMPLING': 10, 'AXIS_URL_1': '', 'AXIS_URL_2': '', 'LOOK_AT_STDMAX': False, 'NEAR_WX': 5, 'FINE_STEP_X': 0.1, 'SCALE_IMG2_TO_IMG1': False, 'NEAR_POSITION': 'right', 'PADDING_MODE': 'edge', 'FLIP_LR': True, 'COMPOSITE_OPTS': {'theta': 5, 'oversampling': 4, 'n_subsampling_y': 40, 'take_log': True, 'near_width': 40}, 'COR_OPTIONS': '', 'MOTOR_OFFSET': 0.0, 'X_ROTATION_AXIS_PIXEL_POSITION': 0.0}, 'gui': {'mode_is_lock': False, 'value_is_lock': False, 'auto_update_estimated_cor': True, 'y_axis_inverted': True}}, 'controlAreaVisible': True, 'savedWidgetGeometry': b'\x01\xd9\xd0\xcb\x00\x03\x00\x00\x00\x00\x017\x00\x00\x00\xe5\x00\x00\x06H\x00\x00\x03\xa6\x00\x00\x017\x00\x00\x01\n\x00\x00\x06H\x00\x00\x03\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x07\x80\x00\x00\x017\x00\x00\x01\n\x00\x00\x06H\x00\x00\x03\xa6', '__version__': 1}</properties>
14
- <properties node_id="1" format="literal">{'_scanIDs': ['hdf5:scan:/home/payno/Datasets/tomography/bamboo_hercules/bambou_hercules_0001/bambou_hercules_0001_0000.nx?path=/entry0000'], 'controlAreaVisible': True, 'savedWidgetGeometry': b'\x01\xd9\xd0\xcb\x00\x03\x00\x00\x00\x00\n\xa0\x00\x00\x01Z\x00\x00\x0b\xcb\x00\x00\x03\x06\x00\x00\n\xa0\x00\x00\x01Z\x00\x00\x0b\xcb\x00\x00\x03\x06\x00\x00\x00\x01\x00\x00\x00\x00\x07\x80\x00\x00\n\xa0\x00\x00\x01Z\x00\x00\x0b\xcb\x00\x00\x03\x06', '__version__': 1}</properties>
15
- </node_properties>
16
- <session_state>
17
- <window_groups />
18
- </session_state>
19
- </scheme>