mirror of
https://github.com/ansible-collections/community.docker.git
synced 2026-07-29 03:46:55 +00:00
Add typing information, 2/n (#1178)
* Add typing to Docker Stack modules. Clean modules up. * Add typing to Docker Swarm modules. * Add typing to unit tests. * Add more typing. * Add ignore.txt entries.
This commit is contained in:
@@ -193,7 +193,9 @@ class OptionGroup:
|
||||
) -> None:
|
||||
if preprocess is None:
|
||||
|
||||
def preprocess(module, values):
|
||||
def preprocess(
|
||||
module: AnsibleModule, values: dict[str, t.Any]
|
||||
) -> dict[str, t.Any]:
|
||||
return values
|
||||
|
||||
self.preprocess = preprocess
|
||||
@@ -207,8 +209,8 @@ class OptionGroup:
|
||||
self.ansible_required_by = ansible_required_by or {}
|
||||
self.argument_spec: dict[str, t.Any] = {}
|
||||
|
||||
def add_option(self, *args, **kwargs) -> OptionGroup:
|
||||
option = Option(*args, owner=self, **kwargs)
|
||||
def add_option(self, name: str, **kwargs: t.Any) -> OptionGroup:
|
||||
option = Option(name, owner=self, **kwargs)
|
||||
if not option.not_a_container_option:
|
||||
self.options.append(option)
|
||||
self.all_options.append(option)
|
||||
@@ -788,7 +790,7 @@ def _preprocess_mounts(
|
||||
) -> dict[str, t.Any]:
|
||||
last: dict[str, str] = {}
|
||||
|
||||
def check_collision(t, name):
|
||||
def check_collision(t: str, name: str) -> None:
|
||||
if t in last:
|
||||
if name == last[t]:
|
||||
module.fail_json(
|
||||
@@ -1069,7 +1071,9 @@ def _preprocess_ports(
|
||||
return values
|
||||
|
||||
|
||||
def _compare_platform(option: Option, param_value: t.Any, container_value: t.Any):
|
||||
def _compare_platform(
|
||||
option: Option, param_value: t.Any, container_value: t.Any
|
||||
) -> bool:
|
||||
if option.comparison == "ignore":
|
||||
return True
|
||||
try:
|
||||
|
||||
@@ -872,7 +872,7 @@ class DockerAPIEngine(Engine[AnsibleDockerClient]):
|
||||
image: dict[str, t.Any] | None,
|
||||
values: dict[str, t.Any],
|
||||
host_info: dict[str, t.Any] | None,
|
||||
):
|
||||
) -> dict[str, t.Any]:
|
||||
if len(options) != 1:
|
||||
raise AssertionError(
|
||||
"host_config_value can only be used for a single option"
|
||||
@@ -1961,7 +1961,14 @@ def _update_value_restart(
|
||||
}
|
||||
|
||||
|
||||
def _get_values_ports(module, container, api_version, options, image, host_info):
|
||||
def _get_values_ports(
|
||||
module: AnsibleModule,
|
||||
container: dict[str, t.Any],
|
||||
api_version: LooseVersion,
|
||||
options: list[Option],
|
||||
image: dict[str, t.Any] | None,
|
||||
host_info: dict[str, t.Any] | None,
|
||||
) -> dict[str, t.Any]:
|
||||
host_config = container["HostConfig"]
|
||||
config = container["Config"]
|
||||
|
||||
|
||||
@@ -292,7 +292,7 @@ class ContainerManager(DockerBaseClass, t.Generic[Client]):
|
||||
if self.module.params[param] is None:
|
||||
self.module.params[param] = value
|
||||
|
||||
def fail(self, *args, **kwargs) -> t.NoReturn:
|
||||
def fail(self, *args: str, **kwargs: t.Any) -> t.NoReturn:
|
||||
# mypy doesn't know that Client has fail() method
|
||||
raise self.client.fail(*args, **kwargs) # type: ignore
|
||||
|
||||
@@ -714,7 +714,7 @@ class ContainerManager(DockerBaseClass, t.Generic[Client]):
|
||||
container_image: dict[str, t.Any] | None,
|
||||
image: dict[str, t.Any] | None,
|
||||
host_info: dict[str, t.Any] | None,
|
||||
):
|
||||
) -> None:
|
||||
assert container.raw is not None
|
||||
container_values = engine.get_value(
|
||||
self.module,
|
||||
@@ -767,12 +767,12 @@ class ContainerManager(DockerBaseClass, t.Generic[Client]):
|
||||
# Since the order does not matter, sort so that the diff output is better.
|
||||
if option.name == "expected_mounts":
|
||||
# For selected values, use one entry as key
|
||||
def sort_key_fn(x):
|
||||
def sort_key_fn(x: dict[str, t.Any]) -> t.Any:
|
||||
return x["target"]
|
||||
|
||||
else:
|
||||
# We sort the list of dictionaries by using the sorted items of a dict as its key.
|
||||
def sort_key_fn(x):
|
||||
def sort_key_fn(x: dict[str, t.Any]) -> t.Any:
|
||||
return sorted(
|
||||
(a, to_text(b, errors="surrogate_or_strict"))
|
||||
for a, b in x.items()
|
||||
|
||||
Reference in New Issue
Block a user