disassembles and deparses a given code block ``co``.
(version, co, out=None, is_pypy=False)
| 40 | |
| 41 | |
| 42 | def disco(version, co, out=None, is_pypy=False): |
| 43 | """ |
| 44 | disassembles and deparses a given code block ``co``. |
| 45 | """ |
| 46 | |
| 47 | assert iscode(co) |
| 48 | |
| 49 | # Store final output stream in case there is an error. |
| 50 | real_out = out or sys.stdout |
| 51 | print("# Python %s" % version_tuple_to_str(version), file=real_out) |
| 52 | if co.co_filename: |
| 53 | print("# Embedded file name: %s" % co.co_filename, file=real_out) |
| 54 | |
| 55 | scanner = get_scanner(version, is_pypy=is_pypy) |
| 56 | |
| 57 | queue = deque([co]) |
| 58 | disco_loop(scanner.ingest, queue, real_out) |
| 59 | |
| 60 | |
| 61 | def disco_loop(disasm, queue, real_out): |
no test coverage detected