Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def _update_bases(space, w_bases):
- bases_w = space.listview(w_bases)
- new_bases_w = []
- changed = False
- for w_base in bases_w:
- w_meth = space.lookup(w_base, '__mro_entries__')
- if w_meth is not None:
- new_base_w = space.get_and_call_function(w_meth, w_base, w_bases)
- if not space.isinstance_w(new_base_w, space.w_tuple):
- raise oefmt(space.w_TypeError, "__mro_entries__ must return a tuple")
- new_bases_w.extend(space.fixedview(new_base_w))
- changed = True
- else:
- new_bases_w.append(w_base)
- if not changed:
- return bases_w
- return new_bases_w
- def build_class(space, w_func, w_name, __args__):
- # ...
- orig_bases_w, kwds_w = __args__.unpack()
- w_orig_bases = space.newtuple(orig_bases_w)
- bases_w = _update_bases(space, w_orig_bases)
- w_bases = space.newtuple(bases_w)
- # ...
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement