With Google Summer of Code 2017 program nearing its end, it is time to summarize what I got done during the summer working on Batavia.
Batavia is a part of BeeWare's collection of projects. As it is still in its early stage of development, for my part I offered to implement a number of features missing from Batavia, ranging from elemental data types, through JSON manipulation and language constructs such as generators. I posted my proposal in this GitHub thread and kept it updated with my progress on a weekly basis.
Note that by the end of GSoC, we have decided to diverge from the proposal and forgo implementation of contextlib in favor of support for Python 3.6 2-byte wide opcodes.
Overall it was great learning experience and fun. Big thanks to my mentors Russell Keith-Magee and Katie McLaughlin, and the whole BeeWare community.
Pull Requests
Lists and dicts
JSON module
- Encoding JSON (JSONEncoder, dump and dumps)
- Decoding JSON (JSONDecoder, parse)
- Bug fix regarding cricket and test generation for JSONEncoder
Generators
- Fix numerous existing bugs in Batavia's generators
- yield from implementation
- Support for yield from in Python 3.5+
- Bug fix for yield from and Python 3.6+
with statement
Python 3.6 compatibility
- Support for 2-byte wide opcodes (Python 3.6+)
- Fix discrepancies in numerous error messages across Python versions (open PR)