wiki:GSoC/2018/FullSupportPython3

Version 4 (modified by sanjeet, 3 years ago) (diff)

--

Full support of Python 3 in GRASS GIS

Title: Full support of Python 3 in GRASS GIS
Student Name: Sanjeet Bhatti
Organization: OSGeo - Open Source Geospatial Foundation
Mentor Name: Anna Petrášová and Luca Delucchi
GSoC proposal: View proposal
Link to code: Code Repository

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