Refactor NumberRange
This commit is contained in:
@@ -46,22 +46,23 @@ class NumberRange(object):
|
|||||||
self.upper = parse_number(upper)
|
self.upper = parse_number(upper)
|
||||||
self.lower_inc = self.upper_inc = True
|
self.lower_inc = self.upper_inc = True
|
||||||
else:
|
else:
|
||||||
if isinstance(args[0], six.integer_types):
|
arg, = args
|
||||||
self.lower = self.upper = args[0]
|
if isinstance(arg, six.integer_types):
|
||||||
|
self.lower = self.upper = arg
|
||||||
self.lower_inc = self.upper_inc = True
|
self.lower_inc = self.upper_inc = True
|
||||||
elif isinstance(args[0], six.string_types):
|
elif isinstance(arg, six.string_types):
|
||||||
if ',' not in args[0]:
|
if ',' not in arg:
|
||||||
self.lower, self.upper = self.parse_range(args[0])
|
self.lower, self.upper = self.parse_range(arg)
|
||||||
self.lower_inc = self.upper_inc = True
|
self.lower_inc = self.upper_inc = True
|
||||||
else:
|
else:
|
||||||
self.from_range_with_bounds(args[0])
|
self.from_range_with_bounds(arg)
|
||||||
elif hasattr(args[0], 'lower') and hasattr(args[0], 'upper'):
|
elif hasattr(arg, 'lower') and hasattr(arg, 'upper'):
|
||||||
self.lower = args[0].lower
|
self.lower = arg.lower
|
||||||
self.upper = args[0].upper
|
self.upper = arg.upper
|
||||||
if not args[0].lower_inc:
|
if not arg.lower_inc:
|
||||||
self.lower += 1
|
self.lower += 1
|
||||||
|
|
||||||
if not args[0].upper_inc:
|
if not arg.upper_inc:
|
||||||
self.upper -= 1
|
self.upper -= 1
|
||||||
|
|
||||||
def from_range_with_bounds(self, value):
|
def from_range_with_bounds(self, value):
|
||||||
@@ -70,15 +71,15 @@ class NumberRange(object):
|
|||||||
|
|
||||||
Example ::
|
Example ::
|
||||||
|
|
||||||
range = NumberRange.from_normalized_str('[23, 45]')
|
range = NumberRange('[23, 45]')
|
||||||
range.lower = 23
|
range.lower = 23
|
||||||
range.upper = 45
|
range.upper = 45
|
||||||
|
|
||||||
range = NumberRange.from_normalized_str('(23, 45]')
|
range = NumberRange('(23, 45]')
|
||||||
range.lower = 24
|
range.lower = 24
|
||||||
range.upper = 45
|
range.upper = 45
|
||||||
|
|
||||||
range = NumberRange.from_normalized_str('(23, 45)')
|
range = NumberRange('(23, 45)')
|
||||||
range.lower = 24
|
range.lower = 24
|
||||||
range.upper = 44
|
range.upper = 44
|
||||||
"""
|
"""
|
||||||
|
Reference in New Issue
Block a user