def clean_semver(cls, version_spec):
        return re.sub(r"([<>=~])\s+?v?", "\\1", version_spec, re.IGNORECASE)
def _invert_results(self, candidates):
        inverted_candidates = list(self.directory)

        for candidate in candidates:
            try:
                inverted_candidates.remove(candidate)
            except ValueError:
                pass

        return inverted_candidates