a Range class implementing compact integer ranges with a set-like API, and associated functions
Project description
A Range is an object resembling a set but optimised for contiguous ranges of int members.
Function overlap(span1, span2)
Return a list [start,end] denoting the overlap of two spans.
Example:
>>> overlap([1,9], [5,13])
[5, 9]
Class Range
A collection of ints that collates adjacent ints.
The interface is as for a set with additional methods:
spans(): return an iterable ofSpans, with.startincluded in eachSpanand.endjust beyond
Additionally, the update/remove/etc methods have a secondary
calling signature: (start,end), which is the same as passing
in Range(start,end) but much more efficient.
Class Span
MRO: Span, builtins.tuple
A namedtuple with .start and .end attributes.
Function spans(items)
Return an iterable of Spans for all contiguous sequences in
items.
Example:
>>> list(spans([1,2,3,7,8,11,5]))
[1:4, 7:9, 11:12, 5:6]
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file cs.range-20190102.tar.gz.
File metadata
- Download URL: cs.range-20190102.tar.gz
- Upload date:
- Size: 5.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.18.4 setuptools/40.0.0 requests-toolbelt/0.8.0 tqdm/4.23.0 CPython/3.6.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c72cd7f78aa889a758f8a50984300d5760dca54485561ebb78be0f818aba10d3
|
|
| MD5 |
9437c4ac84279be5d948ceabbdc4343c
|
|
| BLAKE2b-256 |
53d7dd71c9ca82a154ac013691276ac0066982854594df01d8fd87c89afca5cf
|