From d32705f01ba14952aa6a2b73f7064f6f0edc3469 Mon Sep 17 00:00:00 2001 From: "Mr. Outis" Date: Thu, 21 Feb 2019 10:01:38 -0600 Subject: [PATCH 1/2] py2: raise OSErrors on makedirs --- dvc/utils/compat.py | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/dvc/utils/compat.py b/dvc/utils/compat.py index c72871dec..091b98ff9 100644 --- a/dvc/utils/compat.py +++ b/dvc/utils/compat.py @@ -14,9 +14,6 @@ is_py2 = _ver[0] == 2 #: Python 3.x? is_py3 = _ver[0] == 3 -# NOTE: cast_bytes_py2 is taken from https://github.com/ipython/ipython_genutils -# NOTE _makedirs is taken from https://github.com/python/cpython/blob/3ce3dea60646d8a5a1c952469a2eb65f937875b3/Lib/os.py#L196-L226 - # simplified version of ipython_genutils/encoding.py DEFAULT_ENCODING = sys.getdefaultencoding() @@ -30,12 +27,14 @@ def encode(u, encoding=None): return u.encode(encoding, "replace") +# NOTE: cast_bytes_py2 is taken from https://github.com/ipython/ipython_genutils def cast_bytes(s, encoding=None): if not isinstance(s, bytes): return encode(s, encoding) return s +# NOTE _makedirs is taken from https://github.com/python/cpython/blob/3ce3dea60646d8a5a1c952469a2eb65f937875b3/Lib/os.py#L196-L226 def _makedirs(name, mode=0o777, exist_ok=False): head, tail = os.path.split(name) if not tail: @@ -44,8 +43,8 @@ def _makedirs(name, mode=0o777, exist_ok=False): try: _makedirs(head, exist_ok=exist_ok) except OSError as e: - if e.errno == errno.EEXIST: - pass + if e.errno != errno.EEXIST: + raise e cdir = os.curdir if isinstance(tail, bytes): cdir = bytes(os.curdir, "ASCII") From 3c01102bbd6179418376a012684e8598b0762c71 Mon Sep 17 00:00:00 2001 From: Ruslan Kuprieiev Date: Thu, 21 Feb 2019 12:56:10 -0600 Subject: [PATCH 2/2] :nail_care: remove unneccesary e Co-Authored-By: mroutis --- dvc/utils/compat.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dvc/utils/compat.py b/dvc/utils/compat.py index 091b98ff9..d9f1c045f 100644 --- a/dvc/utils/compat.py +++ b/dvc/utils/compat.py @@ -44,7 +44,7 @@ def _makedirs(name, mode=0o777, exist_ok=False): _makedirs(head, exist_ok=exist_ok) except OSError as e: if e.errno != errno.EEXIST: - raise e + raise cdir = os.curdir if isinstance(tail, bytes): cdir = bytes(os.curdir, "ASCII")