1import os
2import errno
3import sys
4
5from .extern import six
6
7
8def _makedirs_31(path, exist_ok=False):
9    try:
10        os.makedirs(path)
11    except OSError as exc:
12        if not exist_ok or exc.errno != errno.EEXIST:
13            raise
14
15
16# rely on compatibility behavior until mode considerations
17#  and exists_ok considerations are disentangled.
18# See https://github.com/pypa/setuptools/pull/1083#issuecomment-315168663
19needs_makedirs = (
20    six.PY2 or
21    (3, 4) <= sys.version_info < (3, 4, 1)
22)
23makedirs = _makedirs_31 if needs_makedirs else os.makedirs
24