Lines Matching defs:RangeSet
19 __all__ = ["RangeSet"]
21 class RangeSet(object):
22 """A RangeSet represents a set of nonoverlapping ranges on the
57 return '<RangeSet("' + self.to_string() + '")>'
64 individual blocks. Returns a RangeSet object.
67 RangeSet will have an extra attribute 'monotonic' that is set to
130 """Return a new RangeSet representing the union of this RangeSet
133 >>> RangeSet("10-19 30-34").union(RangeSet("18-29"))
134 <RangeSet("10-34")>
135 >>> RangeSet("10-19 30-34").union(RangeSet("22 32"))
136 <RangeSet("10-19 22 30-34")>
145 return RangeSet(data=out)
148 """Return a new RangeSet representing the intersection of this
149 RangeSet with the argument.
151 >>> RangeSet("10-19 30-34").intersect(RangeSet("18-32"))
152 <RangeSet("18-19 30-32")>
153 >>> RangeSet("10-19 30-34").intersect(RangeSet("22-28"))
154 <RangeSet("")>
163 return RangeSet(data=out)
166 """Return a new RangeSet representing subtracting the argument
167 from this RangeSet.
169 >>> RangeSet("10-19 30-34").subtract(RangeSet("18-32"))
170 <RangeSet("10-17 33-34")>
171 >>> RangeSet("10-19 30-34").subtract(RangeSet("22-28"))
172 <RangeSet("10-19 30-34")>
182 return RangeSet(data=out)
186 RangeSet.
188 >>> RangeSet("10-19 30-34").overlaps(RangeSet("18-32"))
190 >>> RangeSet("10-19 30-34").overlaps(RangeSet("22-28"))
205 """Returns the total size of the RangeSet (ie, how many integers
208 >>> RangeSet("10-19 30-34").size()
221 """'other' should be a subset of 'self'. Returns a RangeSet
225 >>> RangeSet("0-9").map_within(RangeSet("3-4"))
226 <RangeSet("3-4")>
227 >>> RangeSet("10-19").map_within(RangeSet("13-14"))
228 <RangeSet("3-4")>
229 >>> RangeSet("10-19 30-39").map_within(RangeSet("17-19 30-32"))
230 <RangeSet("7-12")>
231 >>> RangeSet("10-19 30-39").map_within(RangeSet("12-13 17-19 30-32"))
232 <RangeSet("2-3 7-12")>
247 return RangeSet(data=out)
250 """Extend the RangeSet by 'n' blocks.
254 >>> RangeSet("0-9").extend(1)
255 <RangeSet("0-10")>
256 >>> RangeSet("10-19").extend(15)
257 <RangeSet("0-34")>
258 >>> RangeSet("10-19 30-39").extend(4)
259 <RangeSet("6-23 26-43")>
260 >>> RangeSet("10-19 30-39").extend(10)
261 <RangeSet("0-49")>
268 out = out.union(RangeSet(str(s1) + "-" + str(e1-1)))
272 """Return the RangeSet that contains at most the first 'n' integers.
274 >>> RangeSet("0-9").first(1)
275 <RangeSet("0")>
276 >>> RangeSet("10-19").first(5)
277 <RangeSet("10-14")>
278 >>> RangeSet("10-19").first(15)
279 <RangeSet("10-19")>
280 >>> RangeSet("10-19 30-39").first(3)
281 <RangeSet("10-12")>
282 >>> RangeSet("10-19 30-39").first(15)
283 <RangeSet("10-19 30-34")>
284 >>> RangeSet("10-19 30-39").first(30)
285 <RangeSet("10-19 30-39")>
286 >>> RangeSet("0-9").first(0)
287 <RangeSet("")>
301 return RangeSet(data=out)