Package: numeric-sets-dyaroshevych
numeric_setsAllows you to perform all operations on sets of numeric intervals.Usage exampleImport classes from the main module of the package into your Python script.fromnumeric_sets.mainimportInterval,NumericSetmain.main()Feel free to perform any operation!myset_1=NumericSet()myset_1.add(Interval(2,4,True,True))# [2, 4]myset_1.add(Interval(5,7))# (5, 7)myset_1.add(Interval(8,10,is_end_inclusive=True))# (8, 10]myset_2=NumericSet()myset_2.add(Interval(2,5))# (2, 5)myset_2.add(Interval(6,9))# (6, 9)union=myset_1.union(myset_2)# [2, 5) + (5, 10]Methods descriptionInterval classget_formattedReturns formatted interval as a string.my_interval=Interval(2,5,is_start_inclusive=True)my_interval.get_formatted()ReturnInterval as a formatted string.is_overlappingDetermines whether the interval overlaps with the given interval.my_interval_1=Interval(2,5)my_interval_2=Interval(4,8)my_interval_1.is_overlapping(my_interval_2)Argumentsintervala numeric intervalReturnTrue if intervals overlap, False otherweise.is_almost_overlappingmy_interval_1=Interval(2,5)my_interval_2=Interval(4,8)my_interval_1.is_almost_overlapping(my_interval_2)Determines whether the interval almost overlaps with the given interval.Argumentsintervala numeric intervalReturnTrue if intervals almost overlap, False otherweise.includesDetermines whether the interval includes the given point.my_interval_1=Interval(2,5)my_interval_2=Interval(4,8)my_interval_1.includes(my_interval_2)Argumentspointa numeric pointReturnTrue if the interval includes the given point, False otherweise.copyCopies the interval.my_interval_1=Interval(2,5)my_interval_2=my_interval_1.copy()ReturnA copy of the interval.difference[static]Returns the difference between two given intervals.my_interval_1=Interval(2,5)my_interval_2=Interval(4,8)diff=Interval.difference(my_interval_1,my_interval_2)Argumentsinterval_1a numeric intervalinterval_2a numeric intervalReturnDifference between two given intervals.intersection[static]Returns the intersection of two given intervals.my_interval_1=Interval(2,5)my_interval_2=Interval(4,8)intersection=Interval.intersection(my_interval_1,my_interval_2)Argumentsinterval_1a numeric intervalinterval_2a numeric intervalReturnIntersection of two given intervals.union[static]Returns the union of two given intervals.my_interval_1=Interval(2,5)my_interval_2=Interval(4,8)union=Interval.union(my_interval_1,my_interval_2)Argumentsinterval_1a numeric intervalinterval_2a numeric intervalReturnUnion of two given intervals.NumericSet methodsget_left_intervalsConstructs a list of intervals to the left from the interval.myset=NumericSet([Interval(3,5),Interval(10,12)])left=myset.get_left_intervals((6,8))Argumentsintervala numeric intervalReturnA list of intervals to the left from the interval.get_right_intervalsConstructs a list of intervals to the right from the interval.myset=NumericSet([Interval(3,5),Interval(10,12)])right=myset.get_right_intervals((6,8))Argumentsintervala numeric intervalReturnA list of intervals to the right from the interval.addAdds a numeric interval to the set.myset=NumericSet()myset.add(Interval(3,5))myset.add(Interval(10,12))Argumentsintervala numeric intervalclearClears the set from all numeric intervals.myset=NumericSet()myset.add(Interval(3,5))myset.add(Interval(10,12))myset.clear()copyCopies the numeric set.myset=NumericSet()myset.add(Interval(3,5))myset.add(Interval(10,12))copy=myset.copy()ReturnA copy of the numric set.differenceConstructs a set representing the difference between the set and the given set.myset_1=NumericSet([Interval(3,5),Interval(10,12)])myset_2=NumericSet([Interval(2,4),Interval(11,15)])diff=myset_1.difference(myset_2)Argumentsnumeric_seta numeric setReturnThe difference between the set and the given set.difference_updateConstructs a set representing the difference between the set and the given set and updates the set.myset_1=NumericSet([Interval(3,5),Interval(10,12)])myset_2=NumericSet([Interval(2,4),Interval(11,15)])myset_1.difference_update(myset_2)Argumentsnumeric_seta numeric setintersectionConstructs a set representing the intersection of the set and the given set.myset_1=NumericSet([Interval(3,5),Interval(10,12)])myset_2=NumericSet([Interval(2,4),Interval(11,15)])intersection=myset_1.intersection(myset_2)Argumentsnumeric_seta numeric setReturnThe intersection of the set and the given set.intersection_updateConstructs a set representing the intersection of the set and the given set and updates the set.myset_1=NumericSet([Interval(3,5),Interval(10,12)])myset_2=NumericSet([Interval(2,4),Interval(11,15)])myset_1.intersection_update(myset_2)Argumentsnumeric_seta numeric setissubsetDetermines whether the set is a subset of the given set.myset_1=NumericSet([Interval(3,5),Interval(10,12)])myset_2=NumericSet([Interval(2,4)])is_subset=myset_2.is_subset(myset_1)Argumentsnumeric_seta numeric setReturnTrue if the interval is a subset of the given interval, False otherweise.issupersetDetermines whether the set is a superset of the given set.myset_1=NumericSet([Interval(3,5),Interval(10,12)])myset_2=NumericSet([Interval(2,4)])is_superset=myset_1.is_superset(myset_2)Argumentsnumeric_seta numeric setReturnTrue if the interval is a superset of the given interval, False otherweise.popRemoves the rightmost interval if such exists.myset=NumericSet([Interval(3,5),Interval(10,12)])last_interval=myset.pop()ReturnThe rightmost interval if such exists, None otherwise.removeRemoves a numeric interval from the numeric set.myset=NumericSet([Interval(3,5),Interval(10,12)])myset.remove(Interval(2,4))Argumentsintervala numeric intervalsymmetric_differenceConstructs a set representing the symmetric difference of two sets.myset_1=NumericSet([Interval(3,5),Interval(10,12)])myset_2=NumericSet([Interval(2,4),Interval(11,15)])symmetric_diff=myset_1.symmetric_difference(myset_2)Argumentsnumeric_seta numeric setReturnThe symmetric difference of the set and the given set.symmetric_difference_updateConstructs a set representing the symmetric difference of the set and the given set and updates the set.myset_1=NumericSet([Interval(3,5),Interval(10,12)])myset_2=NumericSet([Interval(2,4),Interval(11,15)])myset_1.symmetric_difference_update(myset_2)Argumentsnumeric_seta numeric setunionConstructs a set representing the union of two sets.myset_1=NumericSet([Interval(3,5),Interval(10,12)])myset_2=NumericSet([Interval(2,4),Interval(11,15)])union=myset_1.union(myset_2)Argumentsnumeric_seta numeric setReturnThe union of the set and the given set.updateConstructs a set representing the union of the set and the given set and updates the set.myset_1=NumericSet([Interval(3,5),Interval(10,12)])myset_2=NumericSet([Interval(2,4),Interval(11,15)])myset_1.update(myset_2)Argumentsnumeric_seta numeric setis_emptyDetermines whether a set of intervals is empty.myset=NumericSet([Interval(3,5))])is_empty=myset_1.is_empty()ReturnTrue if the set is empty, False otherweise.saveSaves a set of numeric intervals in the given file.myset=NumericSet([Interval(3,5))])myset_1.save('myset_1.txt')Argumentsfilenamethe name of the fileread[static]Reads a set of numerical intervals from the given file.myset=NumericSet.read('myset_1.txt')Argumentsfilenamethe name of the fileMetaDmytro Yaroshevych –dyaroshevych@gmail.comDistributed under the MIT license. SeeLICENSEfor more information.https://github.com/dyaroshevych/numeric_setsContributingFork it (https://github.com/dyaroshevych/numeric_sets/fork)Create your feature branch (git checkout -b feature/fooBar)Commit your changes (git commit -am 'Add some fooBar')Push to the branch (git push origin feature/fooBar)Create a new Pull Request