Full support of Python 3 in GRASS GIS
Abstract
The current GRASS GIS version has partial support for Python 3. This project aims to update core GRASS components for Python 3 and update all the python modules, libraries and components like script package, python/ctypes, pygrass, temporal, wxGUI, etc. At the end of this project, GRASS GIS will be compatible with both the versions of python, i.e Python 2.7 and Python 3 with its GUI having support for wxPython 4.
Timeline
Time Period
|
Milestones
|
---|
Tasks
|
Status
|
April 23 - May 14
Community Bonding
| - Introduction to Community
- Create Wiki page
- Set up code repository
- Set up development environment
- Discussion with community members and mentors about the design of the project
- Get familiar with the testing framework
- Update current tests of the libraries, adjust them to work with Python3 and write new tests
- Get familiar with the overall working of GRASS GIS and understand Python dependencies in the system
- Read documentation
- Practice fixing bugs
|
✔
✔
✔
✔
...
...
...
...
...
✔
|
May 14 - May 20
Week 1
| - Dealing with Unicode & binary data (encoding and decoding).
- Setting up the foundation for porting the main libraries and components
| |
May 21 - May 27
Week 2
|
Porting script package module and its dependencies
| |
May 28 - June 3
Week 3
|
Porting temporal module and its dependencies
| |
June 4 - June 10
Week 4
| - Finish pending work for this phase, if any.
- Preparing and testing the changes for the evaluation
| |
July 11 - July 15
Evaluation 1
| - Evaluation of work done in the previous phase
- Next phase discussions
| |
June 11 - June 17
Week 5
| - Incorporate any changes, as necessary, from the discussions and feedback
- Finish porting remaining libs, components and scripts
| |
June 18 - June 24
Week 6
|
Work on porting ctypes module
| |
June 25 - July 1
Week 7
| - Porting pygrass module and its dependencies
- Porting other libs and their dependencies
| |
July 2 - July 8
Week 8
| - Finish pending work for this phase, if any.
- Preparing and testing the changes for the evaluation
| |
July 9 - July 13
Evaluation 2
| - Evaluation of work done in the previous phase
- Next phase discussions
| |
July 9 - July 29
Week 9-11
| - Based on the feedback, make necessary changes
- Writing additional classes in wrap.py for updating wxGUI to be compatible with both wxPython 3 and 4.
- Finish porting to Python 3
- Fixing all deprecated messages
- Testing the changes.
| |
July 30 - August 5
Week 12
| - Preparing and testing all the changes
- Writing documentation for the final evaluation
| |
August 6 - August 14
Evaluation 3 (Final)
| - Final code submission
- Evaluation of final submission
| |
Weekly reports