summaryrefslogtreecommitdiff
path: root/pkg_resources/py31compat.py
diff options
context:
space:
mode:
authorJason R. Coombs <jaraco@jaraco.com>2017-07-13 14:03:23 -0400
committerJason R. Coombs <jaraco@jaraco.com>2017-07-13 14:03:23 -0400
commit925dd35ec77d4cfd79c899f34255e3a753f33ca5 (patch)
tree676b1e44a2e187b6e2e7db3b7d44c700e80b6202 /pkg_resources/py31compat.py
parent995d309317c6895a123c03df28bc8f51f6ead5f5 (diff)
downloadpython-setuptools-git-925dd35ec77d4cfd79c899f34255e3a753f33ca5.tar.gz
Avoid race condition in ensure_directory. Ref #1083.
Diffstat (limited to 'pkg_resources/py31compat.py')
-rw-r--r--pkg_resources/py31compat.py17
1 files changed, 17 insertions, 0 deletions
diff --git a/pkg_resources/py31compat.py b/pkg_resources/py31compat.py
new file mode 100644
index 00000000..28120cac
--- /dev/null
+++ b/pkg_resources/py31compat.py
@@ -0,0 +1,17 @@
+import os
+import errno
+import sys
+
+
+PY32 = sys.version_info >= (3, 2)
+
+
+def _makedirs_31(path, exist_ok=False):
+ try:
+ os.makedirs(path)
+ except OSError as exc:
+ if exc.errno != errno.EEXIST:
+ raise
+
+
+makedirs = os.makedirs if PY32 else _makedirs_31