get_uncertainty(name=DEFAULT, direction=None, default=None)
        Returns the *absolute* up and down variaton in a 2-tuple for an uncertainty *name*. When
        *direction* is set, the particular value is returned instead of a 2-tuple. In case no
        uncertainty was found and *default* is given, that value is returned.

def get_uncertainty(self, name=DEFAULT, direction=None, **kwargs):
        """ get_uncertainty(name=DEFAULT, direction=None, default=None)
        Returns the *absolute* up and down variaton in a 2-tuple for an uncertainty *name*. When
        *direction* is set, the particular value is returned instead of a 2-tuple. In case no
        uncertainty was found and *default* is given, that value is returned.
        """
        if direction not in (None, self.UP, self.DOWN):
            raise ValueError("unknown direction: {}".format(direction))

        unc = self.uncertainties.get(name, *kwargs.values())

        if direction is None:
            return unc
        else:
            return unc[0 if direction == self.UP else 1]