Fetching the latest programs, projects, and workspace data.
Tools for cross-platform Python application development.
Showing 5 of 5 projects. Click any project card for scope, mentors, and proposal studio.
Mentors: Student: Yap Boon Peng
<p>This project focus on implementing asyncio’s coroutine and event loop (both timer & socket based) for voc in JVM. Successful implementation of asyncio in voc will greatly benefit toga_android development and enable user to write concurrent functions (using asyc def/await) in Python and execute them in Java Virtual Machine after transpilation by voc.</p>
Mentors: Student: Patience Shyu
<p>The current implementation of Python AST to Java bytecode transpilation in many cases takes a naive approach, resulting in redundant bytecode instructions being produced and class files being longer than necessary. Not only does this make the code run slower than it should, this causes problems in some cases because the JVM enforces a <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.7.3" target="_blank">size limit</a> on class files, in particular on method sizes: each method must be less than 64KB.</p> <p>This proposal explores optimizations that cut down the number of generated bytecode instructions.</p>
Mentors: Student: Jonas Schell
<ol> <li><p>Programs and settings are a inseparably bound with each other. Every professional application gives users the freedom to change default values to their needs and preferences. Toga should realize this need and provide a strong and compelling solution to create beautiful and platform native settings. The creation of the Settings API is the main part of this proposal.</p> </li> <li><p>As a supporting project I also propose the first steps to build up a testing suite for the Toga project. The Toga project is completely untested at the moment. To change this, I will start to tackle the not trivial problem of cross platform testing, by build an inward facing testing system to test toga core and its interface.</p> </li> </ol>
Mentors: Student: Adam Boniecki
<p>This project consists of a number of features and improvements that further advance BeeWare's Batavia:</p> <ul> <li>Complete implementation of <code>dict</code> and <code>list</code> data types</li> <li>Implementation of JSON module from Python standard library</li> <li>Implementation of <code>yield from</code> statement</li> <li>Implementation of <code>with</code> statement</li> <li>Support for Python 3.6 bytecode</li> </ul>
Mentors: Student: Dayanne Fernandes
<p>Cricket's GUI interface is currently implemented using Tkinter, which has a lot of limitations. The main goal is the complete port of Cricket to use Toga as the framework for GUI interface. The base logic is mostly complete, so firstly I will plan how to adapt the actual architecture of the view to use Toga widgets. If I find one widget that Cricket uses but isn't implemented on Toga, I will develop a contribution to this specific widget. This way the application will not lose the basics layout. So, the proposal will not only focus on the port of Tkinter to Toga, but on mapping the necessary widgets for a real application using Toga framework. In addition of the advantages of using Toga instead of Tkinter as I highlighted, this is a opportunity to improve error handling and make better use of features that Toga has but Tkinter does not. It will be the first BeeWare project that “eats it is own dogwood".</p>