Skip to content

Commit 8ef502f

Browse files
committed
Modernize to use pathlib instead of os.path
1 parent 781362e commit 8ef502f

File tree

2 files changed

+32
-30
lines changed

2 files changed

+32
-30
lines changed

main.py

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import argparse
2+
from pathlib import Path
23

34
import numpy as np
45
import torch as th
@@ -30,20 +31,20 @@ def main():
3031
# Structuture related values
3132
parser.add_argument(
3233
"--datafolder",
33-
type=str,
34-
default="Data/",
34+
type=Path,
35+
default="Data",
3536
help="Path to where data will be saved during training.",
3637
)
3738
parser.add_argument(
3839
"--resultfolder",
39-
type=str,
40-
default="Results/",
40+
type=Path,
41+
default="Results",
4142
help="Path to where results will be saved during evaluation.",
4243
)
4344
parser.add_argument(
4445
"--modelfolder",
45-
type=str,
46-
default="Experiments/",
46+
type=Path,
47+
default="Experiments",
4748
help="Path to where model weights will be saved at the end of training.",
4849
)
4950
parser.add_argument(
@@ -107,7 +108,7 @@ def main():
107108

108109
args = parser.parse_args()
109110

110-
createfolders(args)
111+
createfolders(args.datafolder, args.resultfolder, args.modelfolder)
111112

112113
device = 'cuda' if th.cuda.is_available() else 'cpu'
113114

utils/createfolders.py

Lines changed: 24 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
import argparse
2-
import os
2+
from pathlib import Path
33
from tempfile import TemporaryDirectory
44

55

6-
def createfolders(args) -> None:
6+
def createfolders(*dirs: Path) -> None:
77
"""
88
Creates folders for storing data, results, model weights.
99
@@ -14,43 +14,44 @@ def createfolders(args) -> None:
1414
1515
"""
1616

17-
if not os.path.exists(args.datafolder):
18-
os.makedirs(args.datafolder)
19-
print(f"Created a folder at {args.datafolder}")
20-
21-
if not os.path.exists(args.resultfolder):
22-
os.makedirs(args.resultfolder)
23-
print(f"Created a folder at {args.resultfolder}")
24-
25-
if not os.path.exists(args.modelfolder):
26-
os.makedirs(args.modelfolder)
27-
print(f"Created a folder at {args.modelfolder}")
17+
for dir in dirs:
18+
dir.mkdir(parents=True, exist_ok=True)
2819

2920

3021
def test_createfolders():
31-
with TemporaryDirectory(dir="tmp/") as temp_dir:
22+
with TemporaryDirectory() as temp_dir:
23+
temp_dir = Path(temp_dir)
24+
3225
parser = argparse.ArgumentParser()
26+
3327
# Structuture related values
3428
parser.add_argument(
3529
"--datafolder",
36-
type=str,
37-
default=os.path.join(temp_dir, "Data/"),
30+
type=Path,
31+
default=temp_dir / "Data",
3832
help="Path to where data will be saved during training.",
3933
)
4034
parser.add_argument(
4135
"--resultfolder",
42-
type=str,
43-
default=os.path.join(temp_dir, "Results/"),
36+
type=Path,
37+
default=temp_dir / "Results",
4438
help="Path to where results will be saved during evaluation.",
4539
)
4640
parser.add_argument(
4741
"--modelfolder",
48-
type=str,
49-
default=os.path.join(temp_dir, "Experiments/"),
42+
type=Path,
43+
default=temp_dir / "Experiments",
5044
help="Path to where model weights will be saved at the end of training.",
5145
)
5246

53-
args = parser.parse_args()
54-
createfolders(args)
47+
args = parser.parse_args([
48+
"--datafolder", temp_dir / "Data",
49+
"--resultfolder", temp_dir / "Results",
50+
"--modelfolder", temp_dir / "Experiments"
51+
])
52+
53+
createfolders(args.datafolder, args.resultfolder, args.modelfolder)
5554

56-
return
55+
assert (temp_dir / "Data").exists()
56+
assert (temp_dir / "Results").exists()
57+
assert (temp_dir / "Experiments").exists()

0 commit comments

Comments
 (0)