Skip to content

Commit 76b9642

Browse files
committed
Replaced os.path w/ pathlib.Path, stored paths
1 parent ed18e17 commit 76b9642

4 files changed

Lines changed: 64 additions & 56 deletions

File tree

remove-json-keys/src/remove_json_keys/lib/settings.py

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import argparse
2-
from os import path
2+
from pathlib import Path
33
from types import SimpleNamespace as sn
44
from . import data
55

@@ -34,15 +34,19 @@ def load(cli, caller_file):
3434

3535
# Load from config file
3636
cli.config = sn()
37-
cli.project_root = path.join(path.dirname(caller_file),
38-
f"../../{ '' if 'src' in path.dirname(caller_file) else '../../' }")
37+
caller_path = Path(caller_file)
38+
if 'src' in str(caller_path):
39+
cli.project_root = str(caller_path.parent.parent.parent)
40+
else:
41+
cli.project_root = str(caller_path.parent.parent)
3942
possible_config_filenames = [
4043
f'{prefix}{name}.config.json{suffix}'
4144
for prefix in ['.', ''] for name in [cli.short_name, cli.name] for suffix in ['5', '', 'c']
4245
]
4346
for filename in possible_config_filenames:
44-
cli.config_filepath = path.join(cli.project_root, filename)
45-
if path.exists(cli.config_filepath):
47+
config_path = Path(cli.project_root) / filename
48+
if config_path.exists():
49+
cli.config_filepath = str(config_path)
4650
cli.config = data.sns.from_dict(data.json.read(cli.config_filepath))
4751
cli.config_filename = filename
4852
break

remove-json-keys/utils/bump.py

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,15 @@
11
import argparse, re, sys
2-
from os import path
2+
from pathlib import Path
33
from types import SimpleNamespace as sn
44

55
from lib import toml
6-
sys.path.insert(0, path.join(path.dirname(__file__), '../src'))
7-
from remove_json_keys.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

914
msgs = 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

6568
def 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

8383
if __name__ == '__main__' : main()

translate-messages/src/translate_messages/lib/settings.py

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import argparse
2-
from os import path
2+
from pathlib import Path
33
from types import SimpleNamespace as sn
44
from . import data
55

@@ -46,15 +46,19 @@ def load(cli, caller_file):
4646

4747
# Load from config file
4848
cli.config = sn()
49-
cli.project_root = path.join(path.dirname(caller_file),
50-
f"../../{ '' if 'src' in path.dirname(caller_file) else '../../' }")
49+
caller_path = Path(caller_file)
50+
if 'src' in str(caller_path):
51+
cli.project_root = str(caller_path.parent.parent.parent)
52+
else:
53+
cli.project_root = str(caller_path.parent.parent)
5154
possible_config_filenames = [
5255
f'{prefix}{name}.config.json{suffix}'
5356
for prefix in ['.', ''] for name in [cli.short_name, cli.name] for suffix in ['5', '', 'c']
5457
]
5558
for filename in possible_config_filenames:
56-
cli.config_filepath = path.join(cli.project_root, filename)
57-
if path.exists(cli.config_filepath):
59+
config_path = Path(cli.project_root) / filename
60+
if config_path.exists():
61+
cli.config_filepath = str(config_path)
5862
cli.config = data.sns.from_dict(data.json.read(cli.config_filepath))
5963
cli.config_filename = filename
6064
break

translate-messages/utils/bump.py

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,15 @@
11
import argparse, re, sys
2-
from os import path
2+
from pathlib import Path
33
from types import SimpleNamespace as sn
44

55
from 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

914
msgs = 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

6568
def 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

8383
if __name__ == '__main__' : main()

0 commit comments

Comments
 (0)