Ravenports generated: 13 Oct 2023 04:56
[ravenports.git] / bucket_7A / python-intervaltree
1 # Buildsheet autogenerated by ravenadm tool -- Do not edit.
2
3 NAMEBASE=               python-intervaltree
4 VERSION=                3.1.0
5 KEYWORDS=               python
6 VARIANTS=               v11 v12
7 SDESC[v11]=             Editable interval tree data structure (3.11)
8 SDESC[v12]=             Editable interval tree data structure (3.12)
9 HOMEPAGE=               https://github.com/chaimleib/intervaltree
10 CONTACT=                Python_Automaton[python@ironwolf.systems]
11
12 DOWNLOAD_GROUPS=        main
13 SITES[main]=            PYPI/i/intervaltree
14 DISTFILE[1]=            intervaltree-3.1.0.tar.gz:main
15 DF_INDEX=               1
16 SPKGS[v11]=             single
17 SPKGS[v12]=             single
18
19 OPTIONS_AVAILABLE=      PY311 PY312
20 OPTIONS_STANDARD=       none
21 VOPTS[v11]=             PY311=ON PY312=OFF
22 VOPTS[v12]=             PY311=OFF PY312=ON
23
24 DISTNAME=               intervaltree-3.1.0
25
26 GENERATED=              yes
27
28 [PY311].BUILDRUN_DEPENDS_ON=            python-sortedcontainers:single:v11
29 [PY311].USES_ON=                        python:v11,sutools
30
31 [PY312].BUILDRUN_DEPENDS_ON=            python-sortedcontainers:single:v12
32 [PY312].USES_ON=                        python:v12,sutools
33
34 [FILE:2780:descriptions/desc.single]
35 [![Build status badge][]][build status]
36
37 intervaltree
38 ============
39
40 A mutable, self-balancing interval tree for Python 2 and 3. Queries may be
41 by point, by range overlap, or by range envelopment.
42
43 This library was designed to allow tagging text and time intervals, where
44 the intervals include the lower bound but not the upper bound.
45
46 **Version 3 changes!**
47
48 * The `search(begin, end, strict)` method no longer exists. Instead, use
49 one of these:
50     * `at(point)`
51     * `overlap(begin, end)`
52     * `envelop(begin, end)`
53 * The `extend(items)` method no longer exists. Instead, use
54 `update(items)`.
55 * Methods like `merge_overlaps()` which took a `strict` argument
56 consistently default to `strict=True`. Before, some methods defaulted to
57 `True` and others to `False`.
58
59 Installing
60 ----------
61
62 `sh
63 pip install intervaltree
64 `
65
66 Features
67 --------
68
69 * Supports Python 2.7 and Python 3.5+ (Tested under 2.7, and 3.5 thru 3.8)
70 * Initializing
71     * blank `tree = IntervalTree()`
72     * from an iterable of `Interval` objects (`tree =
73 IntervalTree(intervals)`)
74     * from an iterable of tuples (`tree =
75 IntervalTree.from_tuples(interval_tuples)`)
76
77 * Insertions
78     * `tree[begin:end] = data`
79     * `tree.add(interval)`
80     * `tree.addi(begin, end, data)`
81
82 * Deletions
83     * `tree.remove(interval)`             (raises `ValueError` if not
84 present)
85     * `tree.discard(interval)`            (quiet if not present)
86     * `tree.removei(begin, end, data)`    (short for
87 `tree.remove(Interval(begin, end, data))`)
88     * `tree.discardi(begin, end, data)`   (short for
89 `tree.discard(Interval(begin, end, data))`)
90     * `tree.remove_overlap(point)`
91     * `tree.remove_overlap(begin, end)`   (removes all overlapping the
92 range)
93     * `tree.remove_envelop(begin, end)`   (removes all enveloped in the
94 range)
95
96 * Point queries
97     * `tree[point]`
98     * `tree.at(point)`                    (same as previous)
99
100 * Overlap queries
101     * `tree[begin:end]`
102     * `tree.overlap(begin, end)`          (same as previous)
103
104 * Envelop queries
105     * `tree.envelop(begin, end)`
106
107 * Membership queries
108     * `interval_obj in tree`              (this is fastest, O(1))
109     * `tree.containsi(begin, end, data)`
110     * `tree.overlaps(point)`
111     * `tree.overlaps(begin, end)`
112
113 * Iterable
114     * `for interval_obj in tree:`
115     * `tree.items()`
116
117 * Sizing
118     * `len(tree)`
119     * `tree.is_empty()`
120     * `not tree`
121     * `tree.begin()`          (the `begin` coordinate of the leftmost
122 interval)
123     * `tree.end()`            (the `end` coordinate of the rightmost
124 interval)
125
126 * Set-like operations
127     * union
128         * `result_tree = tree.union(iterable)`
129         * `result_tree = tree1 | tree2`
130         * `tree.update(iterable)`
131         * `tree |= other_tree`
132
133     * difference
134         * `result_tree = tree.difference(iterable)`
135
136
137 [FILE:104:distinfo]
138 902b1b88936918f9b2a19e0e5eb7ccb430ae45cde4f39ea4b36932920d33952d        32861 intervaltree-3.1.0.tar.gz
139