Write Python code using keywords in your native language
Project description
LangPy
Write Python in your native language 🌍
LangPy is a lexical layer over Python that lets you write code using keywords in human languages, without changing Python's behavior.
# ejemplo.pyes (Spanish)
definir saludar(nombre):
si nombre == "Ana":
imprimir("Hola Ana")
sino:
imprimir("Hola", nombre)
saludar("Luis")
$ langpy ejemplo.pyes
Hola Luis
Why LangPy?
LangPy makes Python more accessible to non-English speakers by allowing you to use natural language keywords while keeping everything else exactly the same.
What LangPy IS ✅
- A lexical transpiler that translates keywords to Python
- 100% compatible with Python libraries and tools
- Zero runtime overhead - executes as native Python
- Easy migration path back to pure Python
What LangPy is NOT ❌
- NOT a new programming language
- NOT a custom interpreter or VM
- NOT translating error messages or APIs
- NOT changing Python's semantics
If something crosses these boundaries, it's out of scope.
Quick Start
Installation
Requirements: Python 3.10+
pip install langpy
Your First Program
Create a file hello.pyes:
definir main():
nombre = "World"
imprimir(f"Hello {nombre}!")
main()
Run it:
langpy hello.pyes
That's it! LangPy transpiles your code to standard Python and executes it immediately.
Supported Languages
| Language | Extension | Keywords Example |
|---|---|---|
| Spanish | .pyes |
definir, si, sino, imprimir |
| Portuguese | .pypt |
definir, se, senao, imprimir |
| French | .pyfr |
definir, si, sinon, imprimer |
The language is determined solely by the file extension. No flags or configuration needed.
Real-World Example
LangPy works seamlessly with local imports and external libraries.
operations.pyes
definir suma(a, b):
retornar a + b
definir resta(a, b):
retornar a - b
main.pyes
desde operations importar suma, resta
importar numpy como np
definir analizar_datos():
# Use your functions
resultado = suma(10, 5)
imprimir(f"Suma: {resultado}")
# Use any Python library
datos = np.array([1, 2, 3, 4, 5])
imprimir(f"Media: {np.mean(datos)}")
analizar_datos()
Run it:
langpy main.pyes
How It Works
.pyes / .pypt / .pyfr file
↓
tokenize (Python stdlib)
↓
keyword replacement
↓
untokenize
↓
execute with Python VM
Key Design Principles
- Only
NAMEtokens are translated (keywords) - Strings and comments remain unchanged
- Attribute names are preserved (
obj.method) - No custom AST or parser
- If Python can't tokenize it, neither can LangPy
CLI Usage
Execute directly
langpy script.pyes
Transpile to Python
langpy --transpile script.pyes
This generates standard .py files that you can run with python.
Force overwrite
langpy --transpile --force script.pyes
Get help
langpy --help
langpy --version
Project Status
Version: 0.1.2
- ✅ Stable transpilation core
- ✅ Language lexicons defined
- ✅ Fully functional CLI
- ✅ Comprehensive test suite
- ✅ Clear project scope
Contributing
LangPy's lexicon system is modular, making it easy to add new languages without modifying the core. Want to add your language? We'd love to have you contribute!
License
MIT
Made with ❤️ for the global Python community
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file langpy-0.1.2.tar.gz.
File metadata
- Download URL: langpy-0.1.2.tar.gz
- Upload date:
- Size: 10.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
40df2a945de81ab09352e77b5efeddcd5bf2e5aae4beae9e3b3e9c1567b9fa36
|
|
| MD5 |
0c2969aff20e25239bd1015d2b89bb3c
|
|
| BLAKE2b-256 |
dbec36cb446bdc83c6a3d513a8b6e861e0402d0b417a6b58dafaae517b67096b
|
File details
Details for the file langpy-0.1.2-py3-none-any.whl.
File metadata
- Download URL: langpy-0.1.2-py3-none-any.whl
- Upload date:
- Size: 12.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
76b8f2be62c911bc8f2c65e1eb0456699ec4a5455aa32e2cca4a9305f87a80b0
|
|
| MD5 |
e39624a4e46f3beabfb499c6789b03eb
|
|
| BLAKE2b-256 |
7d03ad9f13dbeb15d29deb92f2d789be68a6594fe854f73a3a6a619d0a6d81b6
|