NB: f2format is currently under reconstruction. It is highly recommended to directly install from the git repo or the pre-release distributions.
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.
See documentation for usage and more details.
Contributions are very welcome, especially fixing bugs and providing test cases. Note that code must remain valid and reasonable.
pybpc
(formerly known aspython-babel
)poseur
walrus
relaxedecor
vermin