Range Helpers Module¶
Module: piethorn.collections.range
Overview¶
This module focuses on composing and analyzing Python slices.
combine_slices¶
- combine_slices(slice1, slice2, max_len)¶
Compose
slice1andslice2exactly when the original sequence length is known.from piethorn.collections.range import combine_slices combine_slices(slice(2, 10, 2), slice(1, 3), 20) # slice(4, 8, 2)
SliceMode¶
- class SliceMode¶
Enum describing how dependent a slice is on source sequence length.
The most important entry point is:
classify(s1, s2=None)Return one mode or a three-value tuple describing two slices and their combined mode.
SliceComposeResult¶
- class SliceComposeResult(slice, exact, mode)¶
Dataclass used by
adhoc_combine_slices().Fields¶
sliceThe produced best-effort or exact slice.
exactWhether the result is exact.
modeCombined
SliceMode.
adhoc_combine_slices¶
- adhoc_combine_slices(s1, s2)¶
Best-effort slice composition without knowing source length.
from piethorn.collections.range import adhoc_combine_slices exact = adhoc_combine_slices(slice(None, None, 2), slice(1, 4)) exact.slice exact.exact
is_full_slice and slice_len¶
- is_full_slice(s)¶
- slice_len(slice1, max_len)¶
Helpers for common slice checks.
from piethorn.collections.range import is_full_slice, slice_len is_full_slice(slice(None, None)) slice_len(slice(1, 8, 2), 10)