Test pidgy.tangle

[1]:
        import pidgy, ast
[2]:
    dir(pidgy.tangle)
[2]:
['BlockLexer',
 'ExtraSyntax',
 'IPython',
 'Tangle',
 '__all__',
 '__builtins__',
 '__doc__',
 '__file__',
 '__loader__',
 '__name__',
 '__package__',
 '__spec__',
 '__test__',
 'ast',
 'demojize',
 'init_json',
 'mistune',
 'normalizer',
 'pidgy',
 'pidgyManager',
 'tangle',
 'typing']
[3]:
    tangle = pidgy.tangle.Tangle()
[4]:
    s = """---
    a: front matter
    ---

    This is a paragraph.

    * a list

        def f():

    A docstring

            print

    """

Unnormalized tokens.

[5]:
    tangle.parse(s, normalize=False)
[5]:
[{'type': 'front_matter', 'text': '\na: front matter\n'},
 {'type': 'paragraph', 'text': 'This is a paragraph.'},
 {'type': 'list_start', 'ordered': False},
 {'type': 'loose_item_start'},
 {'type': 'text', 'text': 'a list'},
 {'type': 'newline'},
 {'type': 'text', 'text': '  def f():'},
 {'type': 'list_item_end'},
 {'type': 'list_end'},
 {'type': 'paragraph', 'text': 'A docstring'},
 {'type': 'code', 'lang': None, 'text': '    print'}]

Normalized block tokens

[6]:
    tangle.parse(s, normalize=True)
[6]:
[{'type': 'front_matter', 'text': '\na: front matter\n'},
 {'type': 'paragraph',
  'text': '\nThis is a paragraph.\n\n* a list\n\n    def f():\n    \nA docstring'},
 {'type': 'code', 'lang': None, 'text': '\n    \n        print'}]

Normalized block tokens

[7]:
    print(tangle.stringify(tangle.parse(s)))
        locals().update(__import__('ruamel.yaml').yaml.safe_load(
        """a: front matter"""
        ))

        """This is a paragraph.

        * a list

            def f():

        A docstring"""

        print
[8]:
    transform = pidgy.tangle.pidgyManager().transform_cell
[9]:
    print(transform(s))
locals().update(__import__('ruamel.yaml').yaml.safe_load(
"""a: front matter"""
))

"""This is a paragraph.

* a list

    def f():

A docstring"""

print

[10]:
    print(pidgy.tangle.demojize("""
        🤖🐼 = 10
    """))

    _robot_face__panda_face_  = 10

[11]:
    ast.parse(transform("""
        return 100
    """)).body
[11]:
[<_ast.Return at 0x10b3afeb8>]
[12]:
    pidgy.tangle.ExtraSyntax().visit(ast.parse(transform("""
        return 100
    """))).body[0].value
[12]:
<_ast.Call at 0x109043080>