forked from XeroAPI/xero-python
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbumpversion.py
30 lines (21 loc) · 938 Bytes
/
bumpversion.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# -*- coding: utf-8 -*-
import argparse
import fileinput
import re
SETUP_VERSION = re.compile(r'^(\s*version\s*=\s*")[^"]*("\s*,?\s*)$')
INIT_VERSION = re.compile(r'^(\s*__version__\s*=\s*")[^"]*("\s*)$')
FILES = (("setup.py", SETUP_VERSION), ("xero_python/__init__.py", INIT_VERSION))
def replace_in_file(path, pattern, replacement):
with fileinput.input(path, inplace=True) as file:
for line in file:
print(re.sub(pattern, replacement, line), end="")
def main(version):
replacement = r"\g<1>" + version + r"\g<2>"
for path, pattern in FILES:
replace_in_file(path, pattern, replacement)
print("Bumped version in {!r} to {}".format(path, version))
if __name__ == "__main__":
parser = argparse.ArgumentParser(prog="bumpversion")
parser.add_argument("version", type=str, help="version string to bump version to")
args = parser.parse_args()
main(version=args.version)