Skip to content

Commit 0533420

Browse files
committed
More improvements
1 parent d343980 commit 0533420

File tree

4 files changed

+26
-49
lines changed

4 files changed

+26
-49
lines changed

Diff for: pydiq/core.py

+5-4
Original file line numberDiff line numberDiff line change
@@ -118,29 +118,30 @@ def g(name):
118118
study_instance_uid=g("StudyInstanceUID")
119119
)
120120

121-
def add_file(self, f):
121+
def add_file(self, f: "File"):
122122
self.files[f.path] = f
123123

124124
def __str__(self):
125125
return "Series(\"{0}\", \"{1}\", {2} files)".format(self.instance_uid, self.description, len(self.files))
126126

127127
def __iter__(self):
128-
return self.files.values()
128+
return iter(self.files.values())
129129

130130

131131
class File:
132-
def __init__(self, path):
132+
def __init__(self, path: str):
133133
self.path = path
134134
self._data = None
135135

136136
@property
137137
def data(self):
138+
"""Lazy evaluated DICOM file data."""
138139
if not self._data:
139140
self._data = read_file(self.path)
140141
return self._data
141142

142143
def __str__(self):
143-
return "File(\"0\")".format(self.path)
144+
return f"File({self.path})".format(self.path)
144145

145146
@property
146147
def study_instance_uid(self):

Diff for: pydiq/dicom_data.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ def get_slice(self, plane: str, n: int) -> np.ndarray:
6161
raise ValueError(f"Invalid plane identificator {plane} (allowed are 0, 1, 2)")
6262
index = [slice(None, None, None) for i in range(3)]
6363
index[plane] = n
64-
return self._array[index]
64+
return self._array[tuple(index)]
6565

6666
def get_slice_shape(self, plane: str) -> Tuple[int, ...]:
6767
# TODO:

Diff for: pydiq/dicom_widget.py

+20-40
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
1+
from typing import Tuple
2+
13
from qtpy import QtWidgets, QtCore, QtGui
2-
from . import dicom_data
4+
5+
from pydiq.dicom_data import DicomData, AXIAL, ALLOWED_PLANES
36

47

58
class TrackingLabel(QtWidgets.QLabel):
@@ -70,7 +73,7 @@ def __init__(self, parent, **kwargs):
7073
self._scaled_image = None
7174
self._low_hu = kwargs.get("low_hu", -1000)
7275
self._high_hu = kwargs.get("high_hu", 3000)
73-
self._plane = kwargs.get("plane", dicom_data.AXIAL)
76+
self._plane = kwargs.get("plane", AXIAL)
7477
self._slice = kwargs.get("slice", 0)
7578
self._color_table = kwargs.get("color_table", [QtGui.qRgb(i, i, i) for i in range(256)])
7679

@@ -106,35 +109,24 @@ def mouse_xyz(self):
106109
def mouse_ij(self):
107110
pass
108111

109-
def get_coordinates(self, i, j):
110-
"""
111-
112-
:type i: float
113-
:type j: float
114-
:return: tuple(float)
115-
"""
112+
def get_coordinates(self, i: float, j: float) -> Tuple[float, float, float]:
116113
x = self.data.image_position[0] + self.pixel_spacing[0] * i
117114
y = self.image_position[1] + self.pixel_spacing[1] * j
118115
z = self.image_position[2]
119116
return x, y, z
120117

121118
@property
122-
def zoom_level(self):
119+
def zoom_level(self) -> int:
123120
"""Zoom level.
124121
125-
:rtype: int
126-
127122
An integer value useful for the GUI
128123
0 = 1:1, positive values = zoom in, negative values = zoom out
129124
"""
130125
return self._zoom_level
131126

132127
@property
133-
def zoom_factor(self):
134-
"""Real size of data voxel in screen pixels.
135-
136-
:rtype: float
137-
"""
128+
def zoom_factor(self) -> float:
129+
"""Real size of data voxel in screen pixels."""
138130
if self._zoom_level > 0:
139131
return self._zoom_level + 1
140132
else:
@@ -204,26 +196,17 @@ def update_pixmap(self):
204196
self.setText("No image.")
205197

206198
@property
207-
def data(self):
208-
"""
209-
:rtype: dicom_data.DicomData
210-
"""
199+
def data(self) -> DicomData:
211200
return self._data
212201

213202
@data.setter
214-
def data(self, d):
215-
"""
216-
:type d: dicom_data.DicomData
217-
"""
203+
def data(self, d: DicomData):
218204
if self._data != d:
219205
self._data = d
220206
self.data_changed.emit()
221207

222208
@property
223-
def window_center(self):
224-
"""
225-
:rtype: float
226-
"""
209+
def window_center(self) -> float:
227210
return (self._high_hu + self._low_hu) / 2
228211

229212
@window_center.setter
@@ -235,14 +218,11 @@ def window_center(self, value):
235218
self.calibration_changed.emit()
236219

237220
@property
238-
def window_width(self):
239-
"""
240-
:rtype: float
241-
"""
221+
def window_width(self) -> float:
242222
return self._high_hu - self._low_hu
243223

244224
@window_width.setter
245-
def window_width(self, value):
225+
def window_width(self, value: float):
246226
if value < 0:
247227
value = 0
248228
original = self.window_width
@@ -252,31 +232,31 @@ def window_width(self, value):
252232
self.calibration_changed.emit()
253233

254234
@property
255-
def plane(self):
235+
def plane(self) -> int:
256236
return self._plane
257237

258238
@plane.setter
259-
def plane(self, value):
239+
def plane(self, value: int):
260240
if value != self._plane:
261-
if value not in [dicom_data.ALLOWED_PLANES]:
241+
if value not in [ALLOWED_PLANES]:
262242
raise ValueError("Invalid plane identificator")
263243
self._plane = value
264244
self.plane_changed.emit()
265245
self.data_selection_changed.emit()
266246

267247
@property
268-
def slice(self):
248+
def slice(self) -> int:
269249
return self._slice
270250

271251
@slice.setter
272-
def slice(self, n):
252+
def slice(self, n: int):
273253
if n != self._slice:
274254
self._slice = n
275255
self.slice_changed.emit()
276256
self.data_selection_changed.emit()
277257

278258
@property
279-
def slice_count(self):
259+
def slice_count(self) -> int:
280260
if not self._data:
281261
return 0
282262
else:

Diff for: run.py

-4
This file was deleted.

0 commit comments

Comments
 (0)