Add doc blocks
This commit is contained in:
@@ -37,6 +37,74 @@ def parse_number(number):
|
|||||||
@total_ordering
|
@total_ordering
|
||||||
class NumberRange(object):
|
class NumberRange(object):
|
||||||
def __init__(self, *args):
|
def __init__(self, *args):
|
||||||
|
"""
|
||||||
|
Parses given args and assigns lower and upper bound for this number
|
||||||
|
range.
|
||||||
|
|
||||||
|
1. Comma separated string argument
|
||||||
|
|
||||||
|
::
|
||||||
|
|
||||||
|
|
||||||
|
>>> range = NumberRange('[23, 45]')
|
||||||
|
>>> range.lower
|
||||||
|
23
|
||||||
|
>>> range.upper
|
||||||
|
45
|
||||||
|
|
||||||
|
|
||||||
|
>>> range = NumberRange('(23, 45]')
|
||||||
|
>>> range.lower_inc
|
||||||
|
False
|
||||||
|
|
||||||
|
>>> range = NumberRange('(23, 45)')
|
||||||
|
>>> range.lower_inc
|
||||||
|
False
|
||||||
|
>>> range.upper_inc
|
||||||
|
False
|
||||||
|
|
||||||
|
2. Sequence of arguments
|
||||||
|
|
||||||
|
::
|
||||||
|
|
||||||
|
|
||||||
|
>>> range = NumberRange(23, 45)
|
||||||
|
>>> range.lower
|
||||||
|
23
|
||||||
|
>>> range.upper
|
||||||
|
45
|
||||||
|
|
||||||
|
|
||||||
|
3. Lists and tuples as an argument
|
||||||
|
|
||||||
|
::
|
||||||
|
|
||||||
|
|
||||||
|
>>> range = NumberRange([23, 45])
|
||||||
|
>>> range.lower
|
||||||
|
23
|
||||||
|
>>> range.upper
|
||||||
|
45
|
||||||
|
>>> range.closed
|
||||||
|
True
|
||||||
|
|
||||||
|
|
||||||
|
>>> range = NumberRange((23, 45))
|
||||||
|
>>> range.lower
|
||||||
|
23
|
||||||
|
>>> range.closed
|
||||||
|
False
|
||||||
|
|
||||||
|
4. Integer argument
|
||||||
|
|
||||||
|
::
|
||||||
|
|
||||||
|
|
||||||
|
>>> range = NumberRange(34)
|
||||||
|
>>> range.lower == range.upper == 34
|
||||||
|
True
|
||||||
|
|
||||||
|
"""
|
||||||
if len(args) > 2:
|
if len(args) > 2:
|
||||||
raise NumberRangeException(
|
raise NumberRangeException(
|
||||||
'NumberRange takes at most two arguments'
|
'NumberRange takes at most two arguments'
|
||||||
@@ -83,6 +151,14 @@ class NumberRange(object):
|
|||||||
def open(self):
|
def open(self):
|
||||||
"""
|
"""
|
||||||
Returns whether or not this object is an open interval.
|
Returns whether or not this object is an open interval.
|
||||||
|
|
||||||
|
::
|
||||||
|
|
||||||
|
range = NumberRange('(23, 45)')
|
||||||
|
range.open # True
|
||||||
|
|
||||||
|
range = NumberRange('[23, 45]')
|
||||||
|
range.open # False
|
||||||
"""
|
"""
|
||||||
return not self.lower_inc and not self.upper_inc
|
return not self.lower_inc and not self.upper_inc
|
||||||
|
|
||||||
@@ -90,6 +166,14 @@ class NumberRange(object):
|
|||||||
def closed(self):
|
def closed(self):
|
||||||
"""
|
"""
|
||||||
Returns whether or not this object is a closed interval.
|
Returns whether or not this object is a closed interval.
|
||||||
|
|
||||||
|
::
|
||||||
|
|
||||||
|
range = NumberRange('(23, 45)')
|
||||||
|
range.closed # False
|
||||||
|
|
||||||
|
range = NumberRange('[23, 45]')
|
||||||
|
range.closed # True
|
||||||
"""
|
"""
|
||||||
return self.lower_inc and self.upper_inc
|
return self.lower_inc and self.upper_inc
|
||||||
|
|
||||||
@@ -119,23 +203,6 @@ class NumberRange(object):
|
|||||||
self.lower_inc = self.upper_inc = True
|
self.lower_inc = self.upper_inc = True
|
||||||
|
|
||||||
def parse_bounded_range(self, value):
|
def parse_bounded_range(self, value):
|
||||||
"""
|
|
||||||
Returns new NumberRange object from normalized number range format.
|
|
||||||
|
|
||||||
Example ::
|
|
||||||
|
|
||||||
range = NumberRange('[23, 45]')
|
|
||||||
range.lower = 23
|
|
||||||
range.upper = 45
|
|
||||||
|
|
||||||
range = NumberRange('(23, 45]')
|
|
||||||
range.lower = 24
|
|
||||||
range.upper = 45
|
|
||||||
|
|
||||||
range = NumberRange('(23, 45)')
|
|
||||||
range.lower = 24
|
|
||||||
range.upper = 44
|
|
||||||
"""
|
|
||||||
values = value.strip()[1:-1].split(',')
|
values = value.strip()[1:-1].split(',')
|
||||||
try:
|
try:
|
||||||
lower, upper = map(
|
lower, upper = map(
|
||||||
|
Reference in New Issue
Block a user