Cython-wrapped C++ red-black interval tree implementation
Project description
Interval Tree for Python
This is a Cython-wrapped red-black interval tree from IvanPinezhaninov/IntervalTree/.
To install:
pip install rbi-tree
Example usage:
>>> from rbi_tree.tree import ITree
>>> t = ITree()
>>> t.insert(60, 80, value={'a':'b'}) # start stop are integers
>>> t.insert(20, 40)
>>> t.find(10, 30)
[(20, 40, None)]
>>> t.find(40, 60) # half open so it gives nothing
[]
>>> t.find(40, 61)
[(60, 80, {'a': 'b'})]
Class rbi_tree.tree.ITreed supports interval deletion. This is done via
values assigned automatically and serving as IDs for intervals.
>>> from rbi_tree.tree import ITreed
>>> t = ITreed()
>>> id1 = t.insert(60, 80) # start stop are integers
>>> id1
0
>>> id2 = t.insert(20, 40)
>>> id2
1
Ids are incrementing integers starting from zero reflecting number of insertion events.
>>> t.find(10, 30)
[(20, 40, 0)]
Ids of intervals can be used to remove them:
>>> t.remove(1)
>>> t.find(10, 30) # now it finds nothing
[]
>>> t.find_at(70) # search at point
[(60, 80, 0)]
>>> list(t.iter_ivl())
[(60, 80, 0)]
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
rbi_tree-0.2.tar.gz
(89.9 kB
view details)
File details
Details for the file rbi_tree-0.2.tar.gz.
File metadata
- Download URL: rbi_tree-0.2.tar.gz
- Upload date:
- Size: 89.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
322f73424a95b416749592902d797c9f62666c0d69d8c2eab969816635028fa1
|
|
| MD5 |
e7dd9b48d1d2a4300e3784d9d726f041
|
|
| BLAKE2b-256 |
9463b8c486b962c698696c565fef10bccb755179effa9a32654fd9c26e0b3817
|