Successful finish

def success(item):
    '''Successful finish'''
    try:
        # mv to done
        trg_queue = item.queue
        os.rename(fsq_path.item(trg_queue, item.id, host=item.host),
                  os.path.join(fsq_path.done(trg_queue, host=item.host),
                               item.id))
    except AttributeError, e:
        # DuckType TypeError'ing
        raise TypeError(u'item must be an FSQWorkItem, not:'\
                        u' {0}'.format(item.__class__.__name__))
    except (OSError, IOError, ), e:
        raise FSQDoneError(e.errno, u'cannot mv item to done: {0}:'\
                           u' {1}'.format(item.id, wrap_io_os_err(e)))