Name | ayu JSON |
Version |
0.4.3
JSON |
| download |
home_page | None |
Summary | An interactive TUI for pytest |
upload_time | 2025-08-03 17:56:12 |
maintainer | None |
docs_url | None |
author | None |
requires_python | >=3.10 |
license | None |
keywords |
pytest
python
textual
tui
|
VCS |
 |
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
[](https://github.com/astral-sh/ruff)
[](https://pypi.org/project/ayu/)
[](https://pypi.python.org/pypi/ayu)
[](https://opensource.org/licenses/MIT)
[](https://pepy.tech/project/ayu)
[](https://coveralls.io/github/Zaloog/ayu?branch=main)
# ayu
ayu is a TUI and pytest-plugin, which allows you to run your pytest tests in a more interactive
fashion in your terminal.
# Features
## Main Screen

- Explore your Test tree
- Mark tests to run, via the test-tree, markers or the search function
- View and filter test results and debug errors
## Coverage Viewer

- View your code coverage (first view is just based on a `--collect-only`)
## Plugin Explorer
> Currently just exploratory, changes made here are not persisted to your pytest config

- View your plugin options and discover new plugins
## Log

- Shows the console output, that would normally be written into the terminal
## File Watcher
If toggled, ayu utilizes [watchfiles], to detect changes in the directory you declared when executing ayu (default: `tests`).
After a change is detected, a notification is shown and all tests under the specific file will be run automatically.
## How does it work
The application starts a local websocket server at `localhost:1337` and the plugin sends data about
collected tests/plugins/results to the app.
The host and port can be customized with the following environment variables
It utilizes [uv] in the background to run [pytest] commands.
Concrete it runs `uv run --with ayu pytest [PYTEST-OPTION]` to utilize your python environment and installs the
plugin temporary on the fly to send the data to the TUI, without changing your local environment
or adding dependencies to your project.
```bash
AYU_HOST=localhost
AYU_PORT=1337
```
# Requirements & Usage
## Requirements
ayu needs your project to be uv-managed and you need your tests be discoverable by pytest.
## Usage
To discover all your tests under `tests`
```bash
uvx ayu
```
To discover all your tests under a specific directory
```bash
uvx ayu <PATH/TO/DIR>
```
# Feedback and Issues
Feel free to reach out and share your feedback, or open an [Issue],
if something doesnt work as expected.
Also check the [Changelog] for new updates.
<!-- Repo Links -->
[Changelog]: https://github.com/Zaloog/ayu/blob/main/CHANGELOG.md
[Issue]: https://github.com/Zaloog/ayu/issues
<!-- Python Package Links -->
[uv]: https://docs.astral.sh/uv
[pytest]: https://docs.pytest.org/en/stable/
[watchfiles]: https://watchfiles.helpmanual.io
Raw data
{
"_id": null,
"home_page": null,
"name": "ayu",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.10",
"maintainer_email": null,
"keywords": "pytest, python, textual, tui",
"author": null,
"author_email": "Zaloog <gramslars@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/3b/7e/6395eefcbaeb6d4d2c1458615065b6d52c4cb103ff287820e158a9ef6d6e/ayu-0.4.3.tar.gz",
"platform": null,
"description": "[](https://github.com/astral-sh/ruff)\n[](https://pypi.org/project/ayu/)\n[](https://pypi.python.org/pypi/ayu)\n[](https://opensource.org/licenses/MIT)\n[](https://pepy.tech/project/ayu)\n[](https://coveralls.io/github/Zaloog/ayu?branch=main)\n\n# ayu\nayu is a TUI and pytest-plugin, which allows you to run your pytest tests in a more interactive\nfashion in your terminal.\n\n\n# Features\n## Main Screen\n\n- Explore your Test tree\n- Mark tests to run, via the test-tree, markers or the search function\n- View and filter test results and debug errors\n\n## Coverage Viewer\n\n- View your code coverage (first view is just based on a `--collect-only`)\n\n## Plugin Explorer\n> Currently just exploratory, changes made here are not persisted to your pytest config\n\n\n- View your plugin options and discover new plugins\n\n## Log\n\n- Shows the console output, that would normally be written into the terminal\n\n## File Watcher\nIf toggled, ayu utilizes [watchfiles], to detect changes in the directory you declared when executing ayu (default: `tests`).\nAfter a change is detected, a notification is shown and all tests under the specific file will be run automatically.\n\n## How does it work\nThe application starts a local websocket server at `localhost:1337` and the plugin sends data about\ncollected tests/plugins/results to the app.\nThe host and port can be customized with the following environment variables\n\nIt utilizes [uv] in the background to run [pytest] commands.\nConcrete it runs `uv run --with ayu pytest [PYTEST-OPTION]` to utilize your python environment and installs the\nplugin temporary on the fly to send the data to the TUI, without changing your local environment\nor adding dependencies to your project.\n\n```bash\nAYU_HOST=localhost\nAYU_PORT=1337\n```\n\n# Requirements & Usage\n## Requirements\nayu needs your project to be uv-managed and you need your tests be discoverable by pytest.\n\n## Usage\nTo discover all your tests under `tests`\n\n```bash\nuvx ayu\n```\n\nTo discover all your tests under a specific directory\n```bash\nuvx ayu <PATH/TO/DIR>\n```\n\n# Feedback and Issues\nFeel free to reach out and share your feedback, or open an [Issue],\nif something doesnt work as expected.\nAlso check the [Changelog] for new updates.\n\n\n<!-- Repo Links -->\n[Changelog]: https://github.com/Zaloog/ayu/blob/main/CHANGELOG.md\n[Issue]: https://github.com/Zaloog/ayu/issues\n\n<!-- Python Package Links -->\n[uv]: https://docs.astral.sh/uv\n[pytest]: https://docs.pytest.org/en/stable/\n[watchfiles]: https://watchfiles.helpmanual.io\n",
"bugtrack_url": null,
"license": null,
"summary": "An interactive TUI for pytest",
"version": "0.4.3",
"project_urls": {
"Changelog": "https://github.com/Zaloog/ayu/blob/main/CHANGELOG.md",
"Repository": "https://github.com/Zaloog/ayu"
},
"split_keywords": [
"pytest",
" python",
" textual",
" tui"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "4aeac9074b9bcfdb59adcd2820eca28a5679434fc4c66d336be19dbe7f16070b",
"md5": "f1de5f72cf74e77fff8a82614dda0aee",
"sha256": "de5ba398ccdfc14681ba4507b32e1a9431414e2171461d02014359553f2957cf"
},
"downloads": -1,
"filename": "ayu-0.4.3-py3-none-any.whl",
"has_sig": false,
"md5_digest": "f1de5f72cf74e77fff8a82614dda0aee",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.10",
"size": 36057,
"upload_time": "2025-08-03T17:56:11",
"upload_time_iso_8601": "2025-08-03T17:56:11.502939Z",
"url": "https://files.pythonhosted.org/packages/4a/ea/c9074b9bcfdb59adcd2820eca28a5679434fc4c66d336be19dbe7f16070b/ayu-0.4.3-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "3b7e6395eefcbaeb6d4d2c1458615065b6d52c4cb103ff287820e158a9ef6d6e",
"md5": "3047449efeacd79a74208da9335cb121",
"sha256": "a86158b037ade43adb15c50993a840448d35b7f43e5081f11b6173f12ebf7055"
},
"downloads": -1,
"filename": "ayu-0.4.3.tar.gz",
"has_sig": false,
"md5_digest": "3047449efeacd79a74208da9335cb121",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.10",
"size": 1059496,
"upload_time": "2025-08-03T17:56:12",
"upload_time_iso_8601": "2025-08-03T17:56:12.745380Z",
"url": "https://files.pythonhosted.org/packages/3b/7e/6395eefcbaeb6d4d2c1458615065b6d52c4cb103ff287820e158a9ef6d6e/ayu-0.4.3.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-03 17:56:12",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "Zaloog",
"github_project": "ayu",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "ayu"
}