Upgrade to Python 3¶
Stetl development started in Python 2. With PEP 373 the EOL of python 2.7 was announced and python 2 will not be officialy supported after 2020. Stetl was therefore upgraded to Python 3.
Work started early 2019 to upgrade
Stetl from Python 2 to Python 3. The last version of Stetl
that supports Python 2 is version 1.3. This version might receive quick fixes and updates, but
users are encouraged to upgrade to Stetl version 2 or higher and thus use Python 3.
For the full discussion on the Python 2 to Python 3 migration: see the conversation in pull request #81 within the GitHub repository.
Important changes for developers¶
Python 2 and 3 are very similar, but there are a couple of important changes that developers need to keep in mind and are worth mentioning:
- Stetl 2 supports Python 3.4.2 and higher (so unfortunately no f strings)
- Python 3 uses Unicode strings, meaning encoding/decoding is a bit different
cstringIOwere moved around
- slight syntax change on calling
- update on
- differences in
urllibto make http-calls (although issue 80 might change it to the requests library).
Important changes for users¶
The specification of the Stetl tool chain uses a configuration file. You can use the Inputs, Filters, and
Outputs that are provided by Stetl, or write your own. If you use Stetl Components in your configuration, you must
stetl. package prefix in the class specification. For example before Stetl version 2 the input XML
file was specified as
[input_xml_file] class = inputs.fileinput.XmlFileInput file_path = input/cities.xml
for Stetl version 2 this is changed to
[input_xml_file] class = stetl.inputs.fileinput.XmlFileInput file_path = input/cities.xml
Note the extra
stetl. part in the