def clean_semver(cls, version_spec):
        return re.sub(r"([<>=~])\s+?v?", "\\1", version_spec, re.IGNORECASE)
def __init__(self, choices=None, optional=False):
        super().__init__(
            minimum=0, maximum=2 ** 16 - 1, choices=choices, optional=optional
        )