This is a pre-production deployment of Warehouse, however changes made here WILL affect the production instance of PyPI.
Latest Version Dependencies status unknown Test status unknown Test coverage unknown
Project Description

The typed-astunparse is to typed-ast as astunparse is to ast. In short: unparsing of Python 3.5 abstract syntax trees (AST) with type comments and variable annotations.

The built-in ast module has capabilites to parse Python source code into AST. It does not, however, have the capability to generate source code from the AST. That’s where astunparse comes in. Using a refactored version of an obscure script found in official Python repository, it provides code generation capability for built-in AST.

Built-in ast and astunparse modules, however, completely ignore type comments introduced in PEP 484. They treat them like all other comments, so when you parse the code using compile(), your type comments will be lost. There is no place for them in the AST, so obviously they also cannot be unparsed.

Moreover, neither module accepts variable annotations introduced in PEP 526. They cause syntax errors. The typed-ast module provides an updated AST including type comments defined in PEP 484 and variable annotations introduced in PEP 526. It also provides a parser for Python code using those features.

Unfortunately, typed-ast also doesn’t provide any means to go from AST to source code. This is where this module, typed-astunparse, comes in. It provides unparser for AST defined in typed-ast.

requirements

This package is intended for Python 3.5 and later. It was tested on 64 bit Ubuntu, but it might work on other systems too.

typed-astunparse depends on:

  • astunparse
  • typed-ast

installation

For simplest installation use pip:

pip3.5 install typed-astunparse

You can also build your own version:

git clone https://github.com/mbdevpl/typed-astunparse
cd typed-astunparse
python3.5 -m unittest discover # make sure the tests pass
python3.5 setup.py bdist_wheel
ls -1tr dist/*.whl | tail -n 1 | xargs pip3.5 install

usage

Example of roundtrip from code through AST to code:

import typed_ast
import typed_astunparse

code = 'my_string = None # type: str'
roundtrip = typed_astunparse.unparse(typed_ast.ast35.parse(code))
print(roundtrip)

code = 'my_string: str = None'
roundtrip = typed_astunparse.unparse(typed_ast.ast35.parse(code))
print(roundtrip)

for more examples see examples.ipynb notebook.

Release History

Release History

0.2.1

This version

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.2.0

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.1.0

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

Download Files

Download Files

TODO: Brief introduction on what you do with files - including link to relevant help section.

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
typed_astunparse-0.2.1-py3-none-any.whl (12.0 kB) Copy SHA256 Checksum SHA256 py3 Wheel Nov 10, 2016

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS HPE HPE Development Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting