Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions dpdata/plugins/deepmd.py
Original file line number Diff line number Diff line change
Expand Up @@ -136,6 +136,7 @@ def mix_system(self, *system, type_map, **kwargs):

def from_multi_systems(self, directory, **kwargs):
sys_dir = []
assert os.path.isdir(directory), f"{directory} is not a directory!"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please raise FileNotFoundError. One has not chance of catching the error with assertion!
Plz also add a UT for it.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[P2] Do not use assert for user-supplied path validation

python -O removes this check entirely; on this head a regular file then walks as no directories and returns an empty result. Raise an explicit exception so callers receive the same behavior in optimized and normal runs.

Suggested change
assert os.path.isdir(directory), f"{directory} is not a directory!"
if not os.path.isdir(directory):
raise FileNotFoundError(f"{directory} is not a directory!")

for root, dirs, files in os.walk(directory):
if (
"type_map.raw" in files
Expand Down