def keyslice_pairs(pairs, include=None, omit=None, rename=None, key=None):
    if include and omit:
        raise TypeError('received include and omit, specify only one')

    include = set(include) if include else False
    omit = set(omit) if omit else False
    rename = dict(to_pairs(rename)) if rename else False
    keyfunc = key
    del key

    for key, value in pairs:
        if keyfunc:
            key = keyfunc(key)
        if rename and key in rename:
            yield (rename[key], value)
            continue
        if include:
            if key not in include:
                continue
        elif omit:
            if key in omit:
                continue
        yield key, value
Return the id of a newly created empty revision as 'username'.
dataset/ETHPy150Open jek/flatland/flatland/util/base.py/keyslice_pairs--crossover with--dataset/ETHPy150Open bloomberg/phabricator-tools/py/abd/abdt_conduitmock.py/ConduitMockData.create_empty_revision_as_user