kenjutsu.measure module¶
-
exception
kenjutsu.measure.
UnknownSliceLengthException
[source]¶ Bases:
exceptions.Exception
Raised if a slice does not have a known length.
-
kenjutsu.measure.
len_slice
(a_slice, a_length=None)[source]¶ Determines how many elements a slice will contain.
Raises: UnknownSliceLengthException
– Will raise an exception if- a_slice.stop and a_length is None.
Parameters: - a_slice (slice) – a slice to reformat.
- a_length (int) – a length to fill for stopping if not provided.
Returns: - a new slice with as many values filled in as
possible.
Return type: (slice)
Examples
>>> len_slice(slice(2, None), 10) 8
>>> len_slice(slice(2, 6)) 4
-
kenjutsu.measure.
len_slices
(slices, lengths=None)[source]¶ Takes a tuple of slices and reformats them to fill in as many undefined values as possible.
Parameters: - slices (tuple(slice)) – a tuple of slices to reformat.
- lengths (tuple(int)) – a tuple of lengths to fill.
Returns: - a tuple of slices with all default
values filled if possible.
Return type: (slice)
Examples
>>> len_slices( ... ( ... slice(None), ... slice(3, None), ... slice(None, 5), ... slice(None, None, 2) ... ), ... (10, 13, 15, 20) ... ) (10, 10, 5, 10)