Skip to content

Module that has all basic methods to work with numeric intervals.

License

Notifications You must be signed in to change notification settings

dyaroshevych/numeric_sets

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

numeric_sets

Allows you to perform all operations on sets of numeric intervals.

Usage example

Import classes from the main module of the package into your Python script.

from numeric_sets.main import Interval, NumericSet

main.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 description

Interval class

get_formatted

Returns formatted interval as a string.

my_interval = Interval(2, 5, is_start_inclusive=True)

my_interval.get_formatted()
Return

Interval as a formatted string.

is_overlapping

Determines 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)
Arguments
  • interval a numeric interval
Return

True if intervals overlap, False otherweise.

is_almost_overlapping

my_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.

Arguments
  • interval a numeric interval
Return

True if intervals almost overlap, False otherweise.

includes

Determines 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)
Arguments
  • point a numeric point
Return

True if the interval includes the given point, False otherweise.

copy

Copies the interval.

my_interval_1 = Interval(2, 5)
my_interval_2 = my_interval_1.copy()
Return

A 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)
Arguments
  • interval_1 a numeric interval
  • interval_2 a numeric interval
Return

Difference 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)
Arguments
  • interval_1 a numeric interval
  • interval_2 a numeric interval
Return

Intersection 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)
Arguments
  • interval_1 a numeric interval
  • interval_2 a numeric interval
Return

Union of two given intervals.

NumericSet methods

get_left_intervals

Constructs 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))
Arguments
  • interval a numeric interval
Return

A list of intervals to the left from the interval.

get_right_intervals

Constructs 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))
Arguments
  • interval a numeric interval
Return

A list of intervals to the right from the interval.

add

Adds a numeric interval to the set.

myset = NumericSet()

myset.add(Interval(3, 5))
myset.add(Interval(10, 12))
Arguments
  • interval a numeric interval

clear

Clears the set from all numeric intervals.

myset = NumericSet()

myset.add(Interval(3, 5))
myset.add(Interval(10, 12))

myset.clear()

copy

Copies the numeric set.

myset = NumericSet()

myset.add(Interval(3, 5))
myset.add(Interval(10, 12))

copy = myset.copy()
Return

A copy of the numric set.

difference

Constructs 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)
Arguments
  • numeric_set a numeric set
Return

The difference between the set and the given set.

difference_update

Constructs 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)
Arguments
  • numeric_set a numeric set

intersection

Constructs 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)
Arguments
  • numeric_set a numeric set
Return

The intersection of the set and the given set.

intersection_update

Constructs 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)
Arguments
  • numeric_set a numeric set

issubset

Determines 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)
Arguments
  • numeric_set a numeric set
Return

True if the interval is a subset of the given interval, False otherweise.

issuperset

Determines 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)
Arguments
  • numeric_set a numeric set
Return

True if the interval is a superset of the given interval, False otherweise.

pop

Removes the rightmost interval if such exists.

myset = NumericSet([Interval(3, 5), Interval(10, 12)])

last_interval = myset.pop()
Return

The rightmost interval if such exists, None otherwise.

remove

Removes a numeric interval from the numeric set.

myset = NumericSet([Interval(3, 5), Interval(10, 12)])

myset.remove(Interval(2, 4))
Arguments
  • interval a numeric interval

symmetric_difference

Constructs 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)
Arguments
  • numeric_set a numeric set
Return

The symmetric difference of the set and the given set.

symmetric_difference_update

Constructs 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)
Arguments
  • numeric_set a numeric set

union

Constructs 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)
Arguments
  • numeric_set a numeric set
Return

The union of the set and the given set.

update

Constructs 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)
Arguments
  • numeric_set a numeric set

is_empty

Determines whether a set of intervals is empty.

myset = NumericSet([Interval(3, 5))])

is_empty = myset_1.is_empty()
Return

True if the set is empty, False otherweise.

save

Saves a set of numeric intervals in the given file.

myset = NumericSet([Interval(3, 5))])

myset_1.save('myset_1.txt')
Arguments
  • filename the name of the file

read [static]

Reads a set of numerical intervals from the given file.

myset = NumericSet.read('myset_1.txt')
Arguments
  • filename the name of the file

Meta

Dmytro Yaroshevych – dyaroshevych@gmail.com

Distributed under the MIT license. See LICENSE for more information.

https://github.com/dyaroshevych/numeric_sets

Contributing

  1. Fork it (https://github.com/dyaroshevych/numeric_sets/fork)
  2. Create your feature branch (git checkout -b feature/fooBar)
  3. Commit your changes (git commit -am 'Add some fooBar')
  4. Push to the branch (git push origin feature/fooBar)
  5. Create a new Pull Request

About

Module that has all basic methods to work with numeric intervals.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages