From f2a1aa88565f2a80494ba58da5a627ea0a8201a7 Mon Sep 17 00:00:00 2001 From: Martin Rieder <74277074+martinrieder@users.noreply.github.com> Date: Mon, 1 Jul 2024 20:48:21 +0200 Subject: [PATCH] Update comment in src/wireviz/wireviz.py (#392) Clarify all exceptions catched, including changes in #392 Co-authored-by: kvid --- src/wireviz/wireviz.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/wireviz/wireviz.py b/src/wireviz/wireviz.py index 71920d7..abb3878 100755 --- a/src/wireviz/wireviz.py +++ b/src/wireviz/wireviz.py @@ -410,10 +410,13 @@ 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, ValueError) 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 + # if inp is a long YAML string, Pathlib will normally raise + # FileNotFoundError or OSError(errno = ENAMETOOLONG) when + # trying to expand and resolve it as a path, but in Windows + # might ValueError or OSError(errno = EINVAL or None) be raised + # instead in some cases (depending on the Python version). + # Catch these specific errors, but raise any others. + from errno import EINVAL, ENAMETOOLONG if type(e) is OSError and e.errno not in (EINVAL, ENAMETOOLONG, None):