Skip to content

Commit

Permalink
Use portable OS error codes so program doesn't crash (#318)
Browse files Browse the repository at this point in the history
Hard-coding OS error numbers that differ between different platforms
caused the program to crash at platforms using a different error number.

Using the Standard errno system symbols will avoid this problem.

Co-authored-by: kvid <[email protected]>
  • Loading branch information
RedshiftVelocities and kvid authored Sep 1, 2023
1 parent f9d1dd0 commit 6f9007f
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 @@ -390,10 +390,11 @@ def _get_yaml_data_and_path(inp: Union[str, Path, Dict]) -> (Dict, Path):
# if no FileNotFoundError exception happens, get file contents
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 63]
# if inp is a long YAML string, Pathlib will raise OSError: [errno.ENAMETOOLONG]
# when trying to expand and resolve it as a path.
# Catch this error, but raise any others
if type(e) is OSError and e.errno != 63:
from errno import ENAMETOOLONG
if type(e) is OSError and e.errno != ENAMETOOLONG:
raise e
# file does not exist; assume inp is a YAML string
yaml_str = inp
Expand Down

0 comments on commit 6f9007f

Please sign in to comment.