Pistonpy


⚠️DEPRECATED⚠️
Pistonpy is an API wrapper for the Piston code execution engine by Engineer Man.

## Key Features * Simple modern and efficient Pythonic API using the `requests` lib. * Supports application integration and CLI usage. ## Requirements Python 3.8+ * [requests](https://pypi.org/project/requests/) ## Installing To install the library, run the following commands: ```shell # Linux/MacOS python3 -m pip install -U pistonpy # Windows py -3 -m pip install -U pistonpy ``` ## Usage ```python from pistonpy import PistonApp # Initialize the client. piston = PistonApp() my_code = "print('This code ran from app.py itself!')" output = piston.run(language="python", version="3.10.0", code=my_code) print(output) ``` This gives the output: ```python {'language': 'python', 'version': '3.10.0', 'run': {'stdout': 'This code ran from app.py itself!\n', 'stderr': '', 'code': 0, 'signal': None, 'output': 'This code ran from app.py itself!\n'}} ``` ```python run_file = piston.run(language="python", files=['test.py']) # version is optional. files even if it maybe only one must be given as lists. print(run_file) ``` This gives the same output, ```python {'language': 'python', 'version': '3.10.0', 'run': {'stdout': 'The code ran from test.py\n', 'stderr': '', 'code': 0, 'signal': None, 'output': 'The code ran from test.py\n'}} ``` ```python # You cannot provide both code and files in a single PistonAPP().run() instance. # For running multiple files (For now it ONLY supports multiple python files) multiple_files = piston.run(language="python", version="3.10.0", files=['test.py', 'test_two.py']) print(multiple_files) ``` Sadly, the output for multiple files are provided all-together. This will be fixed in the upcoming updates. The above statement will output to: ```python {'language': 'python', 'version': '3.10.0', 'run': {'stdout': 'The code ran from test.py\nthis is test 2\n', 'stderr': '', 'code': 0, 'signal': None, 'output': 'The code ran from test.py\nthis is test 2\n'}} ``` ```python print(piston.languages) # Prints the available languages along with their version. print(piston.aliases) # Prints the available languages along with their alias/aliases. print(piston.raw) # Prints the raw data without any formatting done. ``` ## License This project is distributed under the [MIT](https://github.com/AalbatrossGuy/pistonpy/blob/main/LICENSE) license. ## Piston For visiting Piston's github repository, [click here.](https://github.com/engineer-man/piston)