Changes since 0.2.0: + Renamed Interval.__add__ to Interval.join * Changed parameter names for Interval.__init__ and added default values * Changed BaseIntervalSet.__contains__ so that it no longer does a subset test * Modified BaseIntervalSet.__issubset__ so that it only operates on other BaseIntervalSets * Modified IntervalSet.remove so that it only removes intervals, sets, or discrete values * Modified IntervalSet.update so that it operates on another BaseIntervalSet operand only * Modified IntervalSet.intersection_update so that it operates on another BaseIntervalSet operand only * Modified IntervalSet.difference_update so that it only operates with a BaseIntervalSet instance * Modified IntervalSet.symmetric_difference_update so that it uses only IntervalSets as operands * Modified add so that it no longer recursively adds IntervalSets * Modified remove so that it no longer recursively removes IntervalSets * Modified | and + so that only IntervalSet operands are used * Modified symmetric_difference so it operates on IntervalSets only * Modified union so it only operates on IntervalSets * Modified & and intersection so they only operates on IntervalSets * Modified - so it only operates on IntervalSets * Modified ^ so it only operates on IntervalSets + Added BaseIntervalSet support for len(s). It returns the number of intervals in the BaseIntervalSet. * Modified BaseIntervalSet.__init__ to take an iterable object instead of an arbitrary number of arguments * Modified union, intersection, difference, symmetric_difference, issubset, and issuperset to accept any iterable object * Modified update, intersection_update, difference_update, and symmetric_difference_update to accept any iterable object * Fixed bug where a < b and b > a returns true if a == b Changes since 0.1: * iset module was renamed to interval * ISet class was renamed to IntervalSet + Added BaseIntervalSet and FrozenIntervalSet + Added the Smallest and Largest classes + Added the constant inf * Moved ne, lt, le, gt, ge, incInterval, exInterval, and between to better-named class methods * Moved all and empty to classmethods in BaseIntervalSet - Removed eq + Added all as classmethod to Interval - Removed Interval.__cmp__ + Added Interval.comesBefore * Renamed Interval.lbound to Interval.min * Renamed Interval.linc to Interval.mininc * Renamed Interval.ubound to Interval.max * Renamed Interval.uinc to Interval.maxinc + Added __hash__ functions + Added BaseIntervalSet.__lt__ + Added BaseIntervalSet.issubset + Added BaseIntervalSet.issuperset + Added BaseIntervalSet.union + Added BaseIntervalSet.intersection + Added BaseIntervalSet.difference + Added BaseIntervalSet.symmetric_difference + Added BaseIntervalSet.copy + Added IntervalSet.update + Added IntervalSet.intersection_update + Added IntervalSet.difference_update + Added IntervalSet.symmetric_difference_update + Added IntervalSet.discard + Added IntervalSet.pop + Added IntervalSet.__iter__ + Added IntervalSet.clear * Renamed IntervalSet.append to IntervalSet.add + Added IntervalSet.remove