Tags: gaborbernat/tox-uv
Tags
Fix failure when running within a UV venv activated shell (tox-dev#66)
[pre-commit.ci] pre-commit autoupdate (tox-dev#58) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Pass sys.executable to `uv venv` if it is the same version (tox-dev#40) * Pass sys.executable to `uv venv` if it is the same version Support the case when pythonX.Y is not in the search path, but it corresponds to the currently running Python interpreter. This may happen if e.g. Tox is installed (along with tox-uv) in a virtual environment that has been created with a Python interpreter coming from a non-standard location, and then `tox` is invoked directly from the virtual environment's `bin/` directory: [roam@straylight ~]$ mkdir ~/not-in-path [roam@straylight ~]$ uv venv -p /opt/some-vendor/python3/bin/python3 ~/not-in-path/venv Using Python 3.8.17 interpreter at: /opt/some-vendor/python3/bin/python3 Creating virtualenv at: /home/roam/not-in-path/venv Activate with: source /home/roam/not-in-path/venv/bin/activate [roam@straylight ~]$ (set -e; . ~/not-in-path/venv/bin/activate; uv pip install tox tox-uv) ...snip... [roam@straylight ~]$ printf -- '%s\n' '[testenv]' 'package=skip' 'commands=python3 -c "print()"' > ~/not-in-path/tox.ini [roam@straylight ~]$ ~/not-in-path/venv/bin/tox -c ~/not-in-path/tox.ini py: venv /home/roam/not-in-path> venv/bin/uv venv -p 3.8 /home/roam/not-in-path/.tox/py/.venv × No Python 3.8 in `PATH`. Is Python 3.8 installed? py: exit 1 (0.01 seconds) /home/roam/not-in-path> venv/bin/uv venv -p 3.8 /home/roam/not-in-path/.tox/py/.venv pid=1059253 py: FAIL code 1 (0.02 seconds) evaluation failed :( (0.11 seconds) [roam@straylight ~]$ * Let Ruff know that we try to use subprocess responsibly * Tox is certainly installed during the test suite run
Add uv_resolution as testenv parameter (tox-dev#39) * Add uv_resolution as testenv parameter uv supports defining a custom resolution strategy, defaulting to 'highest', and allowing 'lowest' or 'lowest-direct' at the time of writing, which provides an alternative to package constraints enabling lowest direct or transitive dependencies to be installed. This change provides a new 'uv_resolution' configuration option for test environments, which if defined will apply the '--resolution' option to uv to enable this behavior. Implements tox-dev#28. * Ensure call arguments match defined options for uv resolution * Restrict uv resolution options to known values uv currently supports "highest", "lowest", or "lowest-direct" as resolution strategies, which we now validate. * Document the new `uv_resolution` flag * Use base type and post-process for uv_resolution mypy expects the actual type for add_config, so we instead use post-processing to validate the literal string against known options, raising an error if otherwise. * Test all valid and an invalid uv_resolution strategy
PreviousNext