(cls, value)
| 38 | |
| 39 | @classmethod |
| 40 | def parse(cls, value): |
| 41 | match = re.search(r'(\d+)\.(\d+).(\d+)(.1|.2)?', value) |
| 42 | if match is None: |
| 43 | raise argparse.ArgumentTypeError('Version argument must be of format x.y.z(.1|.2)?') |
| 44 | parts = [int(v) for v in match.groups()[:-1]] |
| 45 | parts.append({ None: 0, '.1': 1, '.2': 2 }[match.groups()[-1]]) |
| 46 | return Version(*parts) |
| 47 | |
| 48 | def __str__(self): |
| 49 | return self.dot |