f2format-converter

Back-port compiler for Python 3.6 f-string literals.


Keywords
fstring, format, conversion, backport, f-string, pybpc
License
Apache-2.0
Install
pip install f2format-converter==0.8.4

Documentation

NB: f2format is currently under reconstruction. It is highly recommended to directly install from the git repo or the pre-release distributions.


f2format

PyPI - Downloads PyPI - Version PyPI - Python Version

GitHub Actions - Status Codecov - Coverage Documentation Status

Write f-string in Python 3.6 flavour, and let f2format worry about back-port issues 🍺

  Since PEP 498, Python introduced f-string literals in version 3.6. Though released ever since December 23, 2016, Python 3.6 is still not widely used as expected. For those who are now used to f-strings, f2format provides an intelligent, yet imperfect, solution of a backport compiler by converting f-strings to str.format expressions, which guarantees you to always write f-strings in Python 3.6 flavour then compile for compatibility later.

f2format is inspired and assisted by my good mate @gousaiyang. It functions by tokenising and parsing Python code into multiple abstract syntax trees (AST), through which it shall synthesise and extract expressions from f-string literals, and then reassemble the original string using str.format method. Besides conversion and format specification, f2format also considered and resolved string concatenation. Also, it always tries to maintain the original layout of source code, and accuracy of syntax.

Documentation

  See documentation for usage and more details.

Contribution

  Contributions are very welcome, especially fixing bugs and providing test cases. Note that code must remain valid and reasonable.

See Also