A Range is an object resembling a set but optimised for contiguous ranges of int members.
Latest release 20230701: Assorted bugfixes.
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.
Method Range.__init__(self, start=None, end=None, debug=None):
Initialise the Range.
Called with start and end, these specify the initial
Span of the Range.
If called with just one argument that argument instead be an iterable
of integer values comprising the values in the Range.
Class Span(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]
Release Log
Release 20230701: Assorted bugfixes.
Release 20230619:
- Span: sanity check .start and .end.
- Range.issubset: efficient comparison with another Range, also .issuperset.
Release 20230518: Span,Range: new as_list() methods.
Release 20190102: Span: provide len.
Release 20171231:
- Add Range.span0, returning the first Span.
- Implement bool and__nonzero__.
- Accept a Span in contains.
- Some small bugfixes.
Release 20160828:
- Add Range.start like existing Range.end.
- Use "install_requires" instead of "requires" in DISTINFO.
- Small bugfix.
Release 20150116: First PyPI release.
Release files for cs.range 20230701
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| cs.range-20230701.tar.gz | 8.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| cs.range-20230701-py3-none-any.whl | Python 3 | none | any | Details |
Total release size:15.8 kB
Release files / cs.range-20230701.tar.gz
| Download URL | cs.range-20230701.tar.gz |
|---|---|
| Size | 8.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
afe6cb75943fa80d0e84d8ade7b0a8e62a55f32a2a0ac2d9349f6fe9d88ae023
|
|
BLAKE2b-256 checksum How to use checksums |
7f7225c249904759e529c47aab5d3c822ce342afad46ab914c8ef18f4f1d17ac
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.10.6
|
Release files / cs.range-20230701-py3-none-any.whl
| Download URL | cs.range-20230701-py3-none-any.whl |
|---|---|
| Size | 7.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
013607cfa0e3168153c02595fa8cbba364ef376d0e184bfcd8334e0143de3350
|
|
BLAKE2b-256 checksum How to use checksums |
d599c3b4892d99683458f83a744583340820428a7431883a2b7eb3d4e7edfb5f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.10.6
|