Compy is a program that apply transformations on Python programs. This tool is currently in development and is considered a preview, which means that it may be unstable and doesn't support all Python3 language features.
Here are some of the transformations that Compy can handle, along with their status. If you have idea for new transformations, don't hesitate to add and issue. If you would like to contribute, you can fork the repository and create a pull request with your changes. Please make sure to write tests for any new features or bug fixes, and to run cargo test
and cargo fmt
before submitting your pull request.
Feature | Status |
---|---|
Variables and data types | ✅ Done |
Control structures (if/else, for/while loops) | ✅ Done |
Flow statements (return, break, continue, pass) | ✅ Done |
Functions and lambdas | ✅ Done |
Classes and objects | ✅ Done |
Annotations | ✅ Done |
List, tuple, and dictionary manipulation | ✅ Done |
Modules and packages | ✅ Done |
Decorators | ✅ Done |
Built-in functions and modules | ✅ Done |
Generators and iterators | ✅ Done |
Globals | ✅ Done |
Delete | ✅ Done |
Exceptions | ✅ Done |
Yield | ❌ Not supported |
Exception handling | ❌ Not supported |
Context managers | ❌ Not supported |
Async / Await | ❌ Not supported |
Type hints / Static typing | ❌ Not supported |
git clone https://github.com/mlhoutel/compy.git && cd compy
cargo test
cargo build
cd docs
wasm-pack build --target web --out-dir static
npm i && npm run start
Once the server is running, you can open your web browser and navigate to http://localhost:8000 to see the demo website in action.