tomwer 1.3.5__py3-none-any.whl → 1.3.6__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.
- tomwer/core/process/control/datalistener/datalistener.py +11 -11
- tomwer/core/process/reconstruction/axis/axis.py +3 -3
- tomwer/core/process/reconstruction/darkref/darkrefscopy.py +3 -2
- tomwer/core/process/reconstruction/nabu/nabucommon.py +3 -4
- tomwer/core/process/reconstruction/nabu/nabuslices.py +4 -4
- tomwer/core/process/reconstruction/nabu/nabuvolume.py +2 -5
- tomwer/core/process/task.py +3 -2
- tomwer/core/process/test/test_data_transfer.py +4 -3
- tomwer/core/scan/blissscan.py +3 -3
- tomwer/core/scan/nxtomoscan.py +2 -2
- tomwer/core/scan/scanbase.py +5 -6
- tomwer/gui/control/reducedarkflatselector.py +2 -2
- tomwer/gui/edit/dkrfpatch.py +4 -4
- tomwer/gui/edit/nxtomowarmer.py +3 -2
- tomwer/gui/imagefromfile.py +2 -2
- tomwer/io/utils/h5pyutils.py +3 -7
- tomwer/io/utils/utils.py +3 -3
- tomwer/version.py +1 -1
- {tomwer-1.3.5.dist-info → tomwer-1.3.6.dist-info}/METADATA +1 -1
- {tomwer-1.3.5.dist-info → tomwer-1.3.6.dist-info}/RECORD +26 -26
- /tomwer-1.3.5-py3.11-nspkg.pth → /tomwer-1.3.6-py3.11-nspkg.pth +0 -0
- {tomwer-1.3.5.dist-info → tomwer-1.3.6.dist-info}/LICENSE +0 -0
- {tomwer-1.3.5.dist-info → tomwer-1.3.6.dist-info}/WHEEL +0 -0
- {tomwer-1.3.5.dist-info → tomwer-1.3.6.dist-info}/entry_points.txt +0 -0
- {tomwer-1.3.5.dist-info → tomwer-1.3.6.dist-info}/namespace_packages.txt +0 -0
- {tomwer-1.3.5.dist-info → tomwer-1.3.6.dist-info}/top_level.txt +0 -0
@@ -37,7 +37,7 @@ import typing
|
|
37
37
|
from ewokscore.task import Task as EwoksTask
|
38
38
|
from nxtomomill import converter as nxtomomill_converter
|
39
39
|
from silx.io.utils import h5py_read_dataset
|
40
|
-
from
|
40
|
+
from silx.io.utils import open as open_hdf5
|
41
41
|
|
42
42
|
import tomwer.version
|
43
43
|
from tomwer.core import settings
|
@@ -229,7 +229,7 @@ class DataListener(BaseProcessInfo):
|
|
229
229
|
"""Return the list of scans dir for this bliss_file / entry"""
|
230
230
|
|
231
231
|
def get_scan_indexes():
|
232
|
-
with
|
232
|
+
with open_hdf5(bliss_file) as h5f:
|
233
233
|
entry_node = h5f[entry]
|
234
234
|
if _SCAN_NUMBER_PATH in entry_node:
|
235
235
|
return h5py_read_dataset(entry_node[_SCAN_NUMBER_PATH])
|
@@ -254,7 +254,7 @@ class DataListener(BaseProcessInfo):
|
|
254
254
|
"""Return the proposal file of the experimentation if registred by the
|
255
255
|
data listener"""
|
256
256
|
if entry is None:
|
257
|
-
with
|
257
|
+
with open_hdf5(process_file) as h5f:
|
258
258
|
entries = BaseProcessInfo._get_process_nodes(
|
259
259
|
root_node=h5f, process=DataListener
|
260
260
|
)
|
@@ -269,7 +269,7 @@ class DataListener(BaseProcessInfo):
|
|
269
269
|
entry = list(entries.keys())[0]
|
270
270
|
_logger.info("take %s as default entry" % entry)
|
271
271
|
|
272
|
-
with
|
272
|
+
with open_hdf5(process_file) as h5f:
|
273
273
|
dl_nodes = BaseProcessInfo._get_process_nodes(
|
274
274
|
root_node=h5f[entry], process=DataListener
|
275
275
|
)
|
@@ -311,7 +311,7 @@ class DataListener(BaseProcessInfo):
|
|
311
311
|
"""Return the proposal file of the experimentation if registred by the
|
312
312
|
data listener"""
|
313
313
|
if entry is None:
|
314
|
-
with
|
314
|
+
with open_hdf5(process_file) as h5f:
|
315
315
|
entries = BaseProcessInfo._get_process_nodes(
|
316
316
|
root_node=h5f, process=DataListener
|
317
317
|
)
|
@@ -326,7 +326,7 @@ class DataListener(BaseProcessInfo):
|
|
326
326
|
entry = list(entries.keys())[0]
|
327
327
|
_logger.info("take %s as default entry" % entry)
|
328
328
|
|
329
|
-
with
|
329
|
+
with open_hdf5(process_file) as h5f:
|
330
330
|
dl_nodes = BaseProcessInfo._get_process_nodes(
|
331
331
|
root_node=h5f[entry], process=DataListener
|
332
332
|
)
|
@@ -360,7 +360,7 @@ class DataListener(BaseProcessInfo):
|
|
360
360
|
"""Return the proposal file of the experimentation if registred by the
|
361
361
|
data listener"""
|
362
362
|
if entry is None:
|
363
|
-
with
|
363
|
+
with open_hdf5(process_file) as h5f:
|
364
364
|
entries = BaseProcessInfo._get_process_nodes(
|
365
365
|
root_node=h5f, process=DataListener
|
366
366
|
)
|
@@ -375,7 +375,7 @@ class DataListener(BaseProcessInfo):
|
|
375
375
|
entry = list(entries.keys())[0]
|
376
376
|
_logger.info("take %s as default entry" % entry)
|
377
377
|
|
378
|
-
with
|
378
|
+
with open_hdf5(process_file) as h5f:
|
379
379
|
dl_nodes = BaseProcessInfo._get_process_nodes(
|
380
380
|
root_node=h5f[entry], process=DataListener
|
381
381
|
)
|
@@ -410,7 +410,7 @@ class DataListener(BaseProcessInfo):
|
|
410
410
|
specific sequence data
|
411
411
|
"""
|
412
412
|
if entry is None:
|
413
|
-
with
|
413
|
+
with open_hdf5(process_file) as h5f:
|
414
414
|
entries = BaseProcessInfo._get_process_nodes(
|
415
415
|
root_node=h5f, process=DataListener
|
416
416
|
)
|
@@ -425,7 +425,7 @@ class DataListener(BaseProcessInfo):
|
|
425
425
|
entry = list(entries.keys())[0]
|
426
426
|
_logger.info("take %s as default entry" % entry)
|
427
427
|
|
428
|
-
with
|
428
|
+
with open_hdf5(process_file) as h5f:
|
429
429
|
dl_nodes = BaseProcessInfo._get_process_nodes(
|
430
430
|
root_node=h5f[entry], process=DataListener
|
431
431
|
)
|
@@ -503,7 +503,7 @@ class DataListener(BaseProcessInfo):
|
|
503
503
|
# write
|
504
504
|
def sequence_is_finished():
|
505
505
|
try:
|
506
|
-
with
|
506
|
+
with open_hdf5(bliss_file) as h5f:
|
507
507
|
end_scan_path = "/".join((entry, "end_time"))
|
508
508
|
return end_scan_path in h5f
|
509
509
|
except Exception:
|
@@ -76,7 +76,7 @@ else:
|
|
76
76
|
has_composite_cor_finder = True
|
77
77
|
from silx.io.url import DataUrl
|
78
78
|
from silx.io.utils import h5py_read_dataset
|
79
|
-
from
|
79
|
+
from silx.io.utils import open as open_hdf5
|
80
80
|
|
81
81
|
_logger = logging.getLogger(__name__)
|
82
82
|
if not has_composite_cor_finder:
|
@@ -1164,7 +1164,7 @@ class AxisTask(
|
|
1164
1164
|
:return:
|
1165
1165
|
"""
|
1166
1166
|
if entry is None:
|
1167
|
-
with
|
1167
|
+
with open_hdf5(process_file) as h5f:
|
1168
1168
|
entries = AxisTask._get_process_nodes(root_node=h5f, process=AxisTask)
|
1169
1169
|
if len(entries) == 0:
|
1170
1170
|
_logger.info("unable to find a Axis process in %s" % process_file)
|
@@ -1175,7 +1175,7 @@ class AxisTask(
|
|
1175
1175
|
entry = list(entries.keys())[0]
|
1176
1176
|
_logger.info("take %s as default entry" % entry)
|
1177
1177
|
|
1178
|
-
with
|
1178
|
+
with open_hdf5(process_file) as h5f:
|
1179
1179
|
axis_nodes = AxisTask._get_process_nodes(
|
1180
1180
|
root_node=h5f[entry], process=AxisTask
|
1181
1181
|
)
|
@@ -39,6 +39,7 @@ from typing import Union
|
|
39
39
|
|
40
40
|
from silx.io.dictdump import dicttoh5, h5todict
|
41
41
|
from silx.io.url import DataUrl
|
42
|
+
from silx.io.utils import open as open_hdf5
|
42
43
|
from tomoscan.esrf.scan.utils import (
|
43
44
|
copy_h5_dict_darks_to,
|
44
45
|
copy_h5_dict_flats_to,
|
@@ -297,7 +298,7 @@ class DarkRefsCopy(DarkRefsTask):
|
|
297
298
|
if not os.path.exists(self._save_file):
|
298
299
|
return False
|
299
300
|
else:
|
300
|
-
with
|
301
|
+
with open_hdf5(self._save_file) as h5f:
|
301
302
|
return self._flats_url.data_path() in h5f
|
302
303
|
|
303
304
|
def has_dark_stored(self) -> bool:
|
@@ -309,7 +310,7 @@ class DarkRefsCopy(DarkRefsTask):
|
|
309
310
|
if not os.path.exists(self._save_file):
|
310
311
|
return False
|
311
312
|
else:
|
312
|
-
with
|
313
|
+
with open_hdf5(self._save_file) as h5f:
|
313
314
|
return self._darks_url.data_path() in h5f
|
314
315
|
|
315
316
|
def contains_dark(self, scan: TomwerScanBase) -> bool:
|
@@ -43,9 +43,10 @@ import sys
|
|
43
43
|
|
44
44
|
import numpy
|
45
45
|
from silx.io.url import DataUrl
|
46
|
+
from silx.io.utils import open as open_hdf5
|
46
47
|
from sluurp.executor import submit as submit_to_slurm_cluster
|
47
48
|
from sluurp.job import SBatchScriptJob
|
48
|
-
from tomoscan.io import HDF5File
|
49
|
+
from tomoscan.io import HDF5File
|
49
50
|
from tomoscan.normalization import Method as INormMethod
|
50
51
|
from tomoscan.identifier import VolumeIdentifier
|
51
52
|
|
@@ -581,9 +582,7 @@ class _NabuBaseReconstructor:
|
|
581
582
|
# if an url exists insure we can access it
|
582
583
|
dataset_url = DataUrl(path=dataset_url)
|
583
584
|
if os.path.exists(dataset_url.file_path()):
|
584
|
-
with
|
585
|
-
dataset_url.file_path(), mode="r", swmr=get_swmr_mode()
|
586
|
-
) as h5f:
|
585
|
+
with open_hdf5(dataset_url.file_path()) as h5f:
|
587
586
|
if dataset_url.data_path() not in h5f:
|
588
587
|
dataset_url = None
|
589
588
|
else:
|
@@ -35,6 +35,7 @@ import os
|
|
35
35
|
import gc
|
36
36
|
from tomwer.io.utils import format_stderr_stdout
|
37
37
|
from silx.utils.deprecation import deprecated, deprecated_warning
|
38
|
+
from silx.io.utils import open as open_hdf5
|
38
39
|
|
39
40
|
from processview.core.manager.manager import ProcessManager, DatasetState
|
40
41
|
|
@@ -84,7 +85,6 @@ from processview.core.superviseprocess import SuperviseProcess
|
|
84
85
|
from silx.io.dictdump import h5todict
|
85
86
|
from silx.io.utils import h5py_read_dataset
|
86
87
|
from silx.utils.enum import Enum as _Enum
|
87
|
-
from tomoscan.io import HDF5File, get_swmr_mode
|
88
88
|
|
89
89
|
from tomwer.core.process.task import Task
|
90
90
|
from tomwer.core.scan.edfscan import EDFTomoScan
|
@@ -494,7 +494,7 @@ class NabuSlicesTask(
|
|
494
494
|
:rtype:dict
|
495
495
|
"""
|
496
496
|
if entry is None:
|
497
|
-
with
|
497
|
+
with open_hdf5(process_file) as h5f:
|
498
498
|
entries = NabuSlicesTask._get_process_nodes(
|
499
499
|
root_node=h5f, process=NabuSlicesTask
|
500
500
|
)
|
@@ -510,7 +510,7 @@ class NabuSlicesTask(
|
|
510
510
|
configuration_path = None
|
511
511
|
res = {}
|
512
512
|
|
513
|
-
with
|
513
|
+
with open_hdf5(process_file) as h5f:
|
514
514
|
nabu_nodes = NabuSlicesTask._get_process_nodes(
|
515
515
|
root_node=h5f[entry], process=NabuSlicesTask
|
516
516
|
)
|
@@ -845,7 +845,7 @@ class SingleSliceRunner(_NabuBaseReconstructor):
|
|
845
845
|
basename, _ = os.path.splitext(scan.master_file)
|
846
846
|
basename = os.path.basename(basename)
|
847
847
|
try:
|
848
|
-
with
|
848
|
+
with open_hdf5(scan.master_file) as h5f:
|
849
849
|
if len(h5f.keys()) > 1:
|
850
850
|
# if there is more than one entry in the file append the entry name to the file basename
|
851
851
|
basename = "_".join((basename, scan.entry.lstrip("/")))
|
@@ -43,10 +43,9 @@ from processview.core.manager.manager import ProcessManager, DatasetState
|
|
43
43
|
from processview.core.superviseprocess import SuperviseProcess
|
44
44
|
|
45
45
|
from silx.io.utils import h5py_read_dataset
|
46
|
+
from silx.io.utils import open as open_hdf5
|
46
47
|
from tomwer.core.utils.deprecation import deprecated_warning
|
47
48
|
|
48
|
-
from tomoscan.io import HDF5File, get_swmr_mode
|
49
|
-
|
50
49
|
from tomwer.core.cluster.cluster import SlurmClusterConfiguration
|
51
50
|
from tomwer.core.futureobject import FutureTomwerObject
|
52
51
|
from tomwer.core.process.reconstruction.nabu.plane import NabuPlane
|
@@ -354,9 +353,7 @@ class VolumeRunner(_NabuBaseReconstructor):
|
|
354
353
|
basename = os.path.basename(basename)
|
355
354
|
try:
|
356
355
|
# if there is more than one entry in the file append the entry name to the file basename
|
357
|
-
with
|
358
|
-
self.scan.master_file, mode="r", swmr=get_swmr_mode()
|
359
|
-
) as h5f:
|
356
|
+
with open_hdf5(self.scan.master_file) as h5f:
|
360
357
|
if len(h5f.keys()) > 1:
|
361
358
|
basename = "_".join((basename, self.scan.entry.strip("/")))
|
362
359
|
except Exception:
|
tomwer/core/process/task.py
CHANGED
@@ -46,7 +46,8 @@ from ewokscore.task import Task as _EwoksTask
|
|
46
46
|
from ewokscore.taskwithprogress import TaskWithProgress as _EwoksTaskWithProgress
|
47
47
|
from silx.io.dictdump import dicttoh5, h5todict
|
48
48
|
from silx.io.utils import h5py_read_dataset
|
49
|
-
from
|
49
|
+
from silx.io.utils import open as open_hdf5
|
50
|
+
from tomoscan.io import HDF5File
|
50
51
|
from tomwer.core.utils.locker import FileLockerManager
|
51
52
|
|
52
53
|
|
@@ -376,7 +377,7 @@ class BaseProcessInfo:
|
|
376
377
|
:rtype: list
|
377
378
|
"""
|
378
379
|
# retrieve process to load
|
379
|
-
with
|
380
|
+
with open_hdf5(process_file) as h5f:
|
380
381
|
if entry is None:
|
381
382
|
if len(h5f.keys()) > 0:
|
382
383
|
root = h5f[list(h5f.keys())[0]]
|
@@ -42,7 +42,8 @@ from nxtomomill.converter import from_h5_to_nx
|
|
42
42
|
from nxtomomill.io.config.hdf5config import TomoHDF5Config
|
43
43
|
from nxtomo.nxobject.nxdetector import ImageKey
|
44
44
|
|
45
|
-
from
|
45
|
+
from silx.io.utils import open as open_hdf5
|
46
|
+
from tomoscan.io import HDF5File
|
46
47
|
from tomoscan.validator import is_valid_for_reconstruction
|
47
48
|
|
48
49
|
from tomwer.core.process.control.datalistener import DataListener
|
@@ -335,9 +336,9 @@ class NXTomoDataTransferBase(unittest.TestCase):
|
|
335
336
|
dst_scan = process.outputs.data
|
336
337
|
assert dst_scan.master_file != self.nexus_file_path
|
337
338
|
assert is_valid_for_reconstruction(dst_scan, check_values=True)
|
338
|
-
with
|
339
|
+
with open_hdf5(src_scan.master_file) as h5s_src:
|
339
340
|
src_dataset = h5s_src["entry0000/detector/data"][...]
|
340
|
-
with
|
341
|
+
with open_hdf5(dst_scan.master_file) as h5s_dst:
|
341
342
|
dst_dataset = h5s_dst["entry0000/detector/data"][...]
|
342
343
|
assert numpy.array_equal(src_dataset, dst_dataset)
|
343
344
|
|
tomwer/core/scan/blissscan.py
CHANGED
@@ -54,7 +54,7 @@ import logging
|
|
54
54
|
from typing import Optional
|
55
55
|
|
56
56
|
from silx.io.utils import h5py_read_dataset
|
57
|
-
from
|
57
|
+
from silx.io.utils import open as open_hdf5
|
58
58
|
|
59
59
|
_logger = logging.getLogger(__name__)
|
60
60
|
|
@@ -203,7 +203,7 @@ class BlissScan:
|
|
203
203
|
return True
|
204
204
|
return False
|
205
205
|
|
206
|
-
with
|
206
|
+
with open_hdf5(file_path) as h5s:
|
207
207
|
if not isinstance(h5s, h5py.Group) or not isinstance(
|
208
208
|
h5s[entry], h5py.Group
|
209
209
|
):
|
@@ -227,7 +227,7 @@ class BlissScan:
|
|
227
227
|
return tuple()
|
228
228
|
else:
|
229
229
|
res = []
|
230
|
-
with
|
230
|
+
with open_hdf5(file_path) as h5s:
|
231
231
|
for entry in h5s:
|
232
232
|
if BlissScan.is_bliss_valid_entry(file_path=file_path, entry=entry):
|
233
233
|
res.append(entry)
|
tomwer/core/scan/nxtomoscan.py
CHANGED
@@ -40,12 +40,12 @@ from urllib.parse import urlparse
|
|
40
40
|
|
41
41
|
import h5py
|
42
42
|
from processview.core.dataset import DatasetIdentifier
|
43
|
+
from silx.io.utils import open as open_hdf5
|
43
44
|
from tomoscan.esrf.identifier.hdf5Identifier import (
|
44
45
|
NXtomoScanIdentifier as _NXtomoScanIdentifier,
|
45
46
|
)
|
46
47
|
from tomoscan.esrf.identifier.url_utils import UrlSettings, split_path, split_query
|
47
48
|
from tomoscan.esrf.scan.nxtomoscan import NXtomoScan as _tsNXtomoScan
|
48
|
-
from tomoscan.io import HDF5File, get_swmr_mode
|
49
49
|
from nxtomo.nxobject.nxdetector import ImageKey
|
50
50
|
|
51
51
|
from tomwer.utils import docstring
|
@@ -424,7 +424,7 @@ class NXtomoScan(_tsNXtomoScan, TomwerScanBase):
|
|
424
424
|
return tuple()
|
425
425
|
else:
|
426
426
|
res = []
|
427
|
-
with
|
427
|
+
with open_hdf5(file_path) as h5s:
|
428
428
|
for entry_name, node in h5s.items():
|
429
429
|
if isinstance(node, h5py.Group):
|
430
430
|
if NXtomoScan.entry_is_nx_tomo(node):
|
tomwer/core/scan/scanbase.py
CHANGED
@@ -40,8 +40,9 @@ import functools
|
|
40
40
|
import numpy
|
41
41
|
from silx.io.url import DataUrl
|
42
42
|
from silx.utils.enum import Enum as _Enum
|
43
|
+
from silx.io.utils import open as open_hdf5
|
44
|
+
|
43
45
|
from tomoscan.identifier import VolumeIdentifier
|
44
|
-
from tomoscan.io import HDF5File, get_swmr_mode
|
45
46
|
from tomoscan.normalization import IntensityNormalization
|
46
47
|
from tomoscan.volumebase import VolumeBase
|
47
48
|
from tomoscan.identifier import BaseIdentifier
|
@@ -131,7 +132,7 @@ class TomwerScanBase(TomwerObject):
|
|
131
132
|
and self.process_file is not None
|
132
133
|
and os.path.exists(self.process_file)
|
133
134
|
):
|
134
|
-
with
|
135
|
+
with open_hdf5(self.process_file) as h5s:
|
135
136
|
self._process_index = len(h5s.items())
|
136
137
|
else:
|
137
138
|
self._process_index = 0
|
@@ -756,7 +757,7 @@ class TomwerScanBase(TomwerObject):
|
|
756
757
|
from tomwer.core.process.task import Task
|
757
758
|
|
758
759
|
if os.path.exists(self.process_file):
|
759
|
-
with
|
760
|
+
with open_hdf5(self.process_file) as h5s:
|
760
761
|
if not hasattr(self, "entry"):
|
761
762
|
entry = "entry"
|
762
763
|
else:
|
@@ -864,9 +865,7 @@ def _get_reconstructed_single_file_volume(
|
|
864
865
|
|
865
866
|
if check_url is True:
|
866
867
|
try:
|
867
|
-
with
|
868
|
-
os.path.abspath(file_), "r", swmr=get_swmr_mode()
|
869
|
-
) as h5f:
|
868
|
+
with open_hdf5(os.path.abspath(file_)) as h5f:
|
870
869
|
if entry not in h5f:
|
871
870
|
logger.info("{volume} does not exists")
|
872
871
|
return None
|
@@ -8,11 +8,11 @@ from silx.gui import qt
|
|
8
8
|
from silx.gui.plot import Plot2D
|
9
9
|
from silx.io.dictdump import h5todict
|
10
10
|
from silx.io.url import DataUrl
|
11
|
+
from silx.io.utils import open as open_hdf5
|
11
12
|
from silx.gui.dialog.DataFileDialog import DataFileDialog
|
12
13
|
|
13
14
|
from tomoscan.esrf.scan.utils import cwd_context
|
14
15
|
from tomoscan.framereducer.target import REDUCER_TARGET
|
15
|
-
from tomoscan.io import HDF5File, get_swmr_mode
|
16
16
|
|
17
17
|
from tomwer.io.utils import get_default_directory
|
18
18
|
|
@@ -249,7 +249,7 @@ class ReduceDarkFlatSelectorTableWidget(qt.QWidget):
|
|
249
249
|
if not os.path.exists(file_path):
|
250
250
|
_logger.error(f"file doesn't exists ({file_path})")
|
251
251
|
|
252
|
-
with
|
252
|
+
with open_hdf5(file_path) as h5f:
|
253
253
|
entries = tuple(h5f.keys())
|
254
254
|
|
255
255
|
res = []
|
tomwer/gui/edit/dkrfpatch.py
CHANGED
@@ -36,8 +36,8 @@ from silx.gui import qt
|
|
36
36
|
from silx.gui.dialog.DataFileDialog import DataFileDialog
|
37
37
|
from silx.io.url import DataUrl
|
38
38
|
from silx.io.utils import h5py_read_dataset
|
39
|
+
from silx.io.utils import open as open_hdf5
|
39
40
|
from nxtomo.nxobject.nxdetector import ImageKey
|
40
|
-
from tomoscan.io import HDF5File, get_swmr_mode
|
41
41
|
|
42
42
|
import tomwer.core.utils.nxtomoutils as nxtomo_utils
|
43
43
|
from tomwer.core.scan.nxtomoscan import NXtomoScan
|
@@ -83,7 +83,7 @@ class _DarkOrFlatUrl(qt.QWidget):
|
|
83
83
|
url = self._redirectDataPath(url, logger=_logger)
|
84
84
|
|
85
85
|
def dataset_invalid(url):
|
86
|
-
with
|
86
|
+
with open_hdf5(url.file_path()) as h5s:
|
87
87
|
if not isinstance(h5s[url.data_path()], h5py.Dataset):
|
88
88
|
return True
|
89
89
|
return False
|
@@ -113,7 +113,7 @@ class _DarkOrFlatUrl(qt.QWidget):
|
|
113
113
|
|
114
114
|
def _redirectDataPath(self, url, logger=None):
|
115
115
|
try:
|
116
|
-
with
|
116
|
+
with open_hdf5(url.file_path()) as h5s:
|
117
117
|
node = h5s[url.data_path()]
|
118
118
|
|
119
119
|
if NXtomoScan.entry_is_nx_tomo(node):
|
@@ -188,7 +188,7 @@ class _DarkOrFlatUrl(qt.QWidget):
|
|
188
188
|
def _getImageKey(self, url):
|
189
189
|
# if we are on a 'detector / data dataset' then we can try to reach
|
190
190
|
# image_key information
|
191
|
-
with
|
191
|
+
with open_hdf5(url.file_path()) as h5s:
|
192
192
|
dataset = h5s[url.data_path()]
|
193
193
|
grp_parent = dataset.parent
|
194
194
|
if grp_parent is not None and NXtomoScan.is_nxdetector(grp_parent):
|
tomwer/gui/edit/nxtomowarmer.py
CHANGED
@@ -1,9 +1,10 @@
|
|
1
1
|
from typing import Optional
|
2
2
|
import h5py
|
3
3
|
from silx.gui import qt
|
4
|
+
from silx.io.utils import open as open_hdf5
|
5
|
+
|
4
6
|
from tomwer.core.scan.nxtomoscan import NXtomoScan
|
5
7
|
from tomwer.gui import icons
|
6
|
-
from tomoscan.io import HDF5File, get_swmr_mode
|
7
8
|
|
8
9
|
|
9
10
|
class NXtomoProxyWarmer(qt.QWidget):
|
@@ -44,7 +45,7 @@ class NXtomoProxyWarmer(qt.QWidget):
|
|
44
45
|
if scan is None:
|
45
46
|
self._activateWarning(False)
|
46
47
|
elif isinstance(scan, NXtomoScan):
|
47
|
-
with
|
48
|
+
with open_hdf5(scan.master_file) as h5f:
|
48
49
|
entry = h5f.get(
|
49
50
|
name=scan.entry, getclass=True, getlink=True, default=None
|
50
51
|
)
|
tomwer/gui/imagefromfile.py
CHANGED
@@ -34,7 +34,7 @@ import logging
|
|
34
34
|
|
35
35
|
from silx.gui import qt
|
36
36
|
from silx.io.url import DataUrl
|
37
|
-
from
|
37
|
+
from silx.io.utils import open as open_hdf5
|
38
38
|
|
39
39
|
from tomwer.core.scan.scanbase import TomwerScanBase
|
40
40
|
from tomwer.synctools.imageloaderthread import ImageLoaderThread
|
@@ -71,7 +71,7 @@ class ImageFromFile(_Image):
|
|
71
71
|
|
72
72
|
def get_nabu_entry():
|
73
73
|
try:
|
74
|
-
with
|
74
|
+
with open_hdf5(_file) as h5s:
|
75
75
|
for node in h5s:
|
76
76
|
if "reconstruction" in h5s[node]:
|
77
77
|
return "/".join(
|
tomwer/io/utils/h5pyutils.py
CHANGED
@@ -35,7 +35,7 @@ import contextlib
|
|
35
35
|
|
36
36
|
import h5py
|
37
37
|
from silx.io.url import DataUrl
|
38
|
-
from
|
38
|
+
from silx.io.utils import open as open_hdf5
|
39
39
|
|
40
40
|
|
41
41
|
class _BaseReader(contextlib.AbstractContextManager):
|
@@ -60,9 +60,7 @@ class EntryReader(_BaseReader):
|
|
60
60
|
"""Context manager used to read a bliss node"""
|
61
61
|
|
62
62
|
def __enter__(self):
|
63
|
-
self._file_handler =
|
64
|
-
filename=self._url.file_path(), mode="r", swmr=get_swmr_mode()
|
65
|
-
)
|
63
|
+
self._file_handler = open_hdf5(filename=self._url.file_path())
|
66
64
|
entry = self._file_handler[self._url.data_path()]
|
67
65
|
if not isinstance(entry, h5py.Group):
|
68
66
|
raise ValueError("Data path should point to a bliss node (h5py.Group)")
|
@@ -73,9 +71,7 @@ class DatasetReader(_BaseReader):
|
|
73
71
|
"""Context manager used to read a bliss node"""
|
74
72
|
|
75
73
|
def __enter__(self):
|
76
|
-
self._file_handler =
|
77
|
-
filename=self._url.file_path(), mode="r", swmr=get_swmr_mode()
|
78
|
-
)
|
74
|
+
self._file_handler = open_hdf5(filename=self._url.file_path())
|
79
75
|
entry = self._file_handler[self._url.data_path()]
|
80
76
|
if not isinstance(entry, h5py.Dataset):
|
81
77
|
raise ValueError("Data path should point to a dtaset (h5py.Dataset)")
|
tomwer/io/utils/utils.py
CHANGED
@@ -37,9 +37,9 @@ import os
|
|
37
37
|
import h5py
|
38
38
|
import numpy.lib.npyio
|
39
39
|
from PIL import Image
|
40
|
+
from silx.io.utils import open as open_hdf5
|
40
41
|
from tomoscan.esrf import has_glymur
|
41
42
|
from tomoscan.esrf.scan.utils import get_data as tomoscan_get_data
|
42
|
-
from tomoscan.io import HDF5File, get_swmr_mode
|
43
43
|
from typing import Union
|
44
44
|
|
45
45
|
from tomwer.core.utils import ftseriesutils
|
@@ -201,7 +201,7 @@ def get_linked_files_with_entry(hdf5_file: str, entry: str) -> set:
|
|
201
201
|
if item in treated_items:
|
202
202
|
continue
|
203
203
|
dirname = os.path.dirname(abs_file_path)
|
204
|
-
with
|
204
|
+
with open_hdf5(abs_file_path) as h5f:
|
205
205
|
node = h5f.get(data_path, getlink=True)
|
206
206
|
if isinstance(node, h5py.ExternalLink):
|
207
207
|
ext_file_path = node.filename
|
@@ -252,7 +252,7 @@ def get_linked_files_with_vds(hdf5_file: str, dataset_path: str) -> set:
|
|
252
252
|
if item in treated_items:
|
253
253
|
continue
|
254
254
|
dirname = os.path.dirname(abs_file_path)
|
255
|
-
with
|
255
|
+
with open_hdf5(abs_file_path) as h5f:
|
256
256
|
dataset = h5f[dataset_path]
|
257
257
|
if dataset.is_virtual:
|
258
258
|
for vs_info in dataset.virtual_sources():
|
tomwer/version.py
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
tomwer-1.3.
|
1
|
+
tomwer-1.3.6-py3.11-nspkg.pth,sha256=xeeGR3TjdoVxdFeF6T-zSwZWh6Et--EYuPWu67LxL_c,574
|
2
2
|
orangecontrib/tomwer/__init__.py,sha256=B4DXy1gY_wXmNYa2aOfapmJb2mEuCAjoaNEGnpBs70g,148
|
3
3
|
orangecontrib/tomwer/state_summary.py,sha256=5_dPzweL3r0ye4ZfJo6IV2ThJI8fQhWoO2ySdJJajj8,1711
|
4
4
|
orangecontrib/tomwer/orange/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -220,7 +220,7 @@ orangecontrib/tomwer/widgets/visualization/icons/volumeviewer.svg,sha256=2uT9_px
|
|
220
220
|
tomwer/__init__.py,sha256=82Jp1abyG4UWdGuT4nNU7LxaUV6xxkOte5pIz3w69Do,1745
|
221
221
|
tomwer/__main__.py,sha256=jsDfWA2yl5am0dHQVkYwlKLxxqKNont6VDF-LusuawE,8575
|
222
222
|
tomwer/utils.py,sha256=EgVwJ5CQVjoBvcKNwyVoXv_P4ciI11oxb8fNyy82Lck,8465
|
223
|
-
tomwer/version.py,sha256=
|
223
|
+
tomwer/version.py,sha256=uL9QPJPqCFjLS5OtVGnrUyJmYbddVDNZ1-V5j_9cyhQ,4386
|
224
224
|
tomwer/app/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
225
225
|
tomwer/app/axis.py,sha256=Ax0wlTp9u0Ll_3ax23QP5Ck16_M9Kop7wx0hAbXrXyM,6004
|
226
226
|
tomwer/app/canvas.py,sha256=RbQqgE7DuNjv4nGG6BNfnSevQO5_lCl7N71hGcLoxwE,1561
|
@@ -263,7 +263,7 @@ tomwer/core/log/logger.py,sha256=KDHLUbaVx3hOuIk8WmzS61x1IkYgAZJ97nVYUI5-PTU,409
|
|
263
263
|
tomwer/core/log/processlog.py,sha256=0XmoKVUpHjxvaOFEi56eqF1edHPzCfsCmjdMMZP2sxs,3697
|
264
264
|
tomwer/core/process/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
265
265
|
tomwer/core/process/output.py,sha256=UmOczI3GYNXm79B_1B3DInrXZqerhMF98Hru4KcgP1o,1562
|
266
|
-
tomwer/core/process/task.py,sha256=
|
266
|
+
tomwer/core/process/task.py,sha256=3_AuZGwUoLLUw5B8ZwYt0cDFeZ_g1VtTBta573tiODQ,15703
|
267
267
|
tomwer/core/process/utils.py,sha256=LIzKwucEq6IqQ7L8L70UgDBaE9F29h_gjipQsa1RFo8,4010
|
268
268
|
tomwer/core/process/cluster/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
269
269
|
tomwer/core/process/cluster/supervisor.py,sha256=sStffXsjWEYaAF0yL03igtLflRnmr3zJzHRWGidwHas,1755
|
@@ -284,7 +284,7 @@ tomwer/core/process/control/tomoobjserie.py,sha256=L--pjgc0P-2wCul9KERwT4jeq45Rk
|
|
284
284
|
tomwer/core/process/control/volumeselector.py,sha256=0uv1Q8k5Ms1h_iU-ldhb-Y35xsy1kHwQrbUQguV5M_A,370
|
285
285
|
tomwer/core/process/control/volumesymlink.py,sha256=lcHS5eJv5lr72BAXrTe0QfwQw8amXIu0lPRsPdL6o_o,7626
|
286
286
|
tomwer/core/process/control/datalistener/__init__.py,sha256=gSEeJEDX8E-8HzY7tmPc32QKfqSZHG4Ad06IxDrzOWo,52
|
287
|
-
tomwer/core/process/control/datalistener/datalistener.py,sha256=
|
287
|
+
tomwer/core/process/control/datalistener/datalistener.py,sha256=Je1zillD907UEacwMoFpSVJ6AzzgOEKKaMCjngBERpI,22087
|
288
288
|
tomwer/core/process/control/datalistener/rpcserver.py,sha256=BAIpBqovcxr5R-F144uvAYYUVgqSiXeDRYuw-ZeVgF8,11104
|
289
289
|
tomwer/core/process/control/datawatcher/__init__.py,sha256=F9d_bGOr5iAPEfnKaf5XOEwQSR1wZp_wkzcDYNSuin4,50
|
290
290
|
tomwer/core/process/control/datawatcher/datawatcher.py,sha256=oU0nBmn_-cv_f8r-dTQM4I8QT5XPxLuQ6s4yLkf_PEk,16822
|
@@ -312,22 +312,22 @@ tomwer/core/process/reconstruction/output.py,sha256=JxtQ-ky2rPjTet2kYtIlzqnfj9E7
|
|
312
312
|
tomwer/core/process/reconstruction/paramsbase.py,sha256=YhCqZwZCM632WdLlLHJVEwBHnXwbBf7CoLA3jESxOFE,7725
|
313
313
|
tomwer/core/process/reconstruction/axis/__init__.py,sha256=VSQkN6M6JvM_c55OiboNyJUW8Zs1wkkQgv1JYmzvIr8,80
|
314
314
|
tomwer/core/process/reconstruction/axis/anglemode.py,sha256=sOkuTqO8sR8xd_tEwZHj-o1TA1z33AmwwZbrPnuYqmI,1896
|
315
|
-
tomwer/core/process/reconstruction/axis/axis.py,sha256=
|
315
|
+
tomwer/core/process/reconstruction/axis/axis.py,sha256=nkBkDjB5yGkxRNWtjnFrixwOE_qCx5iNloIpWEZne3M,42723
|
316
316
|
tomwer/core/process/reconstruction/axis/mode.py,sha256=CvYf-Mat3Vc6Ki1RSUQl4_Z02OKdmXUmpknnLmUgz5k,6750
|
317
317
|
tomwer/core/process/reconstruction/axis/params.py,sha256=y1RgFAk1wiJMeueSNJH5enUnUDxw-jsb9_JF_XxSYks,33185
|
318
318
|
tomwer/core/process/reconstruction/axis/projectiontype.py,sha256=0w_NZ0N95iInHuEQCIxJIxt7K-YpCUo2fZ-_vhZ6D7Q,1543
|
319
319
|
tomwer/core/process/reconstruction/darkref/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
320
320
|
tomwer/core/process/reconstruction/darkref/darkrefs.py,sha256=gbRq1IJ-9fxD71684wajQj3D_M9G6chm7ahZsjxTmpM,20862
|
321
|
-
tomwer/core/process/reconstruction/darkref/darkrefscopy.py,sha256=
|
321
|
+
tomwer/core/process/reconstruction/darkref/darkrefscopy.py,sha256=6wEBs7yBZHeEADxDLZ-jYTxaeOBJCJacqfskkr1-ytE,13276
|
322
322
|
tomwer/core/process/reconstruction/darkref/params.py,sha256=Pnl8XJ4et-u169wzUdhB8_woBEXPXtrGPLZEbXSwZDQ,10080
|
323
323
|
tomwer/core/process/reconstruction/darkref/settings.py,sha256=35jliuOIjMKTOJjgn4uiotcDEr6RskpLHfRWWLm76dc,188
|
324
324
|
tomwer/core/process/reconstruction/nabu/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
325
325
|
tomwer/core/process/reconstruction/nabu/castvolume.py,sha256=qk5bNGcPXylEXfHE3eB6gIh2_Bh-ehtq4Z1Ok8hXd5s,10239
|
326
326
|
tomwer/core/process/reconstruction/nabu/helical.py,sha256=gauUkoPiShvnvMQrCQXv28g0yLe-GceML5kYMSXmNIg,1997
|
327
|
-
tomwer/core/process/reconstruction/nabu/nabucommon.py,sha256=
|
327
|
+
tomwer/core/process/reconstruction/nabu/nabucommon.py,sha256=3OyyDjBfdrEF4ctXo6LBH-WeyrKh24j6sJUocA7TwXw,24428
|
328
328
|
tomwer/core/process/reconstruction/nabu/nabuscores.py,sha256=UtTpMF_NZhmz_q8zvBZj6W91cNxYEA3BckWL5GRmCag,25702
|
329
|
-
tomwer/core/process/reconstruction/nabu/nabuslices.py,sha256=
|
330
|
-
tomwer/core/process/reconstruction/nabu/nabuvolume.py,sha256=
|
329
|
+
tomwer/core/process/reconstruction/nabu/nabuslices.py,sha256=lDgGGRQ2xABu9TXs8m-aeyP_jCs3m2WGF75MRd58xm0,38731
|
330
|
+
tomwer/core/process/reconstruction/nabu/nabuvolume.py,sha256=z7nyfXhMrp0Q3hAN3NYw5rvvjdgU-ZQQ7kMD3bEiFcU,21916
|
331
331
|
tomwer/core/process/reconstruction/nabu/plane.py,sha256=Cgzth77M0pFgLDULmvmPj4bqFm5MvIMJ7Ien8mRqLsE,134
|
332
332
|
tomwer/core/process/reconstruction/nabu/settings.py,sha256=JpHKf0smiXeWC8i9Mj7h3g67teJ3Gqycd-Uwg2yzGOQ,2279
|
333
333
|
tomwer/core/process/reconstruction/nabu/target.py,sha256=_Z4gViprjR3Vm4KASqsASStLA9GM1wTyoi3Pg0PUSeg,1481
|
@@ -364,7 +364,7 @@ tomwer/core/process/test/test_axis.py,sha256=So1e1WnVuhvFCv5wT5dftZ9JFsVsc8uR0Qe
|
|
364
364
|
tomwer/core/process/test/test_conditions.py,sha256=7yKYB_Bg6dQqblA3lGD4eESegDX6MU2AzmUahWTzmdI,3464
|
365
365
|
tomwer/core/process/test/test_dark_and_flat.py,sha256=XyfTtZAH-qleMUwVhaDkpbkxIeqWlgYXMeLVipc0spI,15444
|
366
366
|
tomwer/core/process/test/test_data_listener.py,sha256=ab_FZM7f-lXzQ6eMY-4aCFyTUqWuexZKV_tiRaPVfzE,3696
|
367
|
-
tomwer/core/process/test/test_data_transfer.py,sha256=
|
367
|
+
tomwer/core/process/test/test_data_transfer.py,sha256=6vHQTv4C6pI5XTGTwQCG4U0OQKfR42HviX5frBMsQGE,15419
|
368
368
|
tomwer/core/process/test/test_data_watcher.py,sha256=y0FpUqxlpKZu7OhuwlxeLPX5ESPXj_2m2lKjEWrVCV4,3138
|
369
369
|
tomwer/core/process/test/test_nabu.py,sha256=mMaMNS4Sp-4On6ZDcuNVajQPTiO5kFy84z9p7_pUhzw,19621
|
370
370
|
tomwer/core/process/test/test_normalization.py,sha256=m9hSFi88Q2IGiyNb9emGsS5HOBx9HulJsejUjO0x5Mo,4014
|
@@ -380,13 +380,13 @@ tomwer/core/process/visualization/sinogramviewer.py,sha256=VPkea5-DiVv_fCvg_UqBo
|
|
380
380
|
tomwer/core/process/visualization/slicestack.py,sha256=0388rNQBDu_ihJ_vGT7EtwiGPlHf-yJDVBK8VCLXsEo,1625
|
381
381
|
tomwer/core/process/visualization/volumeviewer.py,sha256=h2_LOfx0PNJaBK0cyUDniuV1Gf7FwLsHwU3jFaAbOow,1579
|
382
382
|
tomwer/core/scan/__init__.py,sha256=V1TPi41mS3b6jskdiNqgnKYvRHZg1x1KmEClQ3hUmu8,1392
|
383
|
-
tomwer/core/scan/blissscan.py,sha256=
|
383
|
+
tomwer/core/scan/blissscan.py,sha256=yfJaoYGeEKehZwKj1sfdzXU7rohxm5mbOdaORXIRI7o,8244
|
384
384
|
tomwer/core/scan/edfscan.py,sha256=_J6NyqXkMcrD6NirLT-TmI-Le2UpdV8uy8XOmrdu9AM,22892
|
385
385
|
tomwer/core/scan/futurescan.py,sha256=chXjteQ4_6cSyFBoCil-DeHkHGGzM-xb21xJRYLEfhI,213
|
386
386
|
tomwer/core/scan/hdf5scan.py,sha256=P7LHxyqY9Ujg19MpYVItarKxFEy2Z_PVTh5Hi3PCXyU,980
|
387
387
|
tomwer/core/scan/helicalmetadata.py,sha256=JRBxqHkyTe5f3FDlbIeDfN31P6Ms48SqGiFRXHuZ8sw,472
|
388
|
-
tomwer/core/scan/nxtomoscan.py,sha256=
|
389
|
-
tomwer/core/scan/scanbase.py,sha256=
|
388
|
+
tomwer/core/scan/nxtomoscan.py,sha256=WJEO_hQTcMhgALI5KaSIQy8bGsLEeX2Po0ArUdxlqA0,19405
|
389
|
+
tomwer/core/scan/scanbase.py,sha256=PSPeGM6mI6EacE_VUWLTUGcjhdJnY6ZpR_I4qHSHmIc,32052
|
390
390
|
tomwer/core/scan/scanfactory.py,sha256=Ltisxo9B8j11lS_cdwUjuEH1ZjPb9nmU2KmkXxzU98I,10521
|
391
391
|
tomwer/core/scan/scantype.py,sha256=pQjWuCy_014uK5cdb8pFAkE_EPHJvPdSo3NM8aWTo58,137
|
392
392
|
tomwer/core/scan/test/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -429,7 +429,7 @@ tomwer/core/volume/volumefactory.py,sha256=sf9Mok3EG7a43OTrLAKnRw37TG_22FXY9rruX
|
|
429
429
|
tomwer/gui/__init__.py,sha256=GuoK-CFwHqHBiLvvSUOAk6_SaXu7-k3SIYCfPTZFHFk,1474
|
430
430
|
tomwer/gui/icons.py,sha256=r_UURvOe36k83iw5gQiEKt6fgdvPNbZgrUoeji_s6eE,12917
|
431
431
|
tomwer/gui/illustrations.py,sha256=kKA_Jnj67QwwjHXW1d5x1qOgV2QWlktvEJYIDFTSJ-0,5368
|
432
|
-
tomwer/gui/imagefromfile.py,sha256=
|
432
|
+
tomwer/gui/imagefromfile.py,sha256=vE7O59deIJoUqCcm09tcGLZ99YHncqMf-xQbEkWboGo,5501
|
433
433
|
tomwer/gui/qconfigfile.py,sha256=zkXEirFZbIyylm0usdn7dVRWvns6bRoqYTG2bs9JCTM,713
|
434
434
|
tomwer/gui/qfolderdialog.py,sha256=lIptQ9WHU5OoViCTE5lJMctSBa_ayf0IBirKikrKudI,22761
|
435
435
|
tomwer/gui/qlefilesystem.py,sha256=ooNqoAeQA_JKamBg-ZlJSfX-paAYcGAjNam25qXJPgA,534
|
@@ -459,7 +459,7 @@ tomwer/gui/control/emailnotifier.py,sha256=nbuy4cSXdSOiDTSwWhK2bbpIdq4bDpApWNs2z
|
|
459
459
|
tomwer/gui/control/history.py,sha256=o7r2OiUqIPX7DsyPCI_r8XDkLowU5NajQnpbJic2rgY,4826
|
460
460
|
tomwer/gui/control/nxtomomill.py,sha256=DI7DsO98O8h9mFcJ_1y1Kb8nD6w09at8YvJZNHR_EtE,7293
|
461
461
|
tomwer/gui/control/observations.py,sha256=oj2OqWYwiewgsZ5vNjzrMjB-YPopYyJmaBE5df09L7c,7735
|
462
|
-
tomwer/gui/control/reducedarkflatselector.py,sha256=
|
462
|
+
tomwer/gui/control/reducedarkflatselector.py,sha256=hW2D69B2THZn8lIOaUQJHJ6aGIn-tHjcynEfIn4DftA,20536
|
463
463
|
tomwer/gui/control/scanselectorwidget.py,sha256=m3uxkoG4aNPPwamiI14l82PNS8tvIiOXmKhBJiwHgjU,2356
|
464
464
|
tomwer/gui/control/selectorwidgetbase.py,sha256=avj6dkBJaryCQYF66vXbuYbaLAjTwmcdQ1L24DcUH6I,5571
|
465
465
|
tomwer/gui/control/singletomoobj.py,sha256=5R_Uwgp5wdDQudxG2vyyq4Nj1GjhqH0HCeo_cFS7WuI,6777
|
@@ -492,10 +492,10 @@ tomwer/gui/debugtools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3h
|
|
492
492
|
tomwer/gui/debugtools/datasetgenerator.py,sha256=b3VSgtzG4QyHqxbeVyXE4gX41cGwuVKJHhPWU9ZibQc,10641
|
493
493
|
tomwer/gui/debugtools/objectinspector.py,sha256=Mva9iK4bIxHvs3CcuHboWa4kiUEMoBeuUOULfPNyNOs,2925
|
494
494
|
tomwer/gui/edit/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
495
|
-
tomwer/gui/edit/dkrfpatch.py,sha256=
|
495
|
+
tomwer/gui/edit/dkrfpatch.py,sha256=UCXfEq3wV1x3OzEdzIzi6YxRN6SaEIZb-Yudt2YwnUs,17533
|
496
496
|
tomwer/gui/edit/imagekeyeditor.py,sha256=NjnPdKJif9bhfPXejJuRrj2TqTTMlOxlk4mb6mSBoHw,29728
|
497
497
|
tomwer/gui/edit/nxtomoeditor.py,sha256=1mV5EIHTclg1YxDLMncbErNwC58jEOGxjxO7I1dRzyQ,28095
|
498
|
-
tomwer/gui/edit/nxtomowarmer.py,sha256=
|
498
|
+
tomwer/gui/edit/nxtomowarmer.py,sha256=Vmsg8oUSzHpIvJVqF6xZd0aYKzPi_DDoNrGOIQbqBwU,2349
|
499
499
|
tomwer/gui/edit/test/__init__.py,sha256=OLK9ip_LryBfM_L40MReqjvJS3wdbWP_CpnBeD1NQTA,1368
|
500
500
|
tomwer/gui/edit/test/test_dkrf_patch.py,sha256=578ZPdVGOHls236XQqId7QqRrpdN5h3Hh8BePTlV03g,8001
|
501
501
|
tomwer/gui/edit/test/test_image_key_editor.py,sha256=hkeiB5plRR17YD499j6_yQatuIgKLa4F4NfjWVMzhY4,5965
|
@@ -609,10 +609,10 @@ tomwer/gui/visualization/test/test_stacks.py,sha256=HFLwaJ4LCHKuhRjMB4FNhIrI3W96
|
|
609
609
|
tomwer/gui/visualization/test/test_volumeviewer.py,sha256=Cf0EIQ8D_A9scznodWQGZfzkKgsuImzE44Q3A2e_PPs,2374
|
610
610
|
tomwer/io/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
611
611
|
tomwer/io/utils/__init__.py,sha256=SrC5etCrm-3oMkUc4PPRqSdkIwTvKdtnBTfxh35_exI,272
|
612
|
-
tomwer/io/utils/h5pyutils.py,sha256=
|
612
|
+
tomwer/io/utils/h5pyutils.py,sha256=nSKVGHhFh2dJbEj6Ie0wPgU60HXxTctMJoTyRIpQPQs,2964
|
613
613
|
tomwer/io/utils/raw_and_processed_data.py,sha256=XMAyMTbxB7orxHsYOPuWQd5QiGQB_xesx8bMf2KyW0g,3208
|
614
614
|
tomwer/io/utils/tomoobj.py,sha256=PGcTc2nMDMzKGvL7u5LgIMc9MYhJwLN9yecA1gttmzE,2828
|
615
|
-
tomwer/io/utils/utils.py,sha256=
|
615
|
+
tomwer/io/utils/utils.py,sha256=GnBaxTacb-vMJymiVk8onRRjJamGx0xRzbWl5yFl_fQ,10678
|
616
616
|
tomwer/resources/__init__.py,sha256=dXxWZFKRE4ncPKzNq9BBLtjwRYmRvzzErgKhvzH_W6g,5904
|
617
617
|
tomwer/resources/gui/icons/Imagej_icon.png,sha256=JFDzPw20pzRrf6wLBnScXEcmTVt6orXPzwPwniKeVss,1618960
|
618
618
|
tomwer/resources/gui/icons/a.png,sha256=YrYFndLl3SUcsYNJDloU9YeJLBUkiMmgvDjDNJCMipI,3858
|
@@ -776,10 +776,10 @@ tomwer/tests/test_utils.py,sha256=D0rNDSK6csEOYBY_7gD-4A3jp8rYAm8L1_Xg34A9I2s,30
|
|
776
776
|
tomwer/tests/utils.py,sha256=RAXx5A99WD4Vyuv_wjHBdr-Xu7UiThHRKw2eiB5GX10,107
|
777
777
|
tomwer/third_part/WaitingOverlay.py,sha256=GnqiytcJDp_24Cmz_2nZAP5HfpL3Yh7AzR2ATIusGsg,3906
|
778
778
|
tomwer/third_part/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
779
|
-
tomwer-1.3.
|
780
|
-
tomwer-1.3.
|
781
|
-
tomwer-1.3.
|
782
|
-
tomwer-1.3.
|
783
|
-
tomwer-1.3.
|
784
|
-
tomwer-1.3.
|
785
|
-
tomwer-1.3.
|
779
|
+
tomwer-1.3.6.dist-info/LICENSE,sha256=yR_hIZ1MfDh9x2_s23uFqBH7m5DgrBl9nJKkE37YChM,1877
|
780
|
+
tomwer-1.3.6.dist-info/METADATA,sha256=0rHJ-_xiv99uLR6bp1igf01UZ0NtSPKkZbuPuaqU9So,11459
|
781
|
+
tomwer-1.3.6.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
|
782
|
+
tomwer-1.3.6.dist-info/entry_points.txt,sha256=fIcDnCxjgwzfIylLYhUsFyiNZjZMxsfRQBxi4f-cJg8,440
|
783
|
+
tomwer-1.3.6.dist-info/namespace_packages.txt,sha256=Iut-JTfT11SZHHm77_ZeszD7pZDWXcTweCbvrJpqDyQ,14
|
784
|
+
tomwer-1.3.6.dist-info/top_level.txt,sha256=Yz5zKh0FPiImtzHYcPuztG1AO8-6KEpUWgoChGbA0Ys,21
|
785
|
+
tomwer-1.3.6.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|