11import argparse , re , sys
2- from os import path
2+ from pathlib import Path
33from types import SimpleNamespace as sn
44
55from lib import toml
6- sys .path .insert (0 , path .join (path .dirname (__file__ ), '../src' ))
7- from translate_messages .lib import data , log # type: ignore
6+
7+ paths = sn (root = Path (__file__ ).parent .parent )
8+ paths .pyproject = paths .root / 'pyproject.toml'
9+ paths .readme = paths .root / 'docs' / 'README.md'
10+ sys .path .insert (0 , str (paths .root / 'src' ))
11+
12+ from remove_json_keys .lib import data , log # type: ignore
813
914msgs = sn (
1015 app_DESC = 'Bump versions in pyproject.toml + README.md' ,
@@ -30,20 +35,19 @@ def parse_args():
3035 argp .add_argument ('-h' , '--help' , action = 'help' , help = msgs .help_HELP )
3136 return argp .parse_args ()
3237
33- def init_vers (project , bump_type ): # <prev|new>_ver
38+ def init_vers (project , bump_type ):
3439 prev_ver = project .version
3540 major , minor , patch = map (int , prev_ver .split ('.' ))
36- if bump_type == 'major' : patch = 0 ; minor = 0 ; major += 1
37- elif bump_type == 'minor' : patch = 0 ; minor += 1
41+ if bump_type == 'major' : patch = 0 ; minor = 0 ; major += 1
42+ elif bump_type == 'minor' : patch = 0 ; minor += 1
3843 elif bump_type == 'patch' : patch += 1
3944 new_ver = f'{ major } .{ minor } .{ patch } '
4045 return prev_ver , new_ver
4146
42- def bump_pyproject_vers (pyproject_path , pyproject , project , new_ver ): # project.version + .urls['Releases']
43-
47+ def bump_pyproject_vers (pyproject , project , new_ver ):
4448 # Bump project.version
4549 pyproject ['project' ]['version' ] = new_ver
46- toml .write (pyproject_path , pyproject )
50+ toml .write (paths . pyproject , pyproject )
4751 log .success (msgs .log_BUMPED_PROJECT_VER .format (prev_ver = project .version , ** locals ()))
4852
4953 # Bump project.urls['Releases']
@@ -52,32 +56,28 @@ def bump_pyproject_vers(pyproject_path, pyproject, project, new_ver): # project.
5256 log .data (f'{ msgs .log_GENERATED_CLOG_URL } : { changelog_url } ' )
5357 log .info (f'{ msgs .log_UPDATING_CLOG_URL_IN } pyproject.toml...' )
5458 pyproject ['project' ]['urls' ]['Changelog' ] = changelog_url
55- toml .write (pyproject_path , pyproject )
59+ toml .write (paths . pyproject , pyproject )
5660 log .success (msgs .log_BUMPED_CLOG_URL_VER_TAG .format (** locals ()))
5761
58- def update_readme_vers (new_ver ): # in URLs
62+ def update_readme_vers (new_ver ):
5963 log .info (f'{ msgs .log_UPDATING_VERS_IN } docs/README.md...' )
60- readme_path = path .join (path .dirname (__file__ ), '../docs/README.md' )
61- updated_readme_content = re .sub (r'\b(?>\d{1,3}\.\d{1,3}\.\d{1,3})\b' , new_ver , data .file .read (readme_path ))
62- data .file .write (readme_path , updated_readme_content )
64+ updated_readme_content = re .sub (r'\b(?>\d{1,3}\.\d{1,3}\.\d{1,3})\b' , new_ver , data .file .read (paths .readme ))
65+ data .file .write (paths .readme , updated_readme_content )
6366 log .success (msgs .log_UPDATED_README_VERS .format (** locals ()))
6467
6568def main ():
66-
67- # Parse args
6869 args = parse_args ()
6970 bump_type = 'major' if args .major else 'minor' if args .minor else 'patch' if args .patch else None
70- if not bump_type : log .error (msgs .err_MISSING_BUMP_TYPE_ARG ) ; sys .exit (1 )
71+ if not bump_type :
72+ log .error (msgs .err_MISSING_BUMP_TYPE_ARG )
73+ sys .exit (1 )
7174
72- # Init project data
73- pyproject_path = path .join (path .dirname (__file__ ), '../pyproject.toml' )
74- log .info (f'{ msgs .log_LOADING_PYPROJECT .format (** locals ())} ...' )
75- pyproject = toml .read (pyproject_path )
75+ log .info (f'{ msgs .log_LOADING_PYPROJECT .format (pyproject_path = paths .pyproject )} ...' )
76+ pyproject = toml .read (paths .pyproject )
7677 project = sn (** pyproject ['project' ])
7778
78- # Update files
7979 _ , new_ver = init_vers (project , bump_type )
80- bump_pyproject_vers (pyproject_path , pyproject , project , new_ver )
80+ bump_pyproject_vers (pyproject , project , new_ver )
8181 update_readme_vers (new_ver )
8282
8383if __name__ == '__main__' : main ()
0 commit comments