Steps
Run python-modernize on the Python files matching the INCR ticket you're working on, to make the code more compatible with Python 3.x without breaking Python 2.7 support:
Comment on the ticket to indicate that you are about to start working on it.
Launch a development shell in a Docker container via either "make shell" or devstack's "make lms-shell". Alternatively, you can create a new virtualenv or conda environment and install modernize and isort into it (this is a better choice on Windows).
python-modernize -w <directory you want to modernize>
isort -rc <directory you want to modernize>
Make sure the changes look reasonable and submit them as a pull request; mention this ticket in the description and include INCR-<Ticket Number> in the name.
Ask for tests to be triggered if they don't start automatically.
Diagnose any test failures caused by the changes, and either fix them or ask for help.
If you run into unexpected errors, see this document for common problems: https://openedx.atlassian.net/wiki/spaces/AC/pages/977666218/Using+python-modernize+effectively
Tips
The python-modernize
utility from the modernize package is very useful for quickly updating Python 2 code to also support Python 3, but the changes it makes aren't always ideal (or even correct). Here are some tips on how to improve its output.
...