Вот очень простой пример, в стремлении украсить метод класса с использованием пинты,Невозможно украсить метод класса, используя единицы пинты
from pint import UnitRegistry
ureg = UnitRegistry()
Q_ = ureg.Quantity
class Simple:
def __init__(self):
pass
@ureg.wraps('m/s', (None, 'm/s'), True)
def calculate(self, a, b):
return a*b
if __name__ == "__main__":
c = Simple().calculate(1, Q_(10, 'm/s'))
print c
Этого код приводит ниже ValueError.
Traceback (most recent call last):
c = Simple().calculate(1, Q_(10, 'm/s'))
File "build/bdist.macosx-10.11-intel/egg/pint/registry_helpers.py", line 167, in wrapper
File "build/bdist.macosx-10.11-intel/egg/pint/registry_helpers.py", line 118, in _converter
ValueError: A wrapped function using strict=True requires quantity for all arguments with not None units. (error found for m/s, 1)
Мне кажется, что проблема здесь в том, что экземпляры классов передаются в декоратор пинты. У кого-нибудь есть решение для этого?