class AbstractExtractedConfig(object):
    """
    Base class to extract relevant parts of the config to facilitate different jobs.
    """

    def matches(self, other):
        if not isinstance(other, self.__class__):
            if other is None:
                return False
            raise NotImplementedError()
        return self._matches(other)

    def _matches(self, other) -> bool:
        raise NotImplementedError()
