ayu


Nameayu JSON
Version 0.4.3 PyPI version JSON
download
home_pageNone
SummaryAn interactive TUI for pytest
upload_time2025-08-03 17:56:12
maintainerNone
docs_urlNone
authorNone
requires_python>=3.10
licenseNone
keywords pytest python textual tui
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            [![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff)
[![PyPI-Server](https://img.shields.io/pypi/v/ayu.svg)](https://pypi.org/project/ayu/)
[![Pyversions](https://img.shields.io/pypi/pyversions/ayu.svg)](https://pypi.python.org/pypi/ayu)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![Downloads](https://static.pepy.tech/badge/ayu)](https://pepy.tech/project/ayu)
[![Coverage Status](https://coveralls.io/repos/github/Zaloog/ayu/badge.svg?branch=main)](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
![preview](https://raw.githubusercontent.com/Zaloog/ayu/main/images/main_screen.png)
- 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
![coverage](https://raw.githubusercontent.com/Zaloog/ayu/main/images/coverage_screen.png)
- 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

![plugin](https://raw.githubusercontent.com/Zaloog/ayu/main/images/plugin_screen.png)
- View your plugin options and discover new plugins

## Log
![log](https://raw.githubusercontent.com/Zaloog/ayu/main/images/log_screen.png)
- 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": "[![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff)\n[![PyPI-Server](https://img.shields.io/pypi/v/ayu.svg)](https://pypi.org/project/ayu/)\n[![Pyversions](https://img.shields.io/pypi/pyversions/ayu.svg)](https://pypi.python.org/pypi/ayu)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![Downloads](https://static.pepy.tech/badge/ayu)](https://pepy.tech/project/ayu)\n[![Coverage Status](https://coveralls.io/repos/github/Zaloog/ayu/badge.svg?branch=main)](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![preview](https://raw.githubusercontent.com/Zaloog/ayu/main/images/main_screen.png)\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![coverage](https://raw.githubusercontent.com/Zaloog/ayu/main/images/coverage_screen.png)\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![plugin](https://raw.githubusercontent.com/Zaloog/ayu/main/images/plugin_screen.png)\n- View your plugin options and discover new plugins\n\n## Log\n![log](https://raw.githubusercontent.com/Zaloog/ayu/main/images/log_screen.png)\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"
}
        
Elapsed time: 1.90262s