# libretro.py
A Python binding for [libretro][libretro] intended for testing cores,
but suitable for any purpose.
Ease of use, flexibility, and complete API support are top priorities.
<div align="center">
[![Workflow Status](https://github.com/JesseTG/libretro.py/actions/workflows/release.yml/badge.svg)](https://github.com/JesseTG/libretro.py/actions/workflows/release.yml)
[![PyPi](https://img.shields.io/pypi/v/libretro.py)](https://pypi.org/project/libretro.py)
[![License](https://img.shields.io/github/license/JesseTG/libretro.py)](LICENSE)
</div>
# Supported Environments
libretro.py has the following requirements:
- Python 3.11 or newer.
May not work on alternative Python implementations like PyPy.
- Supported on Windows, macOS, and Linux.
May work on other platforms, but no promises.
Nothing else is required for most functionality,
but some [extra features](#extras) have additional dependencies or constraints.
If contributing then [`just`][just] is optional but recommended,
as it will simplify most development tasks.
For details, run `just` (no arguments) in the project root.
# Installing
libretro.py supports **Python 3.11 or newer**.
Nothing else is required for most functionality,
but some extra features have additional dependencies.
You can install libretro.py with `pip` like so:
```bash
# Install the base libretro.py
pip install libretro.py
```
Using a virtual environment is recommended:
```bash
# Create a virtual environment
python -m venv ./venv
# Activate the virtual environment (in Bash)
source ./venv/bin/activate
# Activate the virtual environment (in PowerShell)
./venv/Scripts/activate.ps1
```
Or if you have [`just`][just] installed, let it figure out the details for you:
```bash
just venv
```
## Extras
To install additional features,
add one or more of the following extras to the `install` command:
- **`dev`:** Assorted tools used to help develop libretro.py.
Required if contributing to libretro.py.
- **`opengl`:** Support for the built-in OpenGL video driver.
Required if testing a core's OpenGL support.
- **`opengl-window`:** Same as the `opengl` extra,
but with support for opening an actual window.
Can help simplify some debugging tasks,
e.g. RenderDoc usage.
For example, if you want to submit an improvement to the OpenGL video driver,
you would install libretro.py like so:
```bash
pip install libretro.py[opengl,dev]
```
And if you just want to test your libretro core's OpenGL support:
```bash
pip install libretro.py[opengl]
```
Some of these extras have additional dependencies.
### OpenGL
If using OpenGL support on Linux,
you may need to install the `libopengl0` package.
[just]: https://just.systems
[libretro]: https://www.libretro.com
Raw data
{
"_id": null,
"home_page": null,
"name": "libretro.py",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.11",
"maintainer_email": "Jesse Talavera <jesse@jesse.tg>",
"keywords": "libretro, retroarch, emulation, testing, retrogaming",
"author": null,
"author_email": "Jesse Talavera <jesse@jesse.tg>",
"download_url": "https://files.pythonhosted.org/packages/f0/d4/df9428c2054898831c83288270788ef16c42de5cd54828ff6ede148bd2c9/libretro_py-0.1.11.tar.gz",
"platform": null,
"description": "# libretro.py\n\nA Python binding for [libretro][libretro] intended for testing cores,\nbut suitable for any purpose.\nEase of use, flexibility, and complete API support are top priorities.\n\n<div align=\"center\">\n\n[![Workflow Status](https://github.com/JesseTG/libretro.py/actions/workflows/release.yml/badge.svg)](https://github.com/JesseTG/libretro.py/actions/workflows/release.yml)\n[![PyPi](https://img.shields.io/pypi/v/libretro.py)](https://pypi.org/project/libretro.py)\n[![License](https://img.shields.io/github/license/JesseTG/libretro.py)](LICENSE)\n\n</div>\n\n# Supported Environments\n\nlibretro.py has the following requirements:\n\n- Python 3.11 or newer.\n May not work on alternative Python implementations like PyPy.\n- Supported on Windows, macOS, and Linux.\n May work on other platforms, but no promises.\n\nNothing else is required for most functionality,\nbut some [extra features](#extras) have additional dependencies or constraints.\n\nIf contributing then [`just`][just] is optional but recommended,\nas it will simplify most development tasks.\nFor details, run `just` (no arguments) in the project root.\n\n# Installing\n\nlibretro.py supports **Python 3.11 or newer**.\nNothing else is required for most functionality,\nbut some extra features have additional dependencies.\n\nYou can install libretro.py with `pip` like so:\n\n```bash\n# Install the base libretro.py\npip install libretro.py\n```\n\nUsing a virtual environment is recommended:\n\n```bash\n# Create a virtual environment\npython -m venv ./venv\n\n# Activate the virtual environment (in Bash)\nsource ./venv/bin/activate\n\n# Activate the virtual environment (in PowerShell)\n./venv/Scripts/activate.ps1 \n```\n\nOr if you have [`just`][just] installed, let it figure out the details for you:\n\n```bash\njust venv\n```\n\n## Extras\n\nTo install additional features,\nadd one or more of the following extras to the `install` command:\n\n- **`dev`:** Assorted tools used to help develop libretro.py.\n Required if contributing to libretro.py.\n- **`opengl`:** Support for the built-in OpenGL video driver.\n Required if testing a core's OpenGL support.\n- **`opengl-window`:** Same as the `opengl` extra,\n but with support for opening an actual window.\n Can help simplify some debugging tasks,\n e.g. RenderDoc usage.\n\nFor example, if you want to submit an improvement to the OpenGL video driver,\nyou would install libretro.py like so:\n\n```bash\npip install libretro.py[opengl,dev]\n```\n\nAnd if you just want to test your libretro core's OpenGL support:\n\n```bash\npip install libretro.py[opengl]\n```\n\nSome of these extras have additional dependencies.\n\n### OpenGL\n\nIf using OpenGL support on Linux,\nyou may need to install the `libopengl0` package.\n\n[just]: https://just.systems\n[libretro]: https://www.libretro.com\n",
"bugtrack_url": null,
"license": "MIT License",
"summary": "A libretro frontend for Python intended for testing cores.",
"version": "0.1.11",
"project_urls": {
"Changelog": "https://github.com/JesseTG/libretro.py/blob/master/CHANGELOG.md",
"Homepage": "https://github.com/JesseTG/libretro.py",
"Issues": "https://github.com/JesseTG/libretro.py/issues",
"Repository": "https://github.com/JesseTG/libretro.py"
},
"split_keywords": [
"libretro",
" retroarch",
" emulation",
" testing",
" retrogaming"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "ae29dc44e4484af5f0ca4415f2b3305d597ae141974bf42abd675fff4189dac3",
"md5": "2d6b75b1f7e9c24c3be631630d6bfae1",
"sha256": "97b77baac22f2dd743a3be4dec6822d42e594f0417b62d27e3fdc16593081226"
},
"downloads": -1,
"filename": "libretro.py-0.1.11-py3-none-any.whl",
"has_sig": false,
"md5_digest": "2d6b75b1f7e9c24c3be631630d6bfae1",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.11",
"size": 137923,
"upload_time": "2024-06-10T18:57:51",
"upload_time_iso_8601": "2024-06-10T18:57:51.486970Z",
"url": "https://files.pythonhosted.org/packages/ae/29/dc44e4484af5f0ca4415f2b3305d597ae141974bf42abd675fff4189dac3/libretro.py-0.1.11-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "f0d4df9428c2054898831c83288270788ef16c42de5cd54828ff6ede148bd2c9",
"md5": "0835d5f753ccabbf79bc0ecff3cd946a",
"sha256": "ca98550d48107014fdc81fca817bca0e4ed3ee32854d71362807ec05a35cbae4"
},
"downloads": -1,
"filename": "libretro_py-0.1.11.tar.gz",
"has_sig": false,
"md5_digest": "0835d5f753ccabbf79bc0ecff3cd946a",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.11",
"size": 101168,
"upload_time": "2024-06-10T18:57:53",
"upload_time_iso_8601": "2024-06-10T18:57:53.369073Z",
"url": "https://files.pythonhosted.org/packages/f0/d4/df9428c2054898831c83288270788ef16c42de5cd54828ff6ede148bd2c9/libretro_py-0.1.11.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-06-10 18:57:53",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "JesseTG",
"github_project": "libretro.py",
"travis_ci": false,
"coveralls": true,
"github_actions": true,
"lcname": "libretro.py"
}