semvec/pypi-packages huggingface dataset:
quicksect 0.2.2
fast, simple interval intersection

Quicksect
=========

.. image:: https://img.shields.io/badge/install%20with-bioconda-brightgreen.png
    :target: http://bioconda.github.io/recipes/quicksect/README.html

Description
-----------


Quicksect is a fast python / cython implementation of interval search based on the pure python version in 
`bx-python <http://bx-python.trac.bx.psu.edu/>`__ 
I pulled it out, optimized and converted to cython and James Taylor has incoporated it back into bx-python
with his improvements.

I have brought this project back from the dead because I want a fast, simple, no-dependencies Interval
tree.


License is MIT.

Installation
------------

    pip install quicksect

or

    conda install -c bioconda quicksect

Use
---
    >>> from quicksect import IntervalNode, Interval, IntervalTree

Most common use will be via IntervalTree:

    >>> tree = IntervalTree()
    >>> tree.add(23, 45)
    >>> tree.add(55, 66)
    >>> tree.search(46, 47)
    []
    >>> tree.search(44, 56)
    [Interval(55, 66), Interval(23, 45)]

    >>> tree.insert(Interval(88, 444))
    >>> res = tree.find(Interval(99, 100))
    >>> res
    [Interval(88, 444)]
    >>> res[0].start, res[0].end
    (88, 444)

Thats pretty much everything you need to know about the tree.


Test
----

$ python setup.py test

Low-Level
+++++++++

In some cases, users may want to utilize the lower-level interface that accesses
the nodes of the tree:

    >>> inter = IntervalNode(Interval(22, 33))
    >>> inter = inter.insert(Interval(44, 55))
    >>> inter.intersect(24, 26)
    [Interval(22, 33)]

    >>> inter.left(Interval(34, 35), n=1)
    [Interval(22, 33)]

    >>> inter.right(Interval(34, 35), n=1)
    [Interval(44, 55)]