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