Advertisement
Guest User

Untitled

a guest
Sep 24th, 2019
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.92 KB | None | 0 0
  1. def _update_bases(space, w_bases):
  2.     bases_w = space.listview(w_bases)
  3.     new_bases_w = []
  4.     changed = False
  5.     for w_base in bases_w:
  6.         w_meth = space.lookup(w_base, '__mro_entries__')
  7.         if w_meth is not None:
  8.             new_base_w = space.get_and_call_function(w_meth, w_base, w_bases)
  9.             if not space.isinstance_w(new_base_w, space.w_tuple):
  10.                 raise oefmt(space.w_TypeError, "__mro_entries__ must return a tuple")
  11.             new_bases_w.extend(space.fixedview(new_base_w))
  12.             changed = True
  13.         else:
  14.             new_bases_w.append(w_base)
  15.     if not changed:
  16.         return bases_w
  17.     return new_bases_w
  18.  
  19. def build_class(space, w_func, w_name, __args__):
  20.     # ...
  21.     orig_bases_w, kwds_w = __args__.unpack()
  22.     w_orig_bases = space.newtuple(orig_bases_w)
  23.     bases_w = _update_bases(space, w_orig_bases)
  24.     w_bases = space.newtuple(bases_w)
  25.     # ...
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement