Skip to content

Commit

Permalink
Add globus_cli_rmtree via toxfile plugin
Browse files Browse the repository at this point in the history
This imitates our prior art in globus-sdk to move
`allowlist_externals = rm` usage into a plugin which can take care of
this for us. It also sets up `toxfile.py` for us in case we want
to put any other customizations in there.
  • Loading branch information
sirosen committed Jan 13, 2025
1 parent b14f850 commit 40d4b1f
Show file tree
Hide file tree
Showing 2 changed files with 47 additions and 2 deletions.
3 changes: 1 addition & 2 deletions tox.ini
Original file line number Diff line number Diff line change
Expand Up @@ -78,8 +78,7 @@ skip_install = true
deps =
build
twine
allowlist_externals = rm
commands_pre = rm -rf dist/
globus_cli_rmtree = dist
# check that twine validating package data works
commands =
python -m build
Expand Down
46 changes: 46 additions & 0 deletions toxfile.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
"""
This is a very small 'tox' plugin.
'toxfile.py' is a special name for auto-loading a plugin without defining package
metadata.
For full doc, see: https://tox.wiki/en/latest/plugins.html
Methods decorated below with `tox.plugin.impl` are hook implementations.
We only implement hooks which we need.
"""

from __future__ import annotations

import logging
import pathlib
import shutil
import typing as t

from tox.plugin import impl

if t.TYPE_CHECKING:
from tox.config.sets import EnvConfigSet
from tox.session.state import State
from tox.tox_env.api import ToxEnv

log = logging.getLogger(__name__)


@impl
def tox_add_env_config(env_conf: EnvConfigSet, state: State) -> None:
env_conf.add_config(
keys=["globus_cli_rmtree"],
of_type=list[str],
default=[],
desc="A dir tree to remove before running the environment commands",
)


@impl
def tox_before_run_commands(tox_env: ToxEnv) -> None:
cli_rmtree = tox_env.conf.load("globus_cli_rmtree")
for name in cli_rmtree:
path = pathlib.Path(name)
if path.exists():
log.warning(f"globus_cli_rmtree: {path}")
shutil.rmtree(path)

0 comments on commit 40d4b1f

Please sign in to comment.