Metadata-Version: 2.4
Name: ultra-piston
Version: 1.0.0
Summary: An all-in-one API wrapper for the Piston API in Python
Author-email: Jiggly Balls <jigglyballs9000@gmail.com>
Project-URL: Source, https://github.com/Jiggly-Balls/ultra-piston
Project-URL: Documentation, https://game-state.readthedocs.io/en/latest/index.html
Project-URL: Issues, https://github.com/Jiggly-Balls/ultra-piston/issues
Project-URL: Stars, https://github.com/Jiggly-Balls/ultra-piston/stargazers
Classifier: Development Status :: 5 - Production/Stable
Classifier: Framework :: Pydantic
Classifier: Framework :: Pydantic :: 2
Classifier: Framework :: Pytest
Classifier: Framework :: Sphinx
Classifier: Natural Language :: English
Classifier: Operating System :: MacOS
Classifier: Operating System :: Microsoft :: Windows
Classifier: Operating System :: POSIX
Classifier: Operating System :: Unix
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Documentation :: Sphinx
Classifier: Topic :: Software Development :: Libraries
Classifier: Topic :: Text Processing :: Markup :: reStructuredText
Classifier: Topic :: Utilities
Classifier: Typing :: Typed
Requires-Python: >=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: aiocache>=0.12.3
Requires-Dist: httpx>=0.28.1
Requires-Dist: pydantic>=2.11.7
Dynamic: license-file

# Ultra Piston
An all-in-one wrapper for the [Piston API](https://piston.readthedocs.io/en/latest/) in Python.

## ✨ Features

This library offers robust customization options and essential functionalities, including:
- Complete 100% API coverage
- Rich data models
- Support for both synchronous and asynchronous methods
- Automatic rate limit handling
- Pluggable HTTP driver system — implement your own custom driver for handling requests

---

## 📦 Requirements & Installation

This library supports python versions `3.10` and higher.

To install ultra-piston via pip-
```
(.venv) $ pip install ultra_piston
```

Or by uv-
```
$ uv add ultra_piston
```

---

## 🚀 Quick Start

```python
from ultra_piston import PistonClient, File

client = PistonClient()

result = client.post_execute(
    language="python3",
    version="3.10.0",
    file=File(content='print("Hello from ultra-piston!")'),
)

print(result.run.output)
```

Ultra Piston also provides async methods for all the available endpoints!
To use the asynchronous variant of a method, simply append `_async` to the name of its synchronous counterpart.

```python
import asyncio
from ultra_piston import PistonClient, File

client = PistonClient()

async def main():
    result = await client.post_execute_async(
        language="python3",
        version="3.10.0",
        file=File(content='print("Hello from ultra-piston!")'),
    )

    print(result.run.output)

asyncio.run(main())
```

---

## 🔗 Links

Documentation - API Reference & Guide: https://ultra-piston.readthedocs.io/en/latest/index.html

## 📄 License

This project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details.
