def wrap(ent, *args): if isinstance(ent, type) and IEntity in implemented_by(ent): ent_cls = ent else: ent_cls = get_entity_class(ent) return func(ent_cls, *args)
def wrap(rc, *args): if isinstance(rc, type) and IMemberResource in implemented_by(rc): mb_cls = rc else: mb_cls = get_member_class(rc) return func(mb_cls, *args)