def _ensure_dir_exists(path, mode=0o755):
    """ensure that a directory exists

    If it doesn't exists, try to create it and protect against a race condition
    if another process is doing the same.

    The default permissions are 755, which differ from os.makedirs default of 777.
    """
    if not os.path.exists(path):
        try:
            os.makedirs(path, mode=mode)
        except OSError as e:
            if e.errno != errno.EEXIST:
                raise
    elif not os.path.isdir(path):
        raise IOError("%r exists but is not a directory" % path)
ensure that a directory exists

    If it doesn't exists, try to create it and protect against a race condition
    if another process is doing the same.

    The default permissions are 755, which differ from os.makedirs default of 777.
    
angrmanagement/vendor/qtconsole/rich_jupyter_widget.py