This blog post summarizes the main tasks that I have done during these 3 months as a GSoC’16 Intern, and the things I have learned along with that.
All the commits I have made during this period are listed here on this Github link:
Note: All the code has been merged to
Lists of tasks:
a) Upgrade scripts to Datapackage.JSON standard.
This was my main GSoC task, that I spent most of the last 6 weeks in, that includes code and documentation.
- The scripts have been updated from
parse_script_to_jsonmodule I wrote.
- A new CLI (command-line-interface) tool has been added by me, that can:
- Create new JSON scripts: Takes input for all the relevant fields from the user, validates the input, and stores them in valid JSON format (Datapackage.JSON standard).
- Delete JSON scripts: Deletes any script based on the script’s shortname. Searches the list of python scripts (
SCRIPT_LIST) and deletes the scripts that match the users requirement after confirming.
- (Experimental) Edit JSON scripts: This feature has not been completely tested, so currently disabled. This allows users to edit existing
- Added unit-tests and modified integration tests to test input validation and JSON script integration (download and installation regression tests).
- Added documentation (link) to guide the user on this new tool.
retriever to Python 3, maintaining backwards compatibility.
Not a cakewalk at all. I already highlighted the various
csv and encoding issues (
latin-1) in the previous post. But nevertheless, the library is now fully compatible, both on Python 2 and 3, on all major *NIX and Windows platforms (tested on Ubuntu, Mac, Windows 7).
I completed this in the first month of the GSoC period, and have been adding fixes related to all the bugs that came up during the rest of the coding period. I refactored the code so that there is no more need for explicit OS checks, thanks to help from my mentors Henry and Ethan.
retrievercan now be installed in either Python 2 or Python 3, without any difficulties.
- Cross-platform compatiblity (with python 2 and 3 both).
- Updated documentation(link) to reflect Python 3 support.
1. Python idioms
2. Unit testing (with
3. Different types of unicode encodings (
sphinx documentation system
6. Python 2 vs python 3 – syntax and package-support differences.
In closing, it was an immensely rewarding learning experience, and I look forward to remain associated with the
Thanks for reading!