From ff6afac5107ac2b779d2cce91eafd1952dcaa37d 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 656107e..92ccbc1 100755 --- a/src/wireviz/wireviz.py +++ b/src/wireviz/wireviz.py @@ -420,10 +420,13 @@ def _get_yaml_data_and_path(inp: Union[str, Path, Dict]) -> Tuple[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. + if type(e) is OSError and e.errno not in (EINVAL, ENAMETOOLONG, None): raise e # file does not exist; assume inp is a YAML string