Skip to content

Latest commit

 

History

History
144 lines (104 loc) · 6.04 KB

README.md

File metadata and controls

144 lines (104 loc) · 6.04 KB

Google Summer of Code 2025 Ideas

Grayhat pushes out a lot of open-source material every year, ranging from UI libraries, AI, and programming languages. This year, our focus for GSoC will be on strengthening UniversalPython, a movement to bring multlilingual programming as part of the Python specification (through PEP).

We're going easy this year. If you can type and occasionally form thoughts, you’ll probably be fine.

Join our Discord for vibes: https://discord.gg/CD3Dh6zcfE

Project Ideas


Making Language Files More Robust

Prerequisites:

  • Experience with Python
  • Experience with YAML
  • Experience with Software Architecture
  • Experience with Internationalization Concepts

Description:
This project focuses on establishing a robust foundation for language definitions in UniversalPython by introducing standardization and basic configuration management.

Key Objectives:

  1. Language Definition Standardization:

    • Design a standardized YAML-based format for defining language translations, including:
      • Keywords and built-in functions
      • Special characters and numerical systems
      • Right-to-left language support
      • Language-specific punctuation marks
  2. Configuration Management:

    • Engineer a flexible system for managing global transpilation settings, allowing easy modification of language-specific behaviors

Deliverables:

  • Modular language files for easy addition of new languages
  • Unit tests to validate correctness

Difficulty: Medium
Project Length: 175 hours

Coding Mentors:

Assisting Mentor:


Add More Human Languages to UniversalPython

Prerequisites:

  • Experience with Python
  • Experience with LLMs/Neural Networks
  • Experience with Prompt Engineering

Description:
Currently, UniversalPython supports only Hindi, Ukrainian, and Urdu through manually curated translation mappings. Instead of manually adding translations for more languages, this project aims to integrate a Large Language Model (LLM) for dynamic, AI-powered translations. The translations in most cases are not literal transaltion of a word hence the solution should take into account the context of the environment to generate the translation. The following languages will are required to be added:

  • Chinese
  • Russian
  • Tamil
  • French
  • German

Deliverables:

  • Define rules and prompts for accurate translations of words.
  • Develop a translation system which utilizes the power LLM's for UniversalPython

Difficulty: Hard
Project Length: 350 hours

Coding Mentors:

Assisting Mentor:


Translate Error/System Messages with "How to Solve" Guidance

Prerequisites:

  • Experience with Python
  • Experience with Exception Handling
  • Experience with Localization
  • Experience with Abstract Syntax Tree (AST)

Description:
This project enhances UniversalPython by translating Python’s error and system messages into the developer’s preferred language (e.g., Urdu, Ukrainian, Hindi). Beyond translation, it also provides actionable troubleshooting guidance for each error, helping non-English speakers and beginners understand and resolve issues efficiently. The system will dynamically analyze error messages and suggest potential solutions based on the error type and context, improving the debugging experience.

Deliverables:

  • Error/system messages translated into the preferred language.
  • Either in-compiler "How to Solve" guidance attached to each error message with actionable steps, or update documentation to cover these errors.
  • Configurable fallback to English for troubleshooting.

Difficulty: Hard
Project Length: 350 hours

Coding Mentors:

Assisting Mentor:


Translating and Transpilation for Third-Party Libraries

Prerequisites:

  • Experience with Python
  • Experience with AST Manipulation
  • Experience with Dynamic Code Analysis

Description:
This project aims to build a framework to enable the translation of third-party Python libraries (e.g., NumPy, pandas) when used in UniversalPython. This would involve intercepting and transpiling third-party APIs into target languages. This system would also allow developers to use translated function names, parameter names, and documentation, making Python more accessible for non-English speaking programmers. A modular design will ensure that additional libraries can be supported with minimal effort.

Deliverables:

  • Ability to translate function names, parameter names and documentation for common Python libraries.
  • Modular design for adding new libraries.
  • Configurable option to toggle between translated and original function names.
  • Automation of the above, via LLMs and automation scripts

Difficulty: Hard
Project Length: 350 hours

Coding Mentors:

Assisting Mentor: