Install & Compatibility
Where this runs
tested against v1.2.2 · pip install
no network on importno background threads
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
muslpy 3.10–3.95 runs
installs and imports cleanly · install 0.0s · import 0.016s · 18.3MB
glibcpy 3.10–3.95 runs
installs and imports cleanly · install 1.6s · import 0.016s · 19MB
16MB installed
● package 16MB
Code
Verified usage
Verified import paths — ran on the pinned version, not inferred.
Range
✓ from ranges import Range
Directly from ranges package.
RangeSet
✓ from ranges import RangeSet
Collection of non-overlapping ranges.
RangeDict
✓ from ranges import RangeDict
Mapping from ranges to values.
Basic usage of Range, RangeSet, and RangeDict.
from ranges import Range, RangeSet, RangeDict
# Create a Range
r = Range(1, 5) # [1, 5)
print(r) # Range(1, 5)
# Check membership
print(3 in r) # True
print(5 in r) # False
# Intersection, union
r2 = Range(3, 7) # [3, 7)
print(r & r2) # Range(3, 5)
print(r | r2) # RangeSet(Range(1, 7))
# RangeSet
rs = RangeSet(r, Range(10, 15))
print(rs) # RangeSet(Range(1, 5), Range(10, 15))
# RangeDict
rd = RangeDict({Range(0, 10): 'low', Range(10, 20): 'high'})
print(rd[5]) # 'low'
Errors
Common errors & fixes
ValueError: Cannot create Range with start > end
Attempting to create Range(5, 1) where start > end.
fixEnsure start <= end, e.g., Range(1, 5).
TypeError: unhashable type: 'slice'
Using slice objects (e.g., my_dict[1:5]) when Range objects are expected.
fixReplace slice with Range: my_dict[Range(1, 5)].
Upgrade
Version history
1.2.2latest on PyPI · released Feb 15, 2023
Audit
Dependencies
No dependency data recorded yet.