Skip to main content

This allows you to visualize the bytecode of a cell in IPython upon running it.

Installation

pip3 install dis-magic

To manually load, run the following in your IPython prompt:

%load_ext dis_magic

To automatically load, add the following to your IPython configuration file:

c = get_config()
c.InteractiveShellApp.extensions.append('dis_magic')

Usage

Verifying Python follows PEMDAS:

In [6]: %dis foo = 6 ** 2 + 6
  1           0 LOAD_CONST               0 (42)
              2 STORE_NAME               0 (foo)
              4 LOAD_CONST               1 (None)
              6 RETURN_VALUE

You can use it in a cell too:

In [4]: %%dis
   ...:
   ...: def fibonacci(n: int) -> int:
   ...:     if n <= 1: return 1
   ...:     return fibonacci(n - 2) + fibonacci(n - 1)
   ...:
  2           0 LOAD_NAME                0 (int)
              2 LOAD_NAME                0 (int)
              4 LOAD_CONST               0 (('n', 'return'))
              6 BUILD_CONST_KEY_MAP      2
              8 LOAD_CONST               1 (<code object fibonacci at 0x111457b30, file "<dis>", line 2>)
             10 LOAD_CONST               2 ('fibonacci')
             12 MAKE_FUNCTION            4 (annotations)
             14 STORE_NAME               1 (fibonacci)
             16 LOAD_CONST               3 (None)
             18 RETURN_VALUE

Disassembly of <code object fibonacci at 0x111457b30, file "<dis>", line 2>:
  3           0 LOAD_FAST                0 (n)
              2 LOAD_CONST               1 (1)
              4 COMPARE_OP               1 (<=)
              6 POP_JUMP_IF_FALSE       12
              8 LOAD_CONST               1 (1)
             10 RETURN_VALUE

  4     >>   12 LOAD_GLOBAL              0 (fibonacci)
             14 LOAD_FAST                0 (n)
             16 LOAD_CONST               2 (2)
             18 BINARY_SUBTRACT
             20 CALL_FUNCTION            1
             22 LOAD_GLOBAL              0 (fibonacci)
             24 LOAD_FAST                0 (n)
             26 LOAD_CONST               1 (1)
             28 BINARY_SUBTRACT
             30 CALL_FUNCTION            1
             32 BINARY_ADD
             34 RETURN_VALUE

Metadata

Release files for dis-magic 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for dis-magic 1.0.0
File Size Uploaded
dis-magic-1.0.0.tar.gz 2.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for dis-magic 1.0.0
File Interpreter ABI Platform
dis_magic-1.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 4.6 kB

Release files / dis-magic-1.0.0.tar.gz

Download URL dis-magic-1.0.0.tar.gz
Size 2.3 kB
Tags Source
SHA-256 checksum
How to use checksums
14b271b8044430b16f20c3fefa5e1f2645eb0f2ede6962b085d96b8597388eec
BLAKE2b-256 checksum
How to use checksums
a91791ff1e28bc580a13520fdb4b0c865456653c6c86657032ebf3a44eda26fd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.1.1 pkginfo/1.5.0.1 requests/2.25.1 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.8.0

Release files / dis_magic-1.0.0-py3-none-any.whl

Download URL dis_magic-1.0.0-py3-none-any.whl
Size 2.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
7a30dc4ab145868aa1676e5f6f0561e73ca794e6ca10545ad90ed77fcb66ef31
BLAKE2b-256 checksum
How to use checksums
13a29119d75e55e0ac39414f255f0c3edc674074ab0c5d55f1d5bb5c36828167
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.1.1 pkginfo/1.5.0.1 requests/2.25.1 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.8.0

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page