(cls, version_string)
| 355 | |
| 356 | @classmethod |
| 357 | def parse(cls, version_string): |
| 358 | if version_string.lower() in cls.LNAMES: |
| 359 | return cls.from_name(version_string) |
| 360 | vstr = ( |
| 361 | version_string.decode() |
| 362 | if isinstance(version_string, bytes) |
| 363 | else version_string |
| 364 | ) |
| 365 | match = cls.git_describe_regex.match(vstr) |
| 366 | if not match: |
| 367 | raise ValueError(f"Unable to parse version string: '{version_string}'") |
| 368 | return cls(*match.groups()) |
| 369 | |
| 370 | @classmethod |
| 371 | def from_name(cls, name): |