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>