2017 Google Summer of Code - Batavia improvements
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)