diff --git a/kenjutsu/format.py b/kenjutsu/format.py index df231aa..e238354 100644 --- a/kenjutsu/format.py +++ b/kenjutsu/format.py @@ -282,4 +282,13 @@ def reformat_slices(slices, lengths=None): new_slices = tuple(new_slices) + n_seqs = sum(map( + lambda i: isinstance(i, collections.Sequence), new_slices + )) + if n_seqs > 1: + raise ValueError( + "Only one integral sequence supported." + " Instead got `%s`." % str(n_seqs) + ) + return(new_slices) diff --git a/tests/test_format.py b/tests/test_format.py index ca2aaa0..6f18903 100644 --- a/tests/test_format.py +++ b/tests/test_format.py @@ -298,6 +298,16 @@ def test_reformat_slices(self): "Only one Ellipsis is permitted. Found multiple." ) + with self.assertRaises(ValueError) as e: + format.reformat_slices( + ([0, 1], [0, 1]), + ) + + self.assertEqual( + str(e.exception), + "Only one integral sequence supported. Instead got `2`." + ) + rf_slice = format.reformat_slices(slice(None)) self.assertEqual( rf_slice,