google_artifactregistry_auth/tox_bootstrap.py (37 lines of code) (raw):

import logging import pluggy from tox import __version__ hookimpl = pluggy.HookimplMarker("tox") tox_version_major = int(__version__.split(".")[0]) package_name = "keyrings.google-artifactregistry-auth" if tox_version_major > 3: @hookimpl def tox_on_install(tox_env): req = extract_requirement_from_tox_requires(tox_env) if req: tox_env.installer.install( [req], "GoogleArtifactRegistry", "keyring_deps", ) def extract_requirement_from_tox_requires(tox_env): req = None try: req = next( req for req in tox_env.core["requires"] if req.name == package_name ) except KeyError: pass except StopIteration: pass if not req: logging.warning( "Tox core option 'requires' is missing or does not specify" " %s. Package will not be installed in testenv", package_name, ) return req else: @hookimpl def tox_testenv_install_deps(venv, action): venv._install(venv.envconfig.config.requires, action=action)