From c1329ba6696637fe64cd3cd191615f9970c1ba97 Mon Sep 17 00:00:00 2001 From: Kate Case Date: Tue, 29 Oct 2024 12:01:09 -0400 Subject: [PATCH] Document and type additional commands. --- .config/pydoclint-baseline.txt | 21 --------------------- src/molecule/command/dependency.py | 27 ++++++++++++++++++++------- src/molecule/command/destroy.py | 30 ++++++++++++++++++++++++------ 3 files changed, 44 insertions(+), 34 deletions(-) diff --git a/.config/pydoclint-baseline.txt b/.config/pydoclint-baseline.txt index 17c986b1a..673b7458a 100644 --- a/.config/pydoclint-baseline.txt +++ b/.config/pydoclint-baseline.txt @@ -1,24 +1,3 @@ -src/molecule/command/dependency.py - DOC101: Method `Dependency.execute`: Docstring contains fewer arguments than in function signature. - DOC106: Method `Dependency.execute`: The option `--arg-type-hints-in-signature` is `True` but there are no argument type hints in the signature - DOC107: Method `Dependency.execute`: The option `--arg-type-hints-in-signature` is `True` but not all args in the signature have type hints - DOC103: Method `Dependency.execute`: Docstring arguments are different from function arguments. (Or could be other formatting issues: https://jsh9.github.io/pydoclint/violation_codes.html#notes-on-doc103 ). Arguments in the function signature but not in the docstring: [action_args: ]. - DOC101: Function `dependency`: Docstring contains fewer arguments than in function signature. - DOC106: Function `dependency`: The option `--arg-type-hints-in-signature` is `True` but there are no argument type hints in the signature - DOC107: Function `dependency`: The option `--arg-type-hints-in-signature` is `True` but not all args in the signature have type hints - DOC103: Function `dependency`: Docstring arguments are different from function arguments. (Or could be other formatting issues: https://jsh9.github.io/pydoclint/violation_codes.html#notes-on-doc103 ). Arguments in the function signature but not in the docstring: [ctx: , scenario_name: ]. --------------------- -src/molecule/command/destroy.py - DOC101: Method `Destroy.execute`: Docstring contains fewer arguments than in function signature. - DOC106: Method `Destroy.execute`: The option `--arg-type-hints-in-signature` is `True` but there are no argument type hints in the signature - DOC107: Method `Destroy.execute`: The option `--arg-type-hints-in-signature` is `True` but not all args in the signature have type hints - DOC103: Method `Destroy.execute`: Docstring arguments are different from function arguments. (Or could be other formatting issues: https://jsh9.github.io/pydoclint/violation_codes.html#notes-on-doc103 ). Arguments in the function signature but not in the docstring: [action_args: ]. - DOC201: Method `Destroy.execute` does not have a return section in docstring - DOC101: Function `destroy`: Docstring contains fewer arguments than in function signature. - DOC106: Function `destroy`: The option `--arg-type-hints-in-signature` is `True` but there are no argument type hints in the signature - DOC107: Function `destroy`: The option `--arg-type-hints-in-signature` is `True` but not all args in the signature have type hints - DOC103: Function `destroy`: Docstring arguments are different from function arguments. (Or could be other formatting issues: https://jsh9.github.io/pydoclint/violation_codes.html#notes-on-doc103 ). Arguments in the function signature but not in the docstring: [__all: , ctx: , driver_name: , parallel: , scenario_name: ]. --------------------- src/molecule/command/drivers.py DOC101: Function `drivers`: Docstring contains fewer arguments than in function signature. DOC106: Function `drivers`: The option `--arg-type-hints-in-signature` is `True` but there are no argument type hints in the signature diff --git a/src/molecule/command/dependency.py b/src/molecule/command/dependency.py index 3ffa17e6a..503bfef02 100644 --- a/src/molecule/command/dependency.py +++ b/src/molecule/command/dependency.py @@ -30,7 +30,7 @@ if TYPE_CHECKING: - from molecule.types import CommandArgs + from molecule.types import CommandArgs, MoleculeArgs LOG = logging.getLogger(__name__) @@ -39,9 +39,14 @@ class Dependency(base.Base): """Dependency Command Class.""" - def execute(self, action_args=None): # type: ignore[no-untyped-def] # noqa: ANN001, ANN201, ARG002 - """Execute the actions necessary to perform a `molecule dependency` and returns None.""" - self._config.dependency.execute() # type: ignore[union-attr] + def execute(self, action_args: list[str] | None = None) -> None: # noqa: ARG002 + """Execute the actions necessary to perform a `molecule dependency`. + + Args: + action_args: Arguments for this command. Unused. + """ + if self._config.dependency: + self._config.dependency.execute() # type: ignore[no-untyped-call] @base.click_command_ex() @@ -52,9 +57,17 @@ def execute(self, action_args=None): # type: ignore[no-untyped-def] # noqa: AN default=base.MOLECULE_DEFAULT_SCENARIO_NAME, help=f"Name of the scenario to target. ({base.MOLECULE_DEFAULT_SCENARIO_NAME})", ) -def dependency(ctx, scenario_name): # type: ignore[no-untyped-def] # pragma: no cover # noqa: ANN001, ANN201 - """Manage the role's dependencies.""" - args = ctx.obj.get("args") +def dependency( + ctx: click.Context, + scenario_name: str, +) -> None: # pragma: no cover + """Manage the role's dependencies. + + Args: + ctx: Click context object holding commandline arguments. + scenario_name: Name of the scenario to target. + """ + args: MoleculeArgs = ctx.obj.get("args") subcommand = base._get_subcommand(__name__) # noqa: SLF001 command_args: CommandArgs = {"subcommand": subcommand} diff --git a/src/molecule/command/destroy.py b/src/molecule/command/destroy.py index 7b84974a8..39235faad 100644 --- a/src/molecule/command/destroy.py +++ b/src/molecule/command/destroy.py @@ -34,7 +34,7 @@ if TYPE_CHECKING: - from molecule.types import CommandArgs + from molecule.types import CommandArgs, MoleculeArgs LOG = logging.getLogger(__name__) @@ -44,8 +44,12 @@ class Destroy(base.Base): """Destroy Command Class.""" - def execute(self, action_args=None): # type: ignore[no-untyped-def] # noqa: ANN001, ANN201, ARG002 - """Execute the actions necessary to perform a `molecule destroy` and returns None.""" + def execute(self, action_args: list[str] | None = None) -> None: # noqa: ARG002 + """Execute the actions necessary to perform a `molecule destroy`. + + Args: + action_args: Arguments for this command. Unused. + """ if self._config.command_args.get("destroy") == "never": msg = "Skipping, '--destroy=never' requested." LOG.warning(msg) @@ -80,9 +84,23 @@ def execute(self, action_args=None): # type: ignore[no-untyped-def] # noqa: AN default=False, help="Enable or disable parallel mode. Default is disabled.", ) -def destroy(ctx, scenario_name, driver_name, __all, parallel): # type: ignore[no-untyped-def] # pragma: no cover # noqa: ANN001, ANN201 - """Use the provisioner to destroy the instances.""" - args = ctx.obj.get("args") +def destroy( + ctx: click.Context, + scenario_name: str | None, + driver_name: str, + __all: bool, # noqa: FBT001 + parallel: bool, # noqa: FBT001 +) -> None: # pragma: no cover + """Use the provisioner to destroy the instances. + + Args: + ctx: Click context object holding commandline arguments. + scenario_name: Name of the scenario to target. + driver_name: Molecule driver to use. + __all: Whether molecule should target scenario_name or all scenarios. + parallel: Whether the scenario(s) should be run in parallel mode. + """ + args: MoleculeArgs = ctx.obj.get("args") subcommand = base._get_subcommand(__name__) # noqa: SLF001 command_args: CommandArgs = { "parallel": parallel,