def clean_semver(cls, version_spec):
        return re.sub(r"([<>=~])\s+?v?", "\\1", version_spec, re.IGNORECASE)
def __init__(self, name: str, get_converter: t.Optional[t.Callable] = None) -> None:
        self.__name__ = name
        self.get_converter = get_converter