conn (connection) must be the last positional argument
    in all wrapped functions

    :param func_: <function> to call
    :param args:  <tuple> positional arguments
    :param kwargs: <dict> keyword arguments
    :return:

def wrap_connection(func_, *args, **kwargs):
    """
    conn (connection) must be the last positional argument
    in all wrapped functions

    :param func_: <function> to call
    :param args:  <tuple> positional arguments
    :param kwargs: <dict> keyword arguments
    :return:
    """
    if not args[-1]:
        new_args = list(args)
        new_args[-1] = connect()
        args = tuple(new_args)
    return func_(*args, **kwargs)