docs: def from_code(cls, co):
          """Disassemble a Python code object into a Code object."""
          co_code = co.co_code
          labels = dict((addr, Label()) for addr in findlabels(co_code))
          linestarts = dict(cls._findlinestarts(co))
          cellfree = co.co_cellvars + co.co_freevars
  
          code = CodeList()
          n = len(co_code)
          i = 0
          extended_arg = 0
          while i < n:
              op = Opcode(ord(co_code[i]))
              if i in labels:
                  code.append((labels[i], None))
              if i in linestarts:
                  code.append((SetLineno, linestarts[i]))
              i += 1
              if op in hascode:
                  lastop, lastarg = code[-1]
                  if lastop != LOAD_CONST:
                      raise ValueError(
                          "%s should be preceded by LOAD_CONST code" % op)
                  code[-1] = (LOAD_CONST, Code.from_code(lastarg))
              if op not in hasarg:
                  code.append((op, None))
              else:
                  arg = ord(co_code[i]) + ord(co_code[i+1])*256 + extended_arg
                  extended_arg = 0
                  i += 2
                  if op == opcode.EXTENDED_ARG:
                      extended_arg = arg << 16
                  elif op in hasconst:
                      code.append((op, co.co_consts[arg]))
                  elif op in hasname:
                      code.append((op, co.co_names[arg]))
                  elif op in hasjabs:
                      code.append((op, labels[arg]))
                  elif op in hasjrel:
                      code.append((op, labels[i + arg]))
                  elif op in haslocal:
                      code.append((op, co.co_varnames[arg]))
                  elif op in hascompare:
                      code.append((op, cmp_op[arg]))
                  elif op in hasfree:
                      code.append((op, cellfree[arg]))
                  else:
                      code.append((op, arg))
  
          varargs = bool(co.co_flags & CO_VARARGS)
          varkwargs = bool(co.co_flags & CO_VARKEYWORDS)
          newlocals = bool(co.co_flags & CO_NEWLOCALS)
          args = co.co_varnames[:co.co_argcount + varargs + varkwargs]
          if co.co_consts and isinstance(co.co_consts[0], basestring):
              docstring = co.co_consts[0]
          else:
              docstring = None
          return cls(code = code,
                     freevars = co.co_freevars,
                     args = args,
                     varargs = varargs,
                     varkwargs = varkwargs,
                     newlocals = newlocals,
                     name = co.co_name,
                     filename = co.co_filename,
                     firstlineno = co.co_firstlineno,
                     docstring = docstring,
                     )