def modify_desc(skips, desc):
    """Deletes specified methods from a class description (desc).

    Parameters
    ----------
    skips : dict or list
        The attribute rc.skiptypes from the run controller managing
        the desc dictionary. This is filled with
        xdress.typesystem.TypeMatcher objects and should have been
        populated as such by xdress.descfilter.setup

    desc : dictionary
        The class dictionary that is to be altered or tested to see
        if any methods need to be removed.

    """
    for at_name, at_t in desc['attrs'].copy().items():
        for tm in skips:
            if tm.flatmatches(at_t):
                del desc['attrs'][at_name]
                break
    for m_key, m_ret in desc['methods'].copy().items():
        _deleted = False
        for tm in skips:
            if m_ret and tm.flatmatches(m_ret['return']):
                del desc['methods'][m_key]
                _deleted = True
                break
        if _deleted:
            continue
        m_args = m_key[1:]
        for arg in m_args:
            t = arg[1]
            for tm in skips:
                if tm.flatmatches(t):
                    del desc['methods'][m_key]
                    _deleted = True
                    break
            if _deleted:
                break
