Skip to main content

No project description provided

Project description

ast-comments

An extension to the built-in ast module. Finds comments in source code and adds them to the parsed tree.

Installation

pip install ast-comments

Usage

There is no difference in usage between ast and ast-comments

>>> from ast_comments import *
>>> tree = parse("hello = 'hello' # comment to hello")

Parsed tree is an instance of the original ast.Module object. The only difference is that there is a new type of tree node: Comment

>>> tree
<_ast.Module object at 0x7ffba52322e0>
>>> tree.body
[<ast.Assign object at 0x10a01d5b0>, <ast_comments.Comment object at 0x10a09e0a0>]
>>> tree.body[1].value
'# comment to hello'
>>> dump(tree)
"Module(body=[Assign(targets=[Name(id='hello', ctx=Store())], value=Constant(value='hello')), Comment(value='# comment to hello', inline=True)], type_ignores=[])"

If you have python3.9 or above it's also possible to unparse the tree object with its comments preserved.

>>> print(unparse(tree))
hello = 'hello'  # comment to hello

Note: Python compile() cannot be run on the tree output from parse. The included pre_compile_fixer() function can be used to fix the tree (stripping comment nodes) if it will be necessary to compile the output.

More examples can be found in test_parse.py and test_unparse.py.

Contributing

You are welcome to open an issue or create a pull request

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_comments-1.2.2.tar.gz (5.3 kB view details)

Uploaded Source

Built Distribution

ast_comments-1.2.2-py3-none-any.whl (5.8 kB view details)

Uploaded Python 3

File details

Details for the file ast_comments-1.2.2.tar.gz.

File metadata

  • Download URL: ast_comments-1.2.2.tar.gz
  • Upload date:
  • Size: 5.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.6.1 CPython/3.10.13 Darwin/23.3.0

File hashes

Hashes for ast_comments-1.2.2.tar.gz
Algorithm Hash digest
SHA256 04f86e0a8010569ea279d470b4dcb86f0913a8a39bd80e0fe358e11aa5bfa8d6
MD5 34087e7d235abbb6059ae31836ff4585
BLAKE2b-256 8b85e2bea931f371bde73c5e6f450c51f173ee451cb68978372f7b222f803133

See more details on using hashes here.

File details

Details for the file ast_comments-1.2.2-py3-none-any.whl.

File metadata

  • Download URL: ast_comments-1.2.2-py3-none-any.whl
  • Upload date:
  • Size: 5.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.6.1 CPython/3.10.13 Darwin/23.3.0

File hashes

Hashes for ast_comments-1.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 6468c6b91d971b3fca2e3cd6f7a6d52e7385b6e4d25809444372960c74a8cbc2
MD5 1f9b7158c74e1d83a02bcdfc50e63511
BLAKE2b-256 85abe7f191cd70fe861367a55449381832d6703b475ab320a9d96f3d61ea672b

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