human-oriented ast parser/unparser
Project description
Attempt at a human-oriented abstract syntax tree (AST) parser/unparser for Python 3.
This package provides new AST node types which inherit from nodes in typed_ast.ast3 module. Additionally, it provides implementation of parser and unparser for the extended ASTs.
Simple example of how to use this package:
from horast import parse, unparse
tree = parse("""a = 1 # a equals one after this""")
print(unparse())
# this will print the code with original comment
More examples in examples.ipynb.
technical details
Parser is based on built-in tokenize module and typed_ast.ast3.parse() function.
Unparser is essentially an extension of Unparser class from typed_astunparse package.
Nodes provided and handled by horast are listed below.
Comment
Full line as well as end-of-line comments are parsed/unparsed correctly when they are outside of multi-line expressions.
Currently, handling of comments within multi-line expressions is implemented only partially.
Docstring
To do.
requirements
CPython >= 3.4.
Python libraries as specified in requirements.txt.
Building and running tests additionally requires packages listed in dev_requirements.txt.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for horast-0.2.0.dev2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b89dec34716f130564ba1153df7bde5b590c878fa69583118f5f83976c27c61b |
|
MD5 | 5cf5ce6147b0bd1c82588fd8f58c28b5 |
|
BLAKE2b-256 | f629247b3557fead466c6bac7b858501d4bd84ab11716bc321ef742431530416 |