Changes between Version 24 and Version 25 of GSoC/2018/FullSupportPython3
- Timestamp:
- 08/13/18 22:29:38 (6 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
GSoC/2018/FullSupportPython3
v24 v25 46 46 {{{#!td 47 47 {{{#!html 48 Done 48 <center> 49 <span style="color:#0CAE49; font-size:25px;">✔</span><br> 50 </center> 49 51 }}} 50 52 }}} … … 59 61 }}} 60 62 {{{#!td 61 Done 63 {{{#!html 64 <center> 65 <span style="color:#0CAE49; font-size:25px;">✔</span><br> 66 </center> 67 }}} 62 68 }}} 63 69 |----------------------- … … 70 76 }}} 71 77 {{{#!td 72 Done 78 {{{#!html 79 <center> 80 <span style="color:#0CAE49; font-size:25px;">✔</span><br> 81 </center> 82 }}} 73 83 }}} 74 84 |----------------------- … … 82 92 }}} 83 93 {{{#!td 84 Done 94 {{{#!html 95 <center> 96 <span style="color:#0CAE49; font-size:25px;">✔</span><br> 97 </center> 98 }}} 85 99 }}} 86 100 |----------------------- … … 95 109 }}} 96 110 {{{#!td 97 Done 111 {{{#!html 112 <center> 113 <span style="color:#0CAE49; font-size:25px;">✔</span><br> 114 </center> 115 }}} 98 116 }}} 99 117 |----------------------- … … 107 125 }}} 108 126 {{{#!td 109 Done 127 {{{#!html 128 <center> 129 <span style="color:#0CAE49; font-size:25px;">✔</span><br> 130 </center> 131 }}} 110 132 }}} 111 133 |----------------------- … … 119 141 }}} 120 142 {{{#!td 121 Done 143 {{{#!html 144 <center> 145 <span style="color:#0CAE49; font-size:25px;">✔</span><br> 146 </center> 147 }}} 122 148 }}} 123 149 |----------------------- … … 130 156 }}} 131 157 {{{#!td 158 {{{#!html 159 <center> 160 <span style="color:#0CAE49; font-size:25px;">✔</span><br> 161 </center> 162 }}} 132 163 }}} 133 164 |----------------------- … … 141 172 }}} 142 173 {{{#!td 174 {{{#!html 175 <center> 176 <span style="color:#0CAE49; font-size:25px;">✔</span><br> 177 </center> 178 }}} 143 179 }}} 144 180 |----------------------- … … 152 188 }}} 153 189 {{{#!td 190 {{{#!html 191 <center> 192 <span style="color:#0CAE49; font-size:25px;">✔</span><br> 193 </center> 194 }}} 154 195 }}} 155 196 |----------------------- … … 163 204 }}} 164 205 {{{#!td 206 {{{#!html 207 <center> 208 <span style="color:#0CAE49; font-size:25px;">✔</span><br> 209 </center> 210 }}} 165 211 }}} 166 212 |----------------------- … … 177 223 }}} 178 224 {{{#!td 225 {{{#!html 226 <center> 227 <span style="color:#0CAE49; font-size:25px;">✔</span><br> 228 </center> 229 }}} 179 230 }}} 180 231 |----------------------- … … 188 239 }}} 189 240 {{{#!td 241 {{{#!html 242 <center> 243 <span style="color:#0CAE49; font-size:25px;">✔</span><br> 244 </center> 245 }}} 190 246 }}} 191 247 |----------------------- … … 199 255 }}} 200 256 {{{#!td 257 {{{#!html 258 <center> 259 <span style="color:#0CAE49; font-size:25px;">✔</span><br> 260 </center> 261 }}} 201 262 }}} 202 263 … … 445 506 446 507 **Abstract:**\\ 447 This project updates the GRASS GIS software to support Python 3, where earlier it only worked with Python 2.7 version. All the libraries, modules and components of the system have been updated to include the latest changes that have been introduced in Python 3. One of the important updates was a way to deal with unicode and bytes strings that helped in making GRASS compatible with both the versions of Python by properly encoding and decoding the strings. Additionally, the ctypes library, which was only working with Python 2.7, has been upgraded to deal with Python 3 which further helped in modifying the temporal and pygrass libraries. The pydispatch and guinittest modules hasalso been altered to properly deal with unicodes while the trunk/scripts have been modified and tested by writing new testsuites for them. The GUI module of GRASS is built with wxPython Classic version, which now with the help of wrapper classes works well with the latest wxPython 4 - Phoenix version.448 449 **The state of the art BEFORE start of GSoC:**\\450 Before the start of the project, GRASS GIS had partial support for Python 3. The ctypes library failed to compile with Python 3 wh ereas a lot of code in other modules was incompatible with Python 3 syntax. The GUI module worked with wxPython 3 (Classic version) but not with the latest wxPython 4 (Phoenix). There werelot of assertion errors and deprecated code warnings that were seen when GRASS was coupled with the wxPython 4.508 This project updates the GRASS GIS software to support Python 3, where earlier it only worked with the Python 2.7 version. All the libraries, modules and components of the system have been updated to include the latest changes that have been introduced in Python 3. One of the important updates was a way to deal with unicode and bytes strings that helped in making GRASS compatible with both the versions of Python by properly encoding and decoding the strings. Additionally, the ctypes library, which was only working with Python 2.7, has been upgraded to deal with Python 3 which further helped in modifying the temporal and pygrass libraries. The pydispatch and guinittest modules have also been altered to properly deal with unicodes while the trunk/scripts have been modified and tested by writing new testsuites for them. The GUI module of GRASS is built with wxPython Classic version, which now with the help of wrapper classes works well with the latest wxPython 4 - Phoenix version. 509 510 **The state of the art BEFORE the start of GSoC:**\\ 511 Before the start of the project, GRASS GIS had partial support for Python 3. The ctypes library failed to compile with Python 3 while a lot of code in other modules was also incompatible with Python 3 syntax. The GUI module worked with wxPython 3 (Classic version) but not with the latest wxPython 4 (Phoenix). There were a lot of assertion errors and deprecated code warnings that were seen when GRASS was coupled with the wxPython 4. 451 512 452 513 **The state of the art AFTER GSoC:**\\ … … 455 516 456 517 **Challenges:**\\ 457 The biggest challenge in updating GRASS was dealing with the ‘ctypes’ library. The official library has not been updated since some time now and the Python 3 support is not complete. It was a major hurdle to get it working in GRASS to compile other modules/libraries that are dependent on the ‘ctypes’. After making the desired changes in the library, the GRASS system is able to compile but there are some lingering issues that make it hard to fix the issues that persist in the temporal and pygrass libraries.518 The biggest challenge in updating GRASS was dealing with the ‘ctypes’ library. The official library has not been updated since some time now and the Python 3 support is not complete. It was a major hurdle to get the 'ctypes' working in GRASS to compile other modules/libraries that are dependent on this library. After making the desired changes in the library, the GRASS system is able to compile but there are some lingering issues that make it hard to fix other errors that persist in the temporal and pygrass libraries. 458 519 459 520 **Next Steps:**\\