r"""
    Ensures that directory will exist. creates new dir with sticky bits by
    default

    Args:
        path (str): dpath to ensure. Can also be a tuple to send to join
        info (bool): if True prints extra information
        mode (int): octal mode of directory (default 0o1777)

    Returns:
        str: path - the ensured directory

def ensuredir(path_, verbose=None, info=False, mode=0o1777):
    r"""
    Ensures that directory will exist. creates new dir with sticky bits by
    default

    Args:
        path (str): dpath to ensure. Can also be a tuple to send to join
        info (bool): if True prints extra information
        mode (int): octal mode of directory (default 0o1777)

    Returns:
        str: path - the ensured directory

    """
    if verbose is None:
        verbose = VERYVERBOSE
    if isinstance(path_, (list, tuple)):
        path_ = join(*path_)
    if HAVE_PATHLIB and isinstance(path_, pathlib.Path):
        path_ = str(path_)
    if not checkpath(path_, verbose=verbose, info=info):
        if verbose:
            print('[util_path] mkdir(%r)' % path_)
        try:
            os.makedirs(normpath(path_), mode=mode)
        except OSError as ex:
            util_dbg.printex(
                ex,
                'check that the longest existing path '
                'is not a bad windows symlink.', keys=['path_'])
            raise
    return path_