diff --git a/dali/python/nvidia/dali/data_node.py b/dali/python/nvidia/dali/data_node.py index 8556778d23..76145d4106 100644 --- a/dali/python/nvidia/dali/data_node.py +++ b/dali/python/nvidia/dali/data_node.py @@ -152,6 +152,7 @@ def __getitem__(self, val): # returns True if this index adds a new output dimension def process_index(idx, dim): if idx is None: + print("DUPA!") idxs.append((None, None, None, None)) return True elif isinstance(idx, slice): @@ -164,6 +165,10 @@ def process_index(idx, dim): if idx.name is not None: new_axis_names.append(idx.name) return True + elif idx is Ellipsis: + raise NotImplementedError("Ellipsis in indexing is not implemented") + elif isinstance(idx, (float, str)): + raise TypeError("Invalid type for an index: ", type) else: idxs.append((idx, None, None, None)) return False diff --git a/dali/test/python/test_dali_cpu_only.py b/dali/test/python/test_dali_cpu_only.py index 88f827f634..f309214f58 100644 --- a/dali/test/python/test_dali_cpu_only.py +++ b/dali/test/python/test_dali_cpu_only.py @@ -89,9 +89,9 @@ def get_data(): pipe.set_outputs(outs) assert_raises(RuntimeError, pipe.build) -#def test_gpu_op_bad_device(): -# for device_id in [None, 0]: -# yield check_bad_device, device_id +def test_gpu_op_bad_device(): + for device_id in [None, 0]: + yield check_bad_device, device_id def check_mixed_op_bad_device(device_id): pipe = Pipeline(batch_size=batch_size, num_threads=4, device_id=device_id) @@ -100,9 +100,9 @@ def check_mixed_op_bad_device(device_id): pipe.set_outputs(decoded) assert_raises(RuntimeError, pipe.build) -#def test_mixed_op_bad_device(): -# for device_id in [None, 0]: -# yield check_bad_device, device_id +def test_mixed_op_bad_device(): + for device_id in [None, 0]: + yield check_bad_device, device_id def test_image_decoder_cpu(): pipe = Pipeline(batch_size=batch_size, num_threads=4, device_id=None) diff --git a/dali/test/python/test_operator_subscript.py b/dali/test/python/test_operator_subscript.py index 52d05be338..6cf32abc48 100644 --- a/dali/test/python/test_operator_subscript.py +++ b/dali/test/python/test_operator_subscript.py @@ -172,3 +172,16 @@ def _test_too_many_indices(device): def test_too_many_indices(): for device in ["cpu", "gpu"]: yield _test_too_many_indices, device + +def test_stride_not_implemented(): + data = [np.uint8([1,2,3]),np.uint8([1,2])] + src = fn.external_source(lambda: data) + src[::1] + with assert_raises(NotImplementedError): + src[::2] + +def test_ellipsis_not_implemented(): + data = [np.uint8([1,2,3]),np.uint8([1,2])] + src = fn.external_source(lambda: data) + with assert_raises(NotImplementedError): + src[...,:1]