tomwer 1.3.0.dev2__py3-none-any.whl → 1.3.0rc10__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.
- orangecontrib/tomwer/widgets/__init__.py +11 -12
- orangecontrib/tomwer/widgets/control/DataListenerOW.py +6 -6
- orangecontrib/tomwer/widgets/control/DataValidatorOW.py +6 -6
- orangecontrib/tomwer/widgets/control/NXTomomillMixIn.py +3 -3
- orangecontrib/tomwer/widgets/control/NXTomomillOW.py +10 -8
- orangecontrib/tomwer/widgets/control/SingleTomoObjOW.py +6 -6
- orangecontrib/tomwer/widgets/debugtools/DatasetGeneratorOW.py +1 -1
- orangecontrib/tomwer/widgets/icat/RawDataScreenshotCreatorOW.py +98 -98
- orangecontrib/tomwer/widgets/icat/SaveToGalleryAndPublishOW.py +129 -129
- orangecontrib/tomwer/widgets/reconstruction/AxisOW.py +13 -12
- orangecontrib/tomwer/widgets/reconstruction/SAAxisOW.py +11 -9
- orangecontrib/tomwer/widgets/reconstruction/SADeltaBetaOW.py +11 -9
- orangecontrib/tomwer/widgets/reconstruction/SinoNormOW.py +12 -15
- orangecontrib/tomwer/widgets/visualization/DataViewerOW.py +9 -9
- orangecontrib/tomwer/widgets/visualization/DiffViewerOW.py +1 -1
- orangecontrib/tomwer/widgets/visualization/SinogramViewerOW.py +0 -1
- tomwer/__main__.py +0 -10
- tomwer/app/canvas_launcher/config.py +3 -3
- tomwer/app/canvas_launcher/environ.py +1 -0
- tomwer/app/intensitynormalization.py +12 -11
- tomwer/app/nabuapp.py +0 -11
- tomwer/app/zstitching.py +11 -1
- tomwer/core/process/control/datalistener/datalistener.py +15 -10
- tomwer/core/process/control/nxtomomill.py +1 -1
- tomwer/core/process/control/scantransfer.py +8 -32
- tomwer/core/process/edit/darkflatpatch.py +8 -9
- tomwer/core/process/edit/imagekeyeditor.py +20 -22
- tomwer/core/process/icat/screenshots.py +1 -0
- tomwer/core/process/reconstruction/axis/axis.py +263 -59
- tomwer/core/process/reconstruction/axis/mode.py +161 -50
- tomwer/core/process/reconstruction/axis/params.py +23 -20
- tomwer/core/process/reconstruction/darkref/darkrefs.py +12 -13
- tomwer/core/process/reconstruction/nabu/castvolume.py +3 -3
- tomwer/core/process/reconstruction/nabu/nabucommon.py +43 -19
- tomwer/core/process/reconstruction/nabu/nabuscores.py +34 -7
- tomwer/core/process/reconstruction/nabu/nabuslices.py +81 -26
- tomwer/core/process/reconstruction/nabu/nabuvolume.py +31 -26
- tomwer/core/process/reconstruction/nabu/plane.py +9 -0
- tomwer/core/process/reconstruction/nabu/utils.py +32 -9
- tomwer/core/process/reconstruction/saaxis/saaxis.py +4 -1
- tomwer/core/process/reconstruction/sadeltabeta/sadeltabeta.py +9 -1
- tomwer/core/process/reconstruction/scores/params.py +3 -3
- tomwer/core/process/reconstruction/test/test_darkref_copy.py +4 -4
- tomwer/core/process/stitching/nabustitcher.py +11 -10
- tomwer/core/process/task.py +33 -27
- tomwer/core/process/test/test_axis.py +7 -6
- tomwer/core/process/test/test_data_transfer.py +3 -3
- tomwer/core/process/test/test_nabu.py +10 -2
- tomwer/core/process/test/test_normalization.py +2 -2
- tomwer/core/scan/blissscan.py +3 -3
- tomwer/core/scan/edfscan.py +9 -9
- tomwer/core/scan/nxtomoscan.py +11 -11
- tomwer/core/scan/scanbase.py +31 -24
- tomwer/core/scan/test/test_future_scan.py +1 -1
- tomwer/core/scan/test/test_h5.py +4 -4
- tomwer/core/scan/test/test_process_registration.py +2 -2
- tomwer/core/scan/test/test_scan.py +1 -75
- tomwer/core/settings.py +3 -3
- tomwer/core/test/test_utils.py +2 -2
- tomwer/core/volume/edfvolume.py +6 -6
- tomwer/core/volume/hdf5volume.py +6 -6
- tomwer/core/volume/jp2kvolume.py +6 -6
- tomwer/core/volume/rawvolume.py +6 -6
- tomwer/core/volume/tiffvolume.py +12 -12
- tomwer/gui/cluster/slurm.py +14 -9
- tomwer/gui/cluster/supervisor.py +12 -0
- tomwer/gui/cluster/test/test_cluster.py +1 -2
- tomwer/gui/cluster/test/test_supervisor.py +1 -1
- tomwer/gui/control/datalist.py +5 -0
- tomwer/gui/control/datawatcher/controlwidget.py +2 -4
- tomwer/gui/control/reducedarkflatselector.py +8 -8
- tomwer/gui/control/test/test_single_tomo_obj.py +1 -1
- tomwer/gui/edit/dkrfpatch.py +4 -4
- tomwer/gui/edit/nxtomowarmer.py +2 -2
- tomwer/gui/edit/test/test_dkrf_patch.py +6 -6
- tomwer/gui/imagefromfile.py +2 -2
- tomwer/gui/qfolderdialog.py +5 -0
- tomwer/gui/reconstruction/axis/CompareImages.py +94 -168
- tomwer/gui/reconstruction/axis/radioaxis.py +58 -182
- tomwer/gui/reconstruction/darkref/darkrefwidget.py +2 -1
- tomwer/gui/reconstruction/nabu/castvolume.py +8 -1
- tomwer/gui/reconstruction/nabu/nabuconfig/reconstruction.py +54 -21
- tomwer/gui/reconstruction/normalization/intensity.py +3 -25
- tomwer/gui/reconstruction/saaxis/corrangeselector.py +1 -1
- tomwer/gui/reconstruction/saaxis/saaxis.py +1 -11
- tomwer/gui/reconstruction/sadeltabeta/saadeltabeta.py +0 -10
- tomwer/gui/reconstruction/scores/scoreplot.py +1 -6
- tomwer/gui/reconstruction/test/test_axis.py +18 -4
- tomwer/gui/reconstruction/test/test_nabu.py +3 -0
- tomwer/gui/stitching/stitching.py +2 -2
- tomwer/gui/stitching/stitching_preview.py +7 -53
- tomwer/gui/stitching/stitching_raw.py +3 -3
- tomwer/gui/utils/inputwidget.py +12 -2
- tomwer/gui/utils/lineselector/lineselector.py +1 -1
- tomwer/gui/visualization/dataviewer.py +47 -17
- tomwer/gui/visualization/sinogramviewer.py +19 -26
- tomwer/gui/visualization/test/test_volumeviewer.py +64 -66
- tomwer/gui/visualization/volumeviewer.py +105 -105
- tomwer/io/utils/h5pyutils.py +7 -3
- tomwer/io/utils/utils.py +3 -3
- tomwer/resources/gui/icons/parameters.svg +1 -1
- tomwer/resources/gui/illustrations/no_rot.svg +1 -1
- tomwer/synctools/stacks/edit/darkflatpatch.py +17 -12
- tomwer/tests/test_scripts.py +0 -3
- tomwer/third_part/WaitingOverlay.py +110 -0
- tomwer/third_part/__init__.py +0 -0
- tomwer/version.py +2 -2
- {tomwer-1.3.0.dev2.dist-info → tomwer-1.3.0rc10.dist-info}/METADATA +32 -31
- {tomwer-1.3.0.dev2.dist-info → tomwer-1.3.0rc10.dist-info}/RECORD +115 -153
- {tomwer-1.3.0.dev2.dist-info → tomwer-1.3.0rc10.dist-info}/WHEEL +1 -1
- orangecontrib/tomwer/widgets/reconstruction/TofuOW.py +0 -197
- orangecontrib/tomwer/widgets/reconstruction/icons/XY_lamino.svg +0 -168
- orangecontrib/tomwer/widgets/reconstruction/icons/XZ_lamino.svg +0 -275
- orangecontrib/tomwer/widgets/reconstruction/icons/YZ_lamino.svg +0 -182
- tomwer/app/lamino.py +0 -143
- tomwer/core/process/reconstruction/lamino/__init__.py +0 -1
- tomwer/core/process/reconstruction/lamino/tofu.py +0 -1000
- tomwer/core/process/test/test_lamino.py +0 -76
- tomwer/core/test/test_lamino.py +0 -92
- tomwer/gui/reconstruction/lamino/__init__.py +0 -31
- tomwer/gui/reconstruction/lamino/tofu/TofuOptionLoader.py +0 -107
- tomwer/gui/reconstruction/lamino/tofu/__init__.py +0 -1
- tomwer/gui/reconstruction/lamino/tofu/misc.py +0 -148
- tomwer/gui/reconstruction/lamino/tofu/projections.py +0 -896
- tomwer/gui/reconstruction/lamino/tofu/settings.py +0 -75
- tomwer/gui/reconstruction/lamino/tofu/tofu.py +0 -432
- tomwer/gui/reconstruction/lamino/tofu/tofuexpert.py +0 -567
- tomwer/gui/reconstruction/lamino/tofu/tofuoutput.py +0 -757
- tomwer/gui/reconstruction/test/test_lamino.py +0 -194
- tomwer/resources/gui/icons/lamino_parameters.svg +0 -70
- tomwer/resources/gui/illustrations/lamino_angle.png +0 -0
- tomwer/resources/gui/illustrations/lamino_angle.svg +0 -509
- tomwer/resources/gui/illustrations/lamino_beta_angle.png +0 -0
- tomwer/resources/gui/illustrations/lamino_beta_angle.svg +0 -97
- tomwer/resources/gui/illustrations/lamino_theta_angle.png +0 -0
- tomwer/resources/gui/illustrations/lamino_theta_angle.svg +0 -368
- tomwer/resources/gui/illustrations/manual_slice.png +0 -0
- tomwer/resources/gui/illustrations/manual_slice.svg +0 -221
- tomwer/resources/gui/illustrations/psi_angle.png +0 -0
- tomwer/resources/gui/illustrations/psi_angle.svg +0 -479
- tomwer/resources/gui/illustrations/rotation_center.png +0 -0
- tomwer/resources/gui/illustrations/rotation_center.svg +0 -276
- tomwer/resources/gui/illustrations/slice_stack.png +0 -0
- tomwer/resources/gui/illustrations/slice_stack.svg +0 -266
- tomwer/resources/gui/illustrations/xy_slice.png +0 -0
- tomwer/resources/gui/illustrations/xy_slice.svg +0 -269
- tomwer/resources/gui/illustrations/xz_slice.png +0 -0
- tomwer/resources/gui/illustrations/xz_slice.svg +0 -270
- tomwer/resources/gui/illustrations/yz_slice.png +0 -0
- tomwer/resources/gui/illustrations/yz_slice.svg +0 -270
- tomwer/synctools/stacks/reconstruction/lamino.py +0 -233
- /tomwer-1.3.0.dev2-py3.11-nspkg.pth → /tomwer-1.3.0rc10-py3.11-nspkg.pth +0 -0
- {tomwer-1.3.0.dev2.dist-info → tomwer-1.3.0rc10.dist-info}/LICENSE +0 -0
- {tomwer-1.3.0.dev2.dist-info → tomwer-1.3.0rc10.dist-info}/entry_points.txt +0 -0
- {tomwer-1.3.0.dev2.dist-info → tomwer-1.3.0rc10.dist-info}/namespace_packages.txt +0 -0
- {tomwer-1.3.0.dev2.dist-info → tomwer-1.3.0rc10.dist-info}/top_level.txt +0 -0
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 tomoscan.io import HDF5File
|
38
|
+
from tomoscan.io import HDF5File, get_swmr_mode
|
39
39
|
|
40
40
|
|
41
41
|
class _BaseReader(contextlib.AbstractContextManager):
|
@@ -60,7 +60,9 @@ class EntryReader(_BaseReader):
|
|
60
60
|
"""Context manager used to read a bliss node"""
|
61
61
|
|
62
62
|
def __enter__(self):
|
63
|
-
self._file_handler = HDF5File(
|
63
|
+
self._file_handler = HDF5File(
|
64
|
+
filename=self._url.file_path(), mode="r", swmr=get_swmr_mode()
|
65
|
+
)
|
64
66
|
entry = self._file_handler[self._url.data_path()]
|
65
67
|
if not isinstance(entry, h5py.Group):
|
66
68
|
raise ValueError("Data path should point to a bliss node (h5py.Group)")
|
@@ -71,7 +73,9 @@ class DatasetReader(_BaseReader):
|
|
71
73
|
"""Context manager used to read a bliss node"""
|
72
74
|
|
73
75
|
def __enter__(self):
|
74
|
-
self._file_handler = HDF5File(
|
76
|
+
self._file_handler = HDF5File(
|
77
|
+
filename=self._url.file_path(), mode="r", swmr=get_swmr_mode()
|
78
|
+
)
|
75
79
|
entry = self._file_handler[self._url.data_path()]
|
76
80
|
if not isinstance(entry, h5py.Dataset):
|
77
81
|
raise ValueError("Data path should point to a dtaset (h5py.Dataset)")
|
tomwer/io/utils/utils.py
CHANGED
@@ -39,7 +39,7 @@ import numpy.lib.npyio
|
|
39
39
|
from PIL import Image
|
40
40
|
from tomoscan.esrf import has_glymur
|
41
41
|
from tomoscan.esrf.scan.utils import get_data as tomoscan_get_data
|
42
|
-
from tomoscan.io import HDF5File
|
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 HDF5File(abs_file_path, mode="r") as h5f:
|
204
|
+
with HDF5File(abs_file_path, mode="r", swmr=get_swmr_mode()) 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 HDF5File(abs_file_path, mode="r") as h5f:
|
255
|
+
with HDF5File(abs_file_path, mode="r", swmr=get_swmr_mode()) as h5f:
|
256
256
|
dataset = h5f[dataset_path]
|
257
257
|
if dataset.is_virtual:
|
258
258
|
for vs_info in dataset.virtual_sources():
|
@@ -14,7 +14,7 @@
|
|
14
14
|
id="svg2985"
|
15
15
|
version="1.1"
|
16
16
|
inkscape:version="0.48.5 r10040"
|
17
|
-
sodipodi:docname="
|
17
|
+
sodipodi:docname="parameters.svg"
|
18
18
|
inkscape:export-filename="/nobackup/linazimov/payno/dev/esrf/ID06/id06workflow/resources/gui/icons/input.png"
|
19
19
|
inkscape:export-xdpi="200"
|
20
20
|
inkscape:export-ydpi="200">
|
@@ -142,18 +142,23 @@ class _DarkFlatPatchProcessingThread(ProcessingThread, SuperviseProcess):
|
|
142
142
|
for key in keys:
|
143
143
|
if isinstance(configuration_to_dump[key], DataUrl):
|
144
144
|
configuration_to_dump[key] = configuration_to_dump[key].path()
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
145
|
+
|
146
|
+
with self._scan.acquire_process_file_lock():
|
147
|
+
|
148
|
+
try:
|
149
|
+
darkflatpatch.DarkFlatPatchTask._register_process(
|
150
|
+
process_file=self._scan.process_file,
|
151
|
+
entry=entry,
|
152
|
+
configuration=configuration_to_dump,
|
153
|
+
results={},
|
154
|
+
process=darkflatpatch.DarkFlatPatchTask,
|
155
|
+
process_index=index,
|
156
|
+
overwrite=True,
|
157
|
+
)
|
158
|
+
except Exception as e:
|
159
|
+
_logger.warning(
|
160
|
+
f"Fail to register DarkFlatPatch process. Reason is {e}"
|
161
|
+
)
|
157
162
|
info = f"Dark-flat patched for {self._scan}."
|
158
163
|
_logger.processSucceed(info)
|
159
164
|
ProcessManager().notify_dataset_state(
|
tomwer/tests/test_scripts.py
CHANGED
@@ -79,9 +79,6 @@ class TestScriptsHelp(unittest.TestCase):
|
|
79
79
|
"intensity-normalization", "tomwer.app.intensitynormalization"
|
80
80
|
)
|
81
81
|
|
82
|
-
def testLamino(self):
|
83
|
-
self.executeAppHelp("lamino", "tomwer.app.lamino")
|
84
|
-
|
85
82
|
def testMulticor(self):
|
86
83
|
self.executeAppHelp("multicor", "tomwer.app.multicor")
|
87
84
|
|
@@ -0,0 +1,110 @@
|
|
1
|
+
from typing import Optional
|
2
|
+
from silx.gui.widgets.WaitingPushButton import WaitingPushButton
|
3
|
+
from silx.gui import qt
|
4
|
+
from silx.gui.qt import inspect as qt_inspect
|
5
|
+
from silx.gui.plot import PlotWidget
|
6
|
+
|
7
|
+
|
8
|
+
class WaitingOverlay(qt.QWidget):
|
9
|
+
"""Widget overlaying another widget with a processing wheel icon.
|
10
|
+
|
11
|
+
:param parent: widget on top of which to display the "processing/waiting wheel"
|
12
|
+
"""
|
13
|
+
|
14
|
+
def __init__(self, parent: qt.QWidget) -> None:
|
15
|
+
super().__init__(parent)
|
16
|
+
self.setContentsMargins(0, 0, 0, 0)
|
17
|
+
|
18
|
+
self._waitingButton = WaitingPushButton(self)
|
19
|
+
self._waitingButton.setDown(True)
|
20
|
+
self._waitingButton.setWaiting(True)
|
21
|
+
self._waitingButton.setStyleSheet(
|
22
|
+
"QPushButton { background-color: rgba(150, 150, 150, 40); border: 0px; border-radius: 10px; }"
|
23
|
+
)
|
24
|
+
self._registerParent(parent)
|
25
|
+
|
26
|
+
def text(self) -> str:
|
27
|
+
"""Returns displayed text"""
|
28
|
+
return self._waitingButton.text()
|
29
|
+
|
30
|
+
def setText(self, text: str):
|
31
|
+
"""Set displayed text"""
|
32
|
+
self._waitingButton.setText(text)
|
33
|
+
self._resize()
|
34
|
+
|
35
|
+
def _listenedWidget(self, parent: qt.QWidget) -> qt.QWidget:
|
36
|
+
"""Returns widget to register event filter to according to parent"""
|
37
|
+
if isinstance(parent, PlotWidget):
|
38
|
+
return parent.getWidgetHandle()
|
39
|
+
return parent
|
40
|
+
|
41
|
+
def _backendChanged(self):
|
42
|
+
self._listenedWidget(self.parent()).installEventFilter(self)
|
43
|
+
self._resizeLater()
|
44
|
+
|
45
|
+
def _registerParent(self, parent: Optional[qt.QWidget]):
|
46
|
+
if parent is None:
|
47
|
+
return
|
48
|
+
self._listenedWidget(parent).installEventFilter(self)
|
49
|
+
if isinstance(parent, PlotWidget):
|
50
|
+
parent.sigBackendChanged.connect(self._backendChanged)
|
51
|
+
self._resize()
|
52
|
+
|
53
|
+
def _unregisterParent(self, parent: Optional[qt.QWidget]):
|
54
|
+
if parent is None:
|
55
|
+
return
|
56
|
+
if isinstance(parent, PlotWidget):
|
57
|
+
parent.sigBackendChanged.disconnect(self._backendChanged)
|
58
|
+
self._listenedWidget(parent).removeEventFilter(self)
|
59
|
+
|
60
|
+
def setParent(self, parent: qt.QWidget):
|
61
|
+
self._unregisterParent(self.parent())
|
62
|
+
super().setParent(parent)
|
63
|
+
self._registerParent(parent)
|
64
|
+
|
65
|
+
def showEvent(self, event: qt.QShowEvent):
|
66
|
+
super().showEvent(event)
|
67
|
+
self._waitingButton.setVisible(True)
|
68
|
+
|
69
|
+
def hideEvent(self, event: qt.QHideEvent):
|
70
|
+
super().hideEvent(event)
|
71
|
+
self._waitingButton.setVisible(False)
|
72
|
+
|
73
|
+
def _resize(self):
|
74
|
+
if not qt_inspect.isValid(self):
|
75
|
+
return # For _resizeLater in case the widget has been deleted
|
76
|
+
|
77
|
+
parent = self.parent()
|
78
|
+
if parent is None:
|
79
|
+
return
|
80
|
+
|
81
|
+
size = self._waitingButton.sizeHint()
|
82
|
+
if isinstance(parent, PlotWidget):
|
83
|
+
offset = parent.getWidgetHandle().mapTo(parent, qt.QPoint(0, 0))
|
84
|
+
left, top, width, height = parent.getPlotBoundsInPixels()
|
85
|
+
rect = qt.QRect(
|
86
|
+
qt.QPoint(
|
87
|
+
int(offset.x() + left + width / 2 - size.width() / 2),
|
88
|
+
int(offset.y() + top + height / 2 - size.height() / 2),
|
89
|
+
),
|
90
|
+
size,
|
91
|
+
)
|
92
|
+
else:
|
93
|
+
position = parent.size()
|
94
|
+
position = (position - size) / 2
|
95
|
+
rect = qt.QRect(qt.QPoint(position.width(), position.height()), size)
|
96
|
+
self.setGeometry(rect)
|
97
|
+
self.raise_()
|
98
|
+
|
99
|
+
def _resizeLater(self):
|
100
|
+
qt.QTimer.singleShot(0, self._resize)
|
101
|
+
|
102
|
+
def eventFilter(self, watched: qt.QWidget, event: qt.QEvent):
|
103
|
+
if event.type() == qt.QEvent.Resize:
|
104
|
+
self._resize()
|
105
|
+
self._resizeLater() # Defer resize for the receiver to have handled it
|
106
|
+
return super().eventFilter(watched, event)
|
107
|
+
|
108
|
+
# expose Waiting push button API
|
109
|
+
def setIconSize(self, size):
|
110
|
+
self._waitingButton.setIconSize(size)
|
File without changes
|
tomwer/version.py
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: tomwer
|
3
|
-
Version: 1.3.
|
3
|
+
Version: 1.3.0rc10
|
4
4
|
Summary: "tomography workflow tools"
|
5
5
|
Home-page: https://gitlab.esrf.fr/tomotools/tomwer
|
6
6
|
Author: data analysis unit
|
@@ -24,16 +24,16 @@ License-File: LICENSE
|
|
24
24
|
Requires-Dist: numpy
|
25
25
|
Requires-Dist: setuptools
|
26
26
|
Requires-Dist: psutil
|
27
|
-
Requires-Dist: silx
|
28
|
-
Requires-Dist: tomoscan
|
29
|
-
Requires-Dist: nxtomo
|
30
|
-
Requires-Dist: nxtomomill
|
31
|
-
Requires-Dist: processview
|
32
|
-
Requires-Dist: ewoks
|
33
|
-
Requires-Dist: sluurp
|
27
|
+
Requires-Dist: silx[full] >=2.0
|
28
|
+
Requires-Dist: tomoscan >=2.0.0a11
|
29
|
+
Requires-Dist: nxtomo >=1.2.3rc1
|
30
|
+
Requires-Dist: nxtomomill >=1.0dev
|
31
|
+
Requires-Dist: processview >=1.3
|
32
|
+
Requires-Dist: ewoks >=0.1.1
|
33
|
+
Requires-Dist: sluurp >=0.3.3
|
34
34
|
Requires-Dist: packaging
|
35
35
|
Requires-Dist: flufl-lock
|
36
|
-
Requires-Dist: pyunitsystem
|
36
|
+
Requires-Dist: pyunitsystem >=1.1.0
|
37
37
|
Provides-Extra: _dev_spec
|
38
38
|
Requires-Dist: black ; extra == '_dev_spec'
|
39
39
|
Requires-Dist: flake8 ; extra == '_dev_spec'
|
@@ -42,11 +42,11 @@ Requires-Dist: pyopencl ; extra == '_dev_spec'
|
|
42
42
|
Provides-Extra: _full_base
|
43
43
|
Requires-Dist: orange-canvas-core ; extra == '_full_base'
|
44
44
|
Requires-Dist: orange-widget-base ; extra == '_full_base'
|
45
|
-
Requires-Dist: ewoks[orange]
|
45
|
+
Requires-Dist: ewoks[orange] >=0.1.1 ; extra == '_full_base'
|
46
46
|
Requires-Dist: rsyncmanager ; extra == '_full_base'
|
47
47
|
Requires-Dist: graypy ; extra == '_full_base'
|
48
48
|
Requires-Dist: fabio ; extra == '_full_base'
|
49
|
-
Requires-Dist: h5py
|
49
|
+
Requires-Dist: h5py >=3 ; extra == '_full_base'
|
50
50
|
Requires-Dist: lxml ; extra == '_full_base'
|
51
51
|
Requires-Dist: werkzeug ; extra == '_full_base'
|
52
52
|
Requires-Dist: json-rpc ; extra == '_full_base'
|
@@ -60,11 +60,11 @@ Requires-Dist: pyicat-plus ; extra == '_full_base'
|
|
60
60
|
Provides-Extra: dev
|
61
61
|
Requires-Dist: orange-canvas-core ; extra == 'dev'
|
62
62
|
Requires-Dist: orange-widget-base ; extra == 'dev'
|
63
|
-
Requires-Dist: ewoks[orange]
|
63
|
+
Requires-Dist: ewoks[orange] >=0.1.1 ; extra == 'dev'
|
64
64
|
Requires-Dist: rsyncmanager ; extra == 'dev'
|
65
65
|
Requires-Dist: graypy ; extra == 'dev'
|
66
66
|
Requires-Dist: fabio ; extra == 'dev'
|
67
|
-
Requires-Dist: h5py
|
67
|
+
Requires-Dist: h5py >=3 ; extra == 'dev'
|
68
68
|
Requires-Dist: lxml ; extra == 'dev'
|
69
69
|
Requires-Dist: werkzeug ; extra == 'dev'
|
70
70
|
Requires-Dist: json-rpc ; extra == 'dev'
|
@@ -75,7 +75,7 @@ Requires-Dist: resource ; extra == 'dev'
|
|
75
75
|
Requires-Dist: tifffile ; extra == 'dev'
|
76
76
|
Requires-Dist: hdf5plugin ; extra == 'dev'
|
77
77
|
Requires-Dist: pyicat-plus ; extra == 'dev'
|
78
|
-
Requires-Dist: nabu[full]
|
78
|
+
Requires-Dist: nabu[full] >=2023.3.1dev ; extra == 'dev'
|
79
79
|
Requires-Dist: pycuda ; extra == 'dev'
|
80
80
|
Requires-Dist: scikit-cuda ; extra == 'dev'
|
81
81
|
Requires-Dist: black ; extra == 'dev'
|
@@ -85,11 +85,11 @@ Requires-Dist: pyopencl ; extra == 'dev'
|
|
85
85
|
Provides-Extra: dev_no_cuda
|
86
86
|
Requires-Dist: orange-canvas-core ; extra == 'dev_no_cuda'
|
87
87
|
Requires-Dist: orange-widget-base ; extra == 'dev_no_cuda'
|
88
|
-
Requires-Dist: ewoks[orange]
|
88
|
+
Requires-Dist: ewoks[orange] >=0.1.1 ; extra == 'dev_no_cuda'
|
89
89
|
Requires-Dist: rsyncmanager ; extra == 'dev_no_cuda'
|
90
90
|
Requires-Dist: graypy ; extra == 'dev_no_cuda'
|
91
91
|
Requires-Dist: fabio ; extra == 'dev_no_cuda'
|
92
|
-
Requires-Dist: h5py
|
92
|
+
Requires-Dist: h5py >=3 ; extra == 'dev_no_cuda'
|
93
93
|
Requires-Dist: lxml ; extra == 'dev_no_cuda'
|
94
94
|
Requires-Dist: werkzeug ; extra == 'dev_no_cuda'
|
95
95
|
Requires-Dist: json-rpc ; extra == 'dev_no_cuda'
|
@@ -100,7 +100,7 @@ Requires-Dist: resource ; extra == 'dev_no_cuda'
|
|
100
100
|
Requires-Dist: tifffile ; extra == 'dev_no_cuda'
|
101
101
|
Requires-Dist: hdf5plugin ; extra == 'dev_no_cuda'
|
102
102
|
Requires-Dist: pyicat-plus ; extra == 'dev_no_cuda'
|
103
|
-
Requires-Dist: nabu
|
103
|
+
Requires-Dist: nabu >=2023.3.1dev ; extra == 'dev_no_cuda'
|
104
104
|
Requires-Dist: black ; extra == 'dev_no_cuda'
|
105
105
|
Requires-Dist: flake8 ; extra == 'dev_no_cuda'
|
106
106
|
Requires-Dist: timeout-decorator ; extra == 'dev_no_cuda'
|
@@ -108,11 +108,11 @@ Requires-Dist: pyopencl ; extra == 'dev_no_cuda'
|
|
108
108
|
Provides-Extra: doc
|
109
109
|
Requires-Dist: orange-canvas-core ; extra == 'doc'
|
110
110
|
Requires-Dist: orange-widget-base ; extra == 'doc'
|
111
|
-
Requires-Dist: ewoks[orange]
|
111
|
+
Requires-Dist: ewoks[orange] >=0.1.1 ; extra == 'doc'
|
112
112
|
Requires-Dist: rsyncmanager ; extra == 'doc'
|
113
113
|
Requires-Dist: graypy ; extra == 'doc'
|
114
114
|
Requires-Dist: fabio ; extra == 'doc'
|
115
|
-
Requires-Dist: h5py
|
115
|
+
Requires-Dist: h5py >=3 ; extra == 'doc'
|
116
116
|
Requires-Dist: lxml ; extra == 'doc'
|
117
117
|
Requires-Dist: werkzeug ; extra == 'doc'
|
118
118
|
Requires-Dist: json-rpc ; extra == 'doc'
|
@@ -123,21 +123,22 @@ Requires-Dist: resource ; extra == 'doc'
|
|
123
123
|
Requires-Dist: tifffile ; extra == 'doc'
|
124
124
|
Requires-Dist: hdf5plugin ; extra == 'doc'
|
125
125
|
Requires-Dist: pyicat-plus ; extra == 'doc'
|
126
|
-
Requires-Dist: nabu
|
127
|
-
Requires-Dist: Sphinx
|
126
|
+
Requires-Dist: nabu >=2023.3.1dev ; extra == 'doc'
|
127
|
+
Requires-Dist: Sphinx >=4.0.0 ; extra == 'doc'
|
128
128
|
Requires-Dist: nbsphinx ; extra == 'doc'
|
129
129
|
Requires-Dist: pandoc ; extra == 'doc'
|
130
130
|
Requires-Dist: jupyterlab ; extra == 'doc'
|
131
131
|
Requires-Dist: pydata-sphinx-theme ; extra == 'doc'
|
132
132
|
Requires-Dist: sphinx-design ; extra == 'doc'
|
133
|
+
Requires-Dist: sphinx-autodoc-typehints ; extra == 'doc'
|
133
134
|
Provides-Extra: full
|
134
135
|
Requires-Dist: orange-canvas-core ; extra == 'full'
|
135
136
|
Requires-Dist: orange-widget-base ; extra == 'full'
|
136
|
-
Requires-Dist: ewoks[orange]
|
137
|
+
Requires-Dist: ewoks[orange] >=0.1.1 ; extra == 'full'
|
137
138
|
Requires-Dist: rsyncmanager ; extra == 'full'
|
138
139
|
Requires-Dist: graypy ; extra == 'full'
|
139
140
|
Requires-Dist: fabio ; extra == 'full'
|
140
|
-
Requires-Dist: h5py
|
141
|
+
Requires-Dist: h5py >=3 ; extra == 'full'
|
141
142
|
Requires-Dist: lxml ; extra == 'full'
|
142
143
|
Requires-Dist: werkzeug ; extra == 'full'
|
143
144
|
Requires-Dist: json-rpc ; extra == 'full'
|
@@ -148,17 +149,17 @@ Requires-Dist: resource ; extra == 'full'
|
|
148
149
|
Requires-Dist: tifffile ; extra == 'full'
|
149
150
|
Requires-Dist: hdf5plugin ; extra == 'full'
|
150
151
|
Requires-Dist: pyicat-plus ; extra == 'full'
|
151
|
-
Requires-Dist: nabu[full]
|
152
|
+
Requires-Dist: nabu[full] >=2023.3.1dev ; extra == 'full'
|
152
153
|
Requires-Dist: pycuda ; extra == 'full'
|
153
154
|
Requires-Dist: scikit-cuda ; extra == 'full'
|
154
155
|
Provides-Extra: full_no_cuda
|
155
156
|
Requires-Dist: orange-canvas-core ; extra == 'full_no_cuda'
|
156
157
|
Requires-Dist: orange-widget-base ; extra == 'full_no_cuda'
|
157
|
-
Requires-Dist: ewoks[orange]
|
158
|
+
Requires-Dist: ewoks[orange] >=0.1.1 ; extra == 'full_no_cuda'
|
158
159
|
Requires-Dist: rsyncmanager ; extra == 'full_no_cuda'
|
159
160
|
Requires-Dist: graypy ; extra == 'full_no_cuda'
|
160
161
|
Requires-Dist: fabio ; extra == 'full_no_cuda'
|
161
|
-
Requires-Dist: h5py
|
162
|
+
Requires-Dist: h5py >=3 ; extra == 'full_no_cuda'
|
162
163
|
Requires-Dist: lxml ; extra == 'full_no_cuda'
|
163
164
|
Requires-Dist: werkzeug ; extra == 'full_no_cuda'
|
164
165
|
Requires-Dist: json-rpc ; extra == 'full_no_cuda'
|
@@ -169,15 +170,15 @@ Requires-Dist: resource ; extra == 'full_no_cuda'
|
|
169
170
|
Requires-Dist: tifffile ; extra == 'full_no_cuda'
|
170
171
|
Requires-Dist: hdf5plugin ; extra == 'full_no_cuda'
|
171
172
|
Requires-Dist: pyicat-plus ; extra == 'full_no_cuda'
|
172
|
-
Requires-Dist: nabu
|
173
|
+
Requires-Dist: nabu >=2023.3.1dev ; extra == 'full_no_cuda'
|
173
174
|
Provides-Extra: full_no_nabu
|
174
175
|
Requires-Dist: orange-canvas-core ; extra == 'full_no_nabu'
|
175
176
|
Requires-Dist: orange-widget-base ; extra == 'full_no_nabu'
|
176
|
-
Requires-Dist: ewoks[orange]
|
177
|
+
Requires-Dist: ewoks[orange] >=0.1.1 ; extra == 'full_no_nabu'
|
177
178
|
Requires-Dist: rsyncmanager ; extra == 'full_no_nabu'
|
178
179
|
Requires-Dist: graypy ; extra == 'full_no_nabu'
|
179
180
|
Requires-Dist: fabio ; extra == 'full_no_nabu'
|
180
|
-
Requires-Dist: h5py
|
181
|
+
Requires-Dist: h5py >=3 ; extra == 'full_no_nabu'
|
181
182
|
Requires-Dist: lxml ; extra == 'full_no_nabu'
|
182
183
|
Requires-Dist: werkzeug ; extra == 'full_no_nabu'
|
183
184
|
Requires-Dist: json-rpc ; extra == 'full_no_nabu'
|
@@ -190,10 +191,10 @@ Requires-Dist: hdf5plugin ; extra == 'full_no_nabu'
|
|
190
191
|
Requires-Dist: pyicat-plus ; extra == 'full_no_nabu'
|
191
192
|
Provides-Extra: setup_requires
|
192
193
|
Requires-Dist: setuptools ; extra == 'setup_requires'
|
193
|
-
Requires-Dist: numpy
|
194
|
+
Requires-Dist: numpy >=1.12 ; extra == 'setup_requires'
|
194
195
|
Provides-Extra: test
|
195
196
|
Requires-Dist: pytest-asyncio ; extra == 'test'
|
196
|
-
Requires-Dist: tomoscan[test]
|
197
|
+
Requires-Dist: tomoscan[test] >=2.0.2rc17 ; extra == 'test'
|
197
198
|
|
198
199
|
tomwer
|
199
200
|
======
|