diff --git a/sqlalchemy_utils/primitives/number_range.py b/sqlalchemy_utils/primitives/number_range.py index 971fd73..bcfdfd3 100644 --- a/sqlalchemy_utils/primitives/number_range.py +++ b/sqlalchemy_utils/primitives/number_range.py @@ -46,22 +46,23 @@ class NumberRange(object): self.upper = parse_number(upper) self.lower_inc = self.upper_inc = True else: - if isinstance(args[0], six.integer_types): - self.lower = self.upper = args[0] + arg, = args + if isinstance(arg, six.integer_types): + self.lower = self.upper = arg self.lower_inc = self.upper_inc = True - elif isinstance(args[0], six.string_types): - if ',' not in args[0]: - self.lower, self.upper = self.parse_range(args[0]) + elif isinstance(arg, six.string_types): + if ',' not in arg: + self.lower, self.upper = self.parse_range(arg) self.lower_inc = self.upper_inc = True else: - self.from_range_with_bounds(args[0]) - elif hasattr(args[0], 'lower') and hasattr(args[0], 'upper'): - self.lower = args[0].lower - self.upper = args[0].upper - if not args[0].lower_inc: + self.from_range_with_bounds(arg) + elif hasattr(arg, 'lower') and hasattr(arg, 'upper'): + self.lower = arg.lower + self.upper = arg.upper + if not arg.lower_inc: self.lower += 1 - if not args[0].upper_inc: + if not arg.upper_inc: self.upper -= 1 def from_range_with_bounds(self, value): @@ -70,15 +71,15 @@ class NumberRange(object): Example :: - range = NumberRange.from_normalized_str('[23, 45]') + range = NumberRange('[23, 45]') range.lower = 23 range.upper = 45 - range = NumberRange.from_normalized_str('(23, 45]') + range = NumberRange('(23, 45]') range.lower = 24 range.upper = 45 - range = NumberRange.from_normalized_str('(23, 45)') + range = NumberRange('(23, 45)') range.lower = 24 range.upper = 44 """