Skip to content

Commit

Permalink
Handle OSError(errno=EINVAL) that might be raised in Windows (#346)
Browse files Browse the repository at this point in the history
In Windows might OSError(errno=EINVAL) be raised instead of the already
catched exceptions in some cases (depending on the Python version).

Suggested fix posted by JarrettR in
#344 (comment)

Co-authored-by: JarrettR <jrainier@gmail.com>
  • Loading branch information
kvid and JarrettR committed Jul 5, 2024
1 parent 9435fc2 commit 77061a0
Showing 1 changed file with 3 additions and 2 deletions.
5 changes: 3 additions & 2 deletions src/wireviz/wireviz.py
Original file line number Diff line number Diff line change
Expand Up @@ -408,11 +408,12 @@ def _get_yaml_data_and_path(inp: Union[str, Path, Dict]) -> (Dict, Path):
yaml_str = open_file_read(yaml_path).read()
except (FileNotFoundError, OSError) as e:
# if inp is a long YAML string, Pathlib will raise OSError: [errno.ENAMETOOLONG]
# (in Windows, it seems OSError [errno.EINVAL] might be raised in some cases)
# when trying to expand and resolve it as a path.
# Catch this error, but raise any others
from errno import ENAMETOOLONG
from errno import EINVAL, ENAMETOOLONG

if type(e) is OSError and e.errno != ENAMETOOLONG:
if type(e) is OSError and e.errno not in (EINVAL, ENAMETOOLONG):
raise e
# file does not exist; assume inp is a YAML string
yaml_str = inp
Expand Down

0 comments on commit 77061a0

Please sign in to comment.