<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:

def uninstall(trg_queue, item_user=None, item_group=None, item_mode=None):
    '''Idempotently uninstall a queue, should you want to subvert FSQ_ROOT
       settings, merely pass in an abolute path'''
    # immediately down the queue
    try:
        down(trg_queue, user=item_user, group=item_group,
             mode=(_c.FSQ_ITEM_MODE if item_mode is None else item_mode))
    except FSQError, e:
        raise FSQInstallError(e.errno, wrap_io_os_err(e))
    tmp_full, tmp_queue = _tmp_trg(trg_queue, _c.FSQ_ROOT)
    _remove_dir(fsq_path.base(trg_queue), tmp_full, trg_queue)