Skip to content

Commit 8de91a1

Browse files
Merge pull request #504 from MarcCote/doc_lazy_tractogram
MRG: Clarified error messages in LazyTractogram Clarifies what "generator function" means in relevant error messages. It also makes sure all values contained in a LazyDict object are callable.
2 parents ca977ab + 531842e commit 8de91a1

File tree

2 files changed

+11
-3
lines changed

2 files changed

+11
-3
lines changed

nibabel/streamlines/tests/test_tractogram.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -778,6 +778,8 @@ def test_lazy_tractogram_creation(self):
778778
# generators get exhausted and are not reusable unlike generator
779779
# function.
780780
assert_raises(TypeError, LazyTractogram, streamlines)
781+
assert_raises(TypeError, LazyTractogram,
782+
data_per_point={"none": None})
781783
assert_raises(TypeError, LazyTractogram,
782784
data_per_streamline=data_per_streamline)
783785
assert_raises(TypeError, LazyTractogram, DATA['streamlines'],

nibabel/streamlines/tractogram.py

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -209,8 +209,11 @@ def __getitem__(self, key):
209209
return self.store[key]()
210210

211211
def __setitem__(self, key, value):
212-
if value is not None and not callable(value): # TODO: why None?
213-
raise TypeError("`value` must be a generator function or None.")
212+
if not callable(value):
213+
msg = ("Values in a `LazyDict` must be generator functions."
214+
" These are functions which, when called, return an"
215+
" instantiated generator.")
216+
raise TypeError(msg)
214217
self.store[key] = value
215218

216219
def __delitem__(self, key):
@@ -682,7 +685,10 @@ def _apply_affine():
682685

683686
def _set_streamlines(self, value):
684687
if value is not None and not callable(value):
685-
raise TypeError("`streamlines` must be a generator function.")
688+
msg = ("`streamlines` must be a generator function. That is a"
689+
" function which, when called, returns an instantiated"
690+
" generator.")
691+
raise TypeError(msg)
686692
self._streamlines = value
687693

688694
@property

0 commit comments

Comments
 (0)