Handle OSError [errno.EINVAL] that might be raised in Windows
Suggested fix posted in https://github.com/wireviz/WireViz/issues/344#issuecomment-2113476151 Co-authored-by: JarrettR <jrainier@gmail.com>
This commit is contained in:
parent
954c4f5f92
commit
e3fade35ef
@ -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()
|
yaml_str = open_file_read(yaml_path).read()
|
||||||
except (FileNotFoundError, OSError) as e:
|
except (FileNotFoundError, OSError) as e:
|
||||||
# if inp is a long YAML string, Pathlib will raise OSError: [errno.ENAMETOOLONG]
|
# 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.
|
# when trying to expand and resolve it as a path.
|
||||||
# Catch this error, but raise any others
|
# 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
|
raise e
|
||||||
# file does not exist; assume inp is a YAML string
|
# file does not exist; assume inp is a YAML string
|
||||||
yaml_str = inp
|
yaml_str = inp
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user