Skip to main content

tox 3 interpreter discovery plugin for multipython

Project description

tox-multipython

python interpreter interpreter discovery plugin for tox 3 and multipython

license versions pypi
tested with multipython uses docsub

[!NOTE] tox-multipython has twin plugin virtualenv-multipython that serves the same purpose for tox 4

This tox 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.

[!IMPORTANT] This plugin does not fall back to tox python: interpreter discovery errors are explicit.

Testing

There is one test suite:

  1. Tox 3. tox>=3,<4 is installed in host tag environment, and tox run is executed on tox.ini with env names equal to target tags. Tox environment's python version must match tox env name and target tag. This test includes subtests:
    • assert {envpython} version when tox env is activated
    • assert python version when tox env is activated
    • install externally built sample package in tox environment
    • execute entrypoint script of externally built sample package

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:

  1. Tox 3, tox>=3,<4, virtualenv>=20
  2. Tox 3, tox>=3,<4, virtualenv>=20,<20.27
  3. Tox 3, tox>=3,<4, virtualenv>=20,<20.22

Test report

When tox-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 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).

tox>=3,<4, 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>=3,<4, 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>=3,<4, 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

MIT License

Changelog

Check repository CHANGELOG.md

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tox_multipython-0.2.1.tar.gz (63.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

tox_multipython-0.2.1-py2.py3-none-any.whl (5.4 kB view details)

Uploaded Python 2Python 3

File details

Details for the file tox_multipython-0.2.1.tar.gz.

File metadata

  • Download URL: tox_multipython-0.2.1.tar.gz
  • Upload date:
  • Size: 63.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.5.13

File hashes

Hashes for tox_multipython-0.2.1.tar.gz
Algorithm Hash digest
SHA256 b07179f2a097bd0e2cec67d2afe9cd01dcc24f9045aced2ccf87175a665e9846
MD5 1b1b3e69cc013f55c421b45a1a6c84cd
BLAKE2b-256 e52d87dcb2a9b8e7793506e0ac5f4fd34f6f07c495a39f204a2db930086839ab

See more details on using hashes here.

File details

Details for the file tox_multipython-0.2.1-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for tox_multipython-0.2.1-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 928fd4c5660a77e6cd34944b635faad15c0d5edb047bc0e6c3e6a559debd7209
MD5 71a20f1317531268b06c293d0b7b3b31
BLAKE2b-256 d24752e53e4ddd893c32aaa0183f48697496cd9bd693789e7032a3603d8deed6

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page