Exemplo n.º 1
0
def dump(co, indent=0):
    import dis
    import types

    def pprint(text, extra=0):
        for i in range(indent + extra):
            print("  ", end="")
        print(text)

    pprint("co_name:\t{0}".format(co.co_name))
    for key in dir(co):
        if not key.startswith("co_"):
            continue
        if key in ["co_name", "co_code", "co_lnotab"]:
            continue
        elif key == "co_consts":
            pprint("{0}:".format(key))
            for v in co.co_consts:
                if type(v) == types.CodeType:
                    pprint("- Code Object:")
                    dump(v, indent + 1)
                else:
                    pprint("- {0}".format(v))
        elif key == "co_flags":
            val = dis.pretty_flags(co.co_flags)
            pprint("{0}:\t\t{1}".format(key, val))
        else:
            val = getattr(co, key)
            pprint("{0}:\t{1}".format(key, val))
    # doesn't obey indent level
    dis.dis(co)
Exemplo n.º 2
0
 def test_pretty_flags_no_flags(self):
     self.assertEqual(dis.pretty_flags(0), '0x0')
Exemplo n.º 3
0
 def test_pretty_flags_no_flags(self):
     self.assertEqual(dis.pretty_flags(0), '0x0')
Exemplo n.º 4
0
 def update_event(self, inp=-1):
     self.set_output_val(0, dis.pretty_flags(self.input(0)))