1
2
3
4
5
6
7
8
9 from nltk_lite.contrib.classifier.exceptions import systemerror as se
10 DELTA = 0.000001
11
13 - def __init__(self, lower = 0, upper = 0, upper_includes_max=False):
14 """
15 any number within this range should be greater than or equal to self.lower and
16 less than (or less than equal to depending on whether it includes the max) self.upper
17 """
18 self.__delta_added = False
19 if upper < lower:
20 raise se.SystemError('Lower limit ' + str(lower) + ' cannot be greater than the Upper limit ' + str(upper) + ' in a range')
21 self.__uninitialized = False
22 if upper == lower == 0:
23 self.__uninitialized = True
24 self.lower, self.upper, self.__delta_added = lower, upper, False
25 if upper_includes_max:
26 self.upper += DELTA
27 self.__delta_added = True
28
30 if self.__uninitialized:
31 self.lower, self.upper = number, number
32 self.__uninitialized = False
33 if number >= self.upper:
34 self.__delta_added = True
35 self.upper = number + DELTA
36 elif number < self.lower:
37 self.lower = number
38
40 return self.lower <= number and self.upper > number
41
58
60 if other is None: return False
61 if self.__class__ != other.__class__ : return False
62 if self.lower == other.lower and self.upper == other.upper: return True
63 return False
64
67
70