PHP to Python transpiler.
Project description
php2py
PHP to Python transpiler.
- Free software: GNU General Public License v3
Use cases
- Helping port PHP code to Python (provides a first pass, which can then be manually edited).
Features
- Translates a subset of PHP to Python.
Install
- You need PHP and composer installed on your system.
- You need Python 3.10+.
For development
- From a git checkout, run
poetry shell
poetry install
composer install
For actual use
This should work:
pipx install php2py
Architecture
- Front-end (PHP parser): uses an external PHP parser (nikic/php-parser) to parse PHP code and build an AST.
- Back-end (Python generator): uses the AST to generate Python code, via pattern matching.
- Python code is generated from AST using the
unparse
from the stdlib.
TODO
- Add test cases (real programs) and make sure they pass.
- Make a runtime / stdlib of common PHP functions in Python.
- Cleanup.
Prior art
Contributing
I don't have time to work on this project ATM, but I'm happy to review pull requests.
If you are a student (or a group of students) in a computer science or engineering program, and you want to work on this, please contact me (mailto:sf@abilian.com).
If you think this project can be useful for your company, you can support the development effort through a sponsorship via my company, Abilian: https://abilian.com/.
Credits
This package was created with Cruft and the abilian/cookiecutter-abilian-python project template.
This project uses the nikic/php-parser
PHP parser (in PHP).
Project details
Release history Release notifications | RSS feed
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
File details
Details for the file php2py-0.2.0.tar.gz
.
File metadata
- Download URL: php2py-0.2.0.tar.gz
- Upload date:
- Size: 28.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8a5356bda5793efe6b097cd01939f900c513fe96c2661665081a41a38f502f37 |
|
MD5 | a014c2bcc9ef6058e98501f622da2d2e |
|
BLAKE2b-256 | c4eb3ec8b9a0e01d0fbfd84b371a147ab6f4848d951dfd59378283b2d6c83064 |
File details
Details for the file php2py-0.2.0-py3-none-any.whl
.
File metadata
- Download URL: php2py-0.2.0-py3-none-any.whl
- Upload date:
- Size: 20.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 16a5ceb3c5e74d5101fb7a816f1432596ae4ac793e4a7ebebe7930f8ac3edc02 |
|
MD5 | bc168b2b4b534dec6096cf4fc0ea59ac |
|
BLAKE2b-256 | c9ec12b34e8ea686a8b8491aed78a3f05b706ff718a0e6f5f0352ca117ddc535 |