Skip to content

Commit

Permalink
refactor!: rename ape pm remove to ape pm uninstall (#2059)
Browse files Browse the repository at this point in the history
  • Loading branch information
antazoey committed May 7, 2024
1 parent fb92af9 commit a119fdb
Show file tree
Hide file tree
Showing 5 changed files with 33 additions and 30 deletions.
10 changes: 5 additions & 5 deletions docs/userguides/dependencies.md
Original file line number Diff line number Diff line change
Expand Up @@ -149,25 +149,25 @@ ape pm install gh:OpenZeppelin/openzeppelin-contracts \
--config-override '{"solidity": {"version": "0.8.12"}}'
```

### remove
### uninstall

Remove previously installed packages using the `remove` command:
Remove previously installed packages using the `uninstall` command:

```shell
ape pm remove OpenZeppelin
ape pm uninstall OpenZeppelin
```

If there is a single version installed, the command will remove the single version.
If multiple versions are installed, pass additional arguments specifying the version(s) to be removed:

```shell
ape pm remove OpenZeppelin 4.5.0 4.6.0
ape pm uninstall OpenZeppelin 4.5.0 4.6.0
```

To skip the confirmation prompts, use the `--yes` flag (abbreviated as `-y`):

```shell
ape pm remove OpenZeppelin all --yes
ape pm uninstall OpenZeppelin all --yes
```

**NOTE**: Additionally, use the `all` special version key to delete all versions.
Expand Down
3 changes: 2 additions & 1 deletion src/ape/utils/os.py
Original file line number Diff line number Diff line change
Expand Up @@ -206,7 +206,8 @@ def run_in_tempdir(
Args:
fn (Callable): A function that takes a path. It gets called
with the resolved path to the temporary directory.
name (Optional[str]): Optionally name the temporary directory.
name (Optional[str]): Optionally provide a name for the temporary
directory.
Returns:
Any: The result of the function call.
Expand Down
6 changes: 4 additions & 2 deletions src/ape_pm/_cli.py
Original file line number Diff line number Diff line change
Expand Up @@ -241,7 +241,7 @@ def install(cli_ctx, package, name, version, ref, force, config_override):
@click.option(
"-y", "--yes", is_flag=True, help="Automatically confirm the removal of the package(s)"
)
def remove(cli_ctx, package, versions, yes):
def uninstall(cli_ctx, package, versions, yes):
"""
Remove a package
Expand Down Expand Up @@ -304,7 +304,9 @@ def remove(cli_ctx, package, versions, yes):
f"Are you sure you want to remove version '{version}' of package '{package}'?"
):
cli_ctx.project_manager.remove_dependency(package_dir.name, versions=[version])
cli_ctx.logger.success(f"Version '{version}' of package '{package_dir.name}' removed.")
cli_ctx.logger.success(
f"Version '{version}' of package '{package_dir.name}' uninstalled."
)


@cli.command()
Expand Down
4 changes: 2 additions & 2 deletions tests/functional/test_cli.py
Original file line number Diff line number Diff line change
Expand Up @@ -687,10 +687,10 @@ def test_connected_provider_command_with_network_option_and_cls_types_false(runn
@network_option()
def cmd(network):
assert isinstance(network, str)
assert network == "ethereum:local:geth"
assert network == "ethereum:local:node"

# NOTE: Must use a network that is not the default.
spec = ("--network", "ethereum:local:geth")
spec = ("--network", "ethereum:local:node")
res = runner.invoke(cmd, spec, catch_exceptions=False)
assert res.exit_code == 0, res.output

Expand Down
40 changes: 20 additions & 20 deletions tests/integration/cli/test_pm.py
Original file line number Diff line number Diff line change
Expand Up @@ -145,81 +145,81 @@ def test_compile_config_override(ape_cli, runner, project):


@skip_projects_except("only-dependencies")
def test_remove(ape_cli, runner, project):
def test_uninstall(ape_cli, runner, project):
package_name = "dependency-in-project-only"

# Install packages
runner.invoke(ape_cli, ("pm", "install", ".", "--force"))

result = runner.invoke(ape_cli, ("pm", "remove", package_name), input="y\n")
expected_message = f"Version 'local' of package '{package_name}' removed."
result = runner.invoke(ape_cli, ("pm", "uninstall", package_name), input="y\n")
expected_message = f"Version 'local' of package '{package_name}' uninstalled."
assert result.exit_code == 0, result.output
assert expected_message in result.output


@skip_projects_except("only-dependencies")
def test_remove_not_exists(ape_cli, runner, project):
def test_uninstall_not_exists(ape_cli, runner, project):
package_name = "_this_does_not_exist_"
result = runner.invoke(ape_cli, ("pm", "remove", package_name))
result = runner.invoke(ape_cli, ("pm", "uninstall", package_name))
expected_message = f"ERROR: Package '{package_name}' is not installed."
assert result.exit_code != 0, result.output
assert expected_message in result.output


@skip_projects_except("only-dependencies")
def test_remove_specific_version(ape_cli, runner, project):
def test_uninstall_specific_version(ape_cli, runner, project):
package_name = "dependency-in-project-only"
version = "local"

# Install packages
runner.invoke(ape_cli, ("pm", "install", ".", "--force"))

result = runner.invoke(ape_cli, ("pm", "remove", package_name), input="y\n")
expected_message = f"Version '{version}' of package '{package_name}' removed."
result = runner.invoke(ape_cli, ("pm", "uninstall", package_name), input="y\n")
expected_message = f"Version '{version}' of package '{package_name}' uninstalled."
assert result.exit_code == 0, result.output
assert expected_message in result.output


@skip_projects_except("only-dependencies")
def test_remove_all_versions_with_y(ape_cli, runner):
def test_uninstall_all_versions_with_y(ape_cli, runner):
# Install packages
runner.invoke(ape_cli, ("pm", "install", ".", "--force"))

package_name = "dependency-in-project-only"
result = runner.invoke(ape_cli, ("pm", "remove", package_name, "-y"))
expected_message = f"SUCCESS: Version 'local' of package '{package_name}' removed."
result = runner.invoke(ape_cli, ("pm", "uninstall", package_name, "-y"))
expected_message = f"SUCCESS: Version 'local' of package '{package_name}' uninstalled."
assert result.exit_code == 0, result.output
assert expected_message in result.output


@skip_projects_except("only-dependencies")
def test_remove_specific_version_with_y(ape_cli, runner):
def test_uninstall_specific_version_with_y(ape_cli, runner):
# Install packages
runner.invoke(ape_cli, ("pm", "install", ".", "--force"))

package_name = "dependency-in-project-only"
version = "local"
result = runner.invoke(ape_cli, ["pm", "remove", package_name, version, "-y"])
expected_message = f"Version '{version}' of package '{package_name}' removed."
result = runner.invoke(ape_cli, ("pm", "uninstall", package_name, version, "-y"))
expected_message = f"Version '{version}' of package '{package_name}' uninstalled."
assert result.exit_code == 0, result.output
assert expected_message in result.output


@skip_projects_except("only-dependencies")
def test_remove_cancel(ape_cli, runner):
def test_uninstall_cancel(ape_cli, runner):
# Install packages
runner.invoke(ape_cli, ["pm", "install", ".", "--force"])
runner.invoke(ape_cli, ("pm", "install", ".", "--force"))

package_name = "dependency-in-project-only"
version = "local"
result = runner.invoke(ape_cli, ["pm", "remove", package_name, version], input="n\n")
result = runner.invoke(ape_cli, ["pm", "uninstall", package_name, version], input="n\n")
assert result.exit_code == 0, result.output
expected_message = f"Version '{version}' of package '{package_name}' removed."
expected_message = f"Version '{version}' of package '{package_name}' uninstalled."
assert expected_message not in result.output


@skip_projects_except("only-dependencies")
def test_remove_invalid_version(ape_cli, runner, project):
def test_uninstall_invalid_version(ape_cli, runner, project):
package_name = "dependency-in-project-only"

# Install packages
Expand All @@ -230,7 +230,7 @@ def test_remove_invalid_version(ape_cli, runner, project):
assert (project.dependency_manager.DATA_FOLDER / "packages" / package_name).is_dir()

invalid_version = "0.0.0"
result = runner.invoke(ape_cli, ["pm", "remove", package_name, invalid_version])
result = runner.invoke(ape_cli, ("pm", "uninstall", package_name, invalid_version))

expected_message = f"Version '{invalid_version}' of package '{package_name}' is not installed."
assert expected_message in result.output
Expand Down

0 comments on commit a119fdb

Please sign in to comment.