Skip to main content

IPython extension allowing visualizing AST of cell using magic

Project description

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

Installation

pip3 install ast-magic

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

%load_ext ast_magic

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

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

Usage

Verifying Python follows PEMDAS:

In [1]: %ast (1 + 1) ** 2 * 5 - 4
Module(
    body=[
        Expr(
            value=BinOp(
                left=BinOp(
                    left=BinOp(
                        left=BinOp(
                            left=Constant(value=1),
                            op=Add(),
                            right=Constant(value=1)),
                        op=Pow(),
                        right=Constant(value=2)),
                    op=Mult(),
                    right=Constant(value=5)),
                op=Sub(),
                right=Constant(value=4)))],
    type_ignores=[])

You can use it in a cell too:

In [1]: %%ast
   ...:
   ...: def fibonacci(n: int) -> int:
   ...:     if n <= 1: return 1
   ...:     return fibonacci(n - 2) + fibonacci(n - 1)
   ...:
Module(
    body=[
        FunctionDef(
            name='fibonacci',
            args=arguments(
                posonlyargs=[],
                args=[
                    arg(
                        arg='n',
                        annotation=Name(id='int', ctx=Load()))],
                kwonlyargs=[],
                kw_defaults=[],
                defaults=[]),
            body=[
                If(
                    test=Compare(
                        left=Name(id='n', ctx=Load()),
                        ops=[
                            LtE()],
                        comparators=[
                            Constant(value=1)]),
                    body=[
                        Return(
                            value=Constant(value=1))],
                    orelse=[]),
                Return(
                    value=BinOp(
                        left=Call(
                            func=Name(id='fibonacci', ctx=Load()),
                            args=[
                                BinOp(
                                    left=Name(id='n', ctx=Load()),
                                    op=Sub(),
                                    right=Constant(value=2))],
                            keywords=[]),
                        op=Add(),
                        right=Call(
                            func=Name(id='fibonacci', ctx=Load()),
                            args=[
                                BinOp(
                                    left=Name(id='n', ctx=Load()),
                                    op=Sub(),
                                    right=Constant(value=1))],
                            keywords=[])))],
            decorator_list=[],
            returns=Name(id='int', ctx=Load()))],
    type_ignores=[])

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ast-magic-1.0.1.tar.gz (2.4 kB view details)

Uploaded Source

Built Distribution

ast_magic-1.0.1-py3-none-any.whl (2.4 kB view details)

Uploaded Python 3

File details

Details for the file ast-magic-1.0.1.tar.gz.

File metadata

  • Download URL: ast-magic-1.0.1.tar.gz
  • Upload date:
  • Size: 2.4 kB
  • Tags: Source
  • Uploaded using 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

File hashes

Hashes for ast-magic-1.0.1.tar.gz
Algorithm Hash digest
SHA256 19bd0a1dd5a211873435af12b7cdd1124400f70ceb8ad2727ddb51eafce5a222
MD5 65124c6ad4e63819691158cee9de9778
BLAKE2b-256 48c91bfa215c7bc6d5b34159a7f8989e670e68c367c3d15544e97175dc57dc1c

See more details on using hashes here.

File details

Details for the file ast_magic-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: ast_magic-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 2.4 kB
  • Tags: Python 3
  • Uploaded using 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

File hashes

Hashes for ast_magic-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 810c40883c9cff971ea865a35ca54d0a9cd71282de256137bd51d4a286a5cd62
MD5 e3474e4bf4e140014ea15fb62de30e16
BLAKE2b-256 f62c2b35c097acb76d9e6077b70a1d0996434178f8d1e6c2b60649e5a11a502b

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page