A backport of fstrings to python<3.6
this library is no longer needed:
A backport of fstrings to python<3.6.
pip install future-fstrings
Include the following encoding cookie at the top of your file (this replaces the utf-8 cookie if you already have it):
# -*- coding: future_fstrings -*-
And then write python3.6 fstring code as usual!
# -*- coding: future_fstrings -*-
thing = 'world'
print(f'hello {thing}')
$ python2.7 main.py
hello world
future-fstrings
also includes a cli to show transformed source.
$ future-fstrings-show main.py
# -*- coding: future_fstrings -*-
thing = 'world'
print('hello {}'.format((thing)))
The future-fstrings-show
command can be used to transform source before
distributing. This can allow you to write f-string code but target platforms
which do not support f-strings, such as micropython.
To use this on modern versions of python, install using:
pip install future-fstrings[rewrite]
and then use future-fstrings-show
as above.
For instance:
future-fstrings-show code.py > code_rewritten.py
future-fstrings
has two parts:
codec
which performs source manipulation
codec
first decodes the source bytes using the UTF-8 codeccodec
then leverages
tokenize-rt to rewrite
f-strings..pth
file which registers a codec on interpreter startup.site
registrationin setups (such as aws lambda) where you utilize PYTHONPATH
or sys.path
instead of truly installed packages, the .pth
magic above will not take.
for those circumstances, you'll need to manually initialize future-fstrings
in a non-fstring wrapper. for instance:
import future_fstrings
future_fstrings.register()
from actual_main import main
if __name__ == '__main__':
raise SystemExit(main())