def valid(self):
    if (not self.value):
        return True
    try:
        value = makeSemVer(self.value)
    except ValueError:
        return False
    try:
        semver.VersionInfo.parse(value)
    except ValueError as e:
        return str(e)
    return True
def valid(self):
    if (not self.value):
        return True
    try:
        value = makeSemVer(self.value)
    except ValueError:
        return False
    try:
        semver.VersionInfo.parse(value)
    except ValueError as e:
        return str(e)
    return True