def mro_items(type_obj):
    # TODO: handle slots?
    return chain.from_iterable(ct.__dict__.items()
    for ct in type_obj.__mro__)
Takes a type and returns an iterator over all class variables
dataset/ETHPy150Open mahmoud/boltons/boltons/funcutils.py/mro_items