def match(self, v2):

        try:
            error = abs(float(self.v1) - float(v2))
            within_tolerance = error <= self.tolerance
        except (ValueError, TypeError):
            # If both values aren't convertible to float, just ignore
            # ValueError if arg is a str, TypeError if it's something else
            # (like None)
            within_tolerance = False

        if hasattr(self.v1, 'keys') and hasattr(v2, 'keys'):
            matcher = DictMatches(self.v1, self.approx_equal, self.tolerance,
                                  self.orderless_lists)
            did_match = matcher.match(v2)
            if did_match is not None:
                return did_match
        elif isinstance(self.v1, list) and isinstance(v2, list):
            matcher = ListMatches(self.v1, self.approx_equal, self.tolerance,
                                  self.orderless_lists)
            did_match = matcher.match(v2)
            if did_match is not None:
                return did_match
        elif 'DONTCARE' in (self.v1, v2):
            return
        elif self.approx_equal and within_tolerance:
            return
        elif self.v1 != v2:
            return ValueMismatch(self.v1, v2)
Imports an object based on a string.  This is useful if you want to
dataset/ETHPy150Open openstack/ec2-api/ec2api/tests/unit/matchers.py/ValueMatches.match--crossover with--dataset/ETHPy150Open tarekziade/boom/boom/util.py/resolve_name