virtualenv discovery plugin for tox 4 and multipython
Project description
virtualenv-multipython
virtualenv discovery plugin for multipython
[!NOTE] virtualenv-multipython has twin plugin tox-multipython that serves similar purpose for tox 3
This virtualenv plugin comes pre-installed in multipython Docker image and is responsible for resolving tox environment name to Python executable. Most probably, you don't need to install it yourself.
Environment names supported are all multipython tags, including free threading Python builds py313t and py314t. More names may be added in the future.
Behaviour
- Loosely follow behaviour of builtin virtualenv discovery, with differences listed below.
- Try requests one by one, starting with
--try-first-with; if one matches multipython tag or is an absolute path, return it to virtualenv. - If no request matched conditions above, fail to discover interpreter.
- In particular, commands on
PATHare not allowed. - If no version was requested at all, fall back to
sys.executable.
Testing
There are two test suites:
- Virtualenv. Install
virtualenvin host tag environment and create virtual environments for all target tags. Environment's python version must match target tag. In these tests we test all multipython tags as both host tags and target tags. - Tox 4.
toxandvirtualenvare installed in host tag environment, andtox runis executed ontox.iniwith env names equal to target tags. Tox environment's python version must match tox env name and target tag. This test includes subtests:- assert
{env_python}version when tox env is activated - assert
pythonversion when tox env is activated - install externally built sample package in tox environment
- execute entrypoint script of externally built sample package
- assert
Virtualenv supports discovery plugins since v20. In v20.22, it dropped support for Python <=3.6, in v20.27 it dropped support for Python 3.7.
This is why we use 6 different test setups:
- Virtualenv,
virtualenv>=20 - Virtualenv,
virtualenv>=20,<20.27 - Virtualenv,
virtualenv>=20,<20.22 - Tox 4,
tox>=4,<5,virtualenv>=20 - Tox 4,
tox>=4,<5,virtualenv>=20,<20.27 - Tox 4,
tox>=4,<5,virtualenv>=20,<20.22
Test report
When virtualenv-multipython is installed inside host tag environment, it allows to use selected โ
target tag (create virtualenv environment or use as tox env name in env_list) and automatically discovers corresponding multipython executable. For prohibited ๐ซ๏ธ target tag, python executable is not discoverable. For failing ๐ฅ target tag, interpreter is discoverable, but virtual environment with sample package cannot be created.
Host tag and Target tags are valid multipython tags. Host tags are listed vertically (rows), target tags are listed horizontally (columns).
virtualenv>=20
HOST TARGETS โโโโโโ AโBโCโDโEโFโGโHโIโJโKโLโM py314t A โ โ โ โ โ โ โ โ โ โ ๐ซ๐ซ๐ซ py313t B โ โ โ โ โ โ โ โ โ โ ๐ซ๐ซ๐ซ py314 C โ โ โ โ โ โ โ โ โ โ ๐ซ๐ซ๐ซ py313 D โ โ โ โ โ โ โ โ โ โ ๐ซ๐ซ๐ซ py312 E โ โ โ โ โ โ โ โ โ โ ๐ซ๐ซ๐ซ py311 F โ โ โ โ โ โ โ โ โ โ ๐ซ๐ซ๐ซ py310 G โ โ โ โ โ โ โ โ โ โ ๐ซ๐ซ๐ซ py39 H โ โ โ โ โ โ โ โ โ โ ๐ซ๐ซ๐ซ py38 I โ โ โ โ โ โ โ โ โ โ ๐ซ๐ซ๐ซ py37 J โ โ โ โ โ โ โ โ โ โ ๐ซ๐ซ๐ซ py36 K โ โ โ โ โ โ โ โ โ โ โ โ โ py35 L โ โ โ โ โ โ โ โ โ โ โ โ โ py27 M โ โ โ โ โ โ โ โ โ โ โ โ โ |
tox>=4,<5, virtualenv>=20
HOST TARGETS โโโโโโ AโBโCโDโEโFโGโHโIโJโKโLโM py314t A โ โ โ โ โ โ โ โ โ ๐ฅ๐ซ๐ซ๐ซ py313t B โ โ โ โ โ โ โ โ โ ๐ฅ๐ซ๐ซ๐ซ py314 C โ โ โ โ โ โ โ โ โ ๐ฅ๐ซ๐ซ๐ซ py313 D โ โ โ โ โ โ โ โ โ ๐ฅ๐ซ๐ซ๐ซ py312 E โ โ โ โ โ โ โ โ โ ๐ฅ๐ซ๐ซ๐ซ py311 F โ โ โ โ โ โ โ โ โ ๐ฅ๐ซ๐ซ๐ซ py310 G โ โ โ โ โ โ โ โ โ ๐ฅ๐ซ๐ซ๐ซ py39 H โ โ โ โ โ โ โ โ โ ๐ฅ๐ซ๐ซ๐ซ py38 I โ โ โ โ โ โ โ โ โ ๐ฅ๐ซ๐ซ๐ซ py37 J โ โ โ โ โ โ โ โ โ โ ๐ซ๐ซ๐ซ py36 K .โ.โ.โ.โ.โ.โ.โ.โ.โ.โ.โ.โ. py35 L .โ.โ.โ.โ.โ.โ.โ.โ.โ.โ.โ.โ. py27 M .โ.โ.โ.โ.โ.โ.โ.โ.โ.โ.โ.โ. |
virtualenv>=20,<20.27
HOST TARGETS โโโโโโ AโBโCโDโEโFโGโHโIโJโKโLโM py314t A โ โ โ โ โ โ โ โ โ โ ๐ซ๐ซ๐ซ py313t B โ โ โ โ โ โ โ โ โ โ ๐ซ๐ซ๐ซ py314 C โ โ โ โ โ โ โ โ โ โ ๐ซ๐ซ๐ซ py313 D โ โ โ โ โ โ โ โ โ โ ๐ซ๐ซ๐ซ py312 E โ โ โ โ โ โ โ โ โ โ ๐ซ๐ซ๐ซ py311 F โ โ โ โ โ โ โ โ โ โ ๐ซ๐ซ๐ซ py310 G โ โ โ โ โ โ โ โ โ โ ๐ซ๐ซ๐ซ py39 H โ โ โ โ โ โ โ โ โ โ ๐ซ๐ซ๐ซ py38 I โ โ โ โ โ โ โ โ โ โ ๐ซ๐ซ๐ซ py37 J โ โ โ โ โ โ โ โ โ โ ๐ซ๐ซ๐ซ py36 K โ โ โ โ โ โ โ โ โ โ โ โ โ py35 L โ โ โ โ โ โ โ โ โ โ โ โ โ py27 M โ โ โ โ โ โ โ โ โ โ โ โ โ |
tox>=4,<5, virtualenv>=20,<20.27
HOST TARGETS โโโโโโ AโBโCโDโEโFโGโHโIโJโKโLโM py314t A โ โ โ โ โ โ โ โ โ โ ๐ซ๐ซ๐ซ py313t B โ โ โ โ โ โ โ โ โ โ ๐ซ๐ซ๐ซ py314 C โ โ โ โ โ โ โ โ โ โ ๐ซ๐ซ๐ซ py313 D โ โ โ โ โ โ โ โ โ โ ๐ซ๐ซ๐ซ py312 E โ โ โ โ โ โ โ โ โ โ ๐ซ๐ซ๐ซ py311 F โ โ โ โ โ โ โ โ โ โ ๐ซ๐ซ๐ซ py310 G โ โ โ โ โ โ โ โ โ โ ๐ซ๐ซ๐ซ py39 H โ โ โ โ โ โ โ โ โ โ ๐ซ๐ซ๐ซ py38 I โ โ โ โ โ โ โ โ โ โ ๐ซ๐ซ๐ซ py37 J โ โ โ โ โ โ โ โ โ โ ๐ซ๐ซ๐ซ py36 K .โ.โ.โ.โ.โ.โ.โ.โ.โ.โ.โ.โ. py35 L .โ.โ.โ.โ.โ.โ.โ.โ.โ.โ.โ.โ. py27 M .โ.โ.โ.โ.โ.โ.โ.โ.โ.โ.โ.โ. |
virtualenv>=20,<20.22
HOST TARGETS โโโโโโ AโBโCโDโEโFโGโHโIโJโKโLโM py314t A โ โ โ โ โ โ โ โ โ โ โ โ โ py313t B โ โ โ โ โ โ โ โ โ โ โ โ โ py314 C โ โ โ โ โ โ โ โ โ โ โ โ โ py313 D โ โ โ โ โ โ โ โ โ โ โ โ โ py312 E โ โ โ โ โ โ โ โ โ โ โ โ โ py311 F โ โ โ โ โ โ โ โ โ โ โ โ โ py310 G โ โ โ โ โ โ โ โ โ โ โ โ โ py39 H โ โ โ โ โ โ โ โ โ โ โ โ โ py38 I โ โ โ โ โ โ โ โ โ โ โ โ โ py37 J โ โ โ โ โ โ โ โ โ โ โ โ โ py36 K โ โ โ โ โ โ โ โ โ โ โ โ โ py35 L โ โ โ โ โ โ โ โ โ โ โ โ โ py27 M โ โ โ โ โ โ โ โ โ โ โ โ โ |
tox>=4,<5, virtualenv>=20,<20.22
HOST TARGETS โโโโโโ AโBโCโDโEโFโGโHโIโJโKโLโM py314t A โ โ โ โ โ โ โ โ โ โ โ โ โ py313t B โ โ โ โ โ โ โ โ โ โ โ โ โ py314 C โ โ โ โ โ โ โ โ โ โ โ โ โ py313 D โ โ โ โ โ โ โ โ โ โ โ โ โ py312 E โ โ โ โ โ โ โ โ โ โ โ โ โ py311 F โ โ โ โ โ โ โ โ โ โ โ โ โ py310 G โ โ โ โ โ โ โ โ โ โ โ โ โ py39 H โ โ โ โ โ โ โ โ โ โ โ โ โ py38 I โ โ โ โ โ โ โ โ โ โ โ โ โ py37 J โ โ โ โ โ โ โ โ โ โ โ โ โ py36 K .โ.โ.โ.โ.โ.โ.โ.โ.โ.โ.โ.โ. py35 L .โ.โ.โ.โ.โ.โ.โ.โ.โ.โ.โ.โ. py27 M .โ.โ.โ.โ.โ.โ.โ.โ.โ.โ.โ.โ. |
Authors
This package is a part of multipython project.
License
Changelog
Check repository CHANGELOG.md
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file virtualenv_multipython-0.4.0.tar.gz.
File metadata
- Download URL: virtualenv_multipython-0.4.0.tar.gz
- Upload date:
- Size: 58.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.5.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5e0dc1e27db8363af72c5a2b036dd9feedce06ea8f5fe198eede8a2596c1d3f8
|
|
| MD5 |
fa4bc1c80f8473037bd62ed39bd6c365
|
|
| BLAKE2b-256 |
429ff78cdf3be841b33d67dde6df2e1f08fa075dc6e4e96befd324d9fefdd21b
|
File details
Details for the file virtualenv_multipython-0.4.0-py2.py3-none-any.whl.
File metadata
- Download URL: virtualenv_multipython-0.4.0-py2.py3-none-any.whl
- Upload date:
- Size: 6.3 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.5.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ed1ca221257a41bb3e9f85bf41a8d77d610e0a45b246c1a66a5ce8b6487bc649
|
|
| MD5 |
da4abb27938a5ac3b7f4e0ae14544ba2
|
|
| BLAKE2b-256 |
867ae2742e7165aae647533281e3553f71d129b373a5a42e2d1868fa5d332822
|