Properly implemnt skip check on check

This commit is contained in:
Hernan Grecco
2017-06-27 22:13:02 -03:00
parent 68585ea5e5
commit 5d38ff0729

View File

@@ -201,7 +201,7 @@ def check(ureg, *args):
:raises:
:class:`DimensionalityError` if the parameters don't match dimensions
"""
dimensions = [ureg.get_dimensionality(dim) for dim in args]
dimensions = [ureg.get_dimensionality(dim) if dim is not None else None for dim in args]
def decorator(func):
assigned = tuple(attr for attr in functools.WRAPPER_ASSIGNMENTS if hasattr(func, attr))
@@ -210,8 +210,12 @@ def check(ureg, *args):
@functools.wraps(func, assigned=assigned, updated=updated)
def wrapper(*values, **kwargs):
for dim, value in zip_longest(dimensions, values):
if dim is None:
continue
val_dim = ureg.get_dimensionality(value)
if dim is not None and val_dim != dim:
if val_dim != dim:
raise DimensionalityError(value, 'a quantity of',
val_dim, dim)
return func(*values, **kwargs)