'This property is used to indicate what units or sets of units the output
of evaluate should be in, and returns a dictionary mapping outputs to
units (or `None` if any units are accepted).
Model sub-classes can also use function annotations in evaluate to
indicate valid output units, in which case this property should not be
overriden since it will return the return units based on the
annotations.'

@property
def return_units(self):

    if hasattr(self, u'_return_units'):
        return self._return_units
    elif hasattr(self.evaluate, u'__annotations__'):
        return self.evaluate.__annotations__.get(u'return', None)
    else:
        return None
