Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
user:kluong:improvement_-_upgrade_gateway_code_from_python2_to_python3 [2022/02/13 14:42] kluong |
user:kluong:improvement_-_upgrade_gateway_code_from_python2_to_python3 [2022/02/17 14:58] (current) kluong |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== Improvement - Update gateway code from python 2 to python 3 ====== | ====== Improvement - Update gateway code from python 2 to python 3 ====== | ||
+ | |||
+ | ===== Background ===== | ||
Python 2 is no longer supported, we should migrate to python 3. | Python 2 is no longer supported, we should migrate to python 3. | ||
Line 7: | Line 9: | ||
Prior to doing this, it would be helpful to reformat some of the code - there’s a mix of tabs and spaces (switch to only using spaces) | Prior to doing this, it would be helpful to reformat some of the code - there’s a mix of tabs and spaces (switch to only using spaces) | ||
- | There’s a python tool called 2to3 that should help with this conversion. | + | There’s a python tool called 2to3 that should help with this conversion. Here's a really simple example. Consider an old python2 file below - where there is a print statement without parenthesis: |
<code> | <code> | ||
+ | cat old.py | ||
+ | print "hello, world" | ||
+ | </code> | ||
- | # TODO - add some of the 2to3 examples here | + | We can run `2to3` on the file with the `-w` flag to edit it inline: |
+ | <code> | ||
+ | $ 2to3 -w old.py | ||
+ | RefactoringTool: Skipping optional fixer: buffer | ||
+ | RefactoringTool: Skipping optional fixer: idioms | ||
+ | RefactoringTool: Skipping optional fixer: set_literal | ||
+ | RefactoringTool: Skipping optional fixer: ws_comma | ||
+ | RefactoringTool: Refactored old.py | ||
+ | --- old.py (original) | ||
+ | +++ old.py (refactored) | ||
+ | @@ -1 +1 @@ | ||
+ | -print "hello world" | ||
+ | +print("hello world") | ||
</code> | </code> | ||
- | One task to complete prior to starting is: | + | You can see the print function was modified to convert it to something that's acceptable in python3. |
+ | |||
+ | ===== Tasks ===== | ||
+ | |||
+ | |||
+ | - Cleanup some of the indentation in the code - there mixed tabs and spaces all over the place, this should be converted to use spaces. This is used by the official python style guide. | ||
+ | - Submit a PR for the above changes, get review/approval | ||
+ | - Cleanup the python3 files | ||
+ | - Make sure that the integration test runs properly | ||
+ | - Submit a PR for the above changes, get review/approval | ||
+ | |||
- | * Cleanup some of the indentation in the code - there mixed tabs and spaces all over the place, this should be converted to use spaces. This is used by the official python style guide: https://www.youtube.com/ | ||