mirror of
https://github.com/ansible-collections/community.docker.git
synced 2026-07-29 03:46:55 +00:00
Add typing information, 1/2 (#1176)
* Re-enable typing and improve config. * Make mypy pass. * Improve settings. * First batch of types. * Add more type hints. * Fixes. * Format. * Fix split_port() without returning to previous type chaos. * Continue with type hints (and ignores).
This commit is contained in:
@@ -7,6 +7,8 @@
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import typing as t
|
||||
|
||||
from ansible.errors import AnsibleConnectionFailure
|
||||
from ansible.utils.display import Display
|
||||
|
||||
@@ -18,8 +20,17 @@ from ansible_collections.community.docker.plugins.module_utils._util import (
|
||||
)
|
||||
|
||||
|
||||
if t.TYPE_CHECKING:
|
||||
from ansible.plugins import AnsiblePlugin
|
||||
|
||||
|
||||
class AnsibleDockerClient(AnsibleDockerClientBase):
|
||||
def __init__(self, plugin, min_docker_version=None, min_docker_api_version=None):
|
||||
def __init__(
|
||||
self,
|
||||
plugin: AnsiblePlugin,
|
||||
min_docker_version: str | None = None,
|
||||
min_docker_api_version: str | None = None,
|
||||
) -> None:
|
||||
self.plugin = plugin
|
||||
self.display = Display()
|
||||
super().__init__(
|
||||
@@ -27,17 +38,23 @@ class AnsibleDockerClient(AnsibleDockerClientBase):
|
||||
min_docker_api_version=min_docker_api_version,
|
||||
)
|
||||
|
||||
def fail(self, msg, **kwargs):
|
||||
def fail(self, msg: str, **kwargs: t.Any) -> t.NoReturn:
|
||||
if kwargs:
|
||||
msg += "\nContext:\n" + "\n".join(
|
||||
f" {k} = {v!r}" for (k, v) in kwargs.items()
|
||||
)
|
||||
raise AnsibleConnectionFailure(msg)
|
||||
|
||||
def deprecate(self, msg, version=None, date=None, collection_name=None):
|
||||
def deprecate(
|
||||
self,
|
||||
msg: str,
|
||||
version: str | None = None,
|
||||
date: str | None = None,
|
||||
collection_name: str | None = None,
|
||||
) -> None:
|
||||
self.display.deprecated(
|
||||
msg, version=version, date=date, collection_name=collection_name
|
||||
)
|
||||
|
||||
def _get_params(self):
|
||||
def _get_params(self) -> dict[str, t.Any]:
|
||||
return {option: self.plugin.get_option(option) for option in DOCKER_COMMON_ARGS}
|
||||
|
||||
@@ -7,6 +7,8 @@
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import typing as t
|
||||
|
||||
from ansible.errors import AnsibleConnectionFailure
|
||||
from ansible.utils.display import Display
|
||||
|
||||
@@ -18,23 +20,35 @@ from ansible_collections.community.docker.plugins.module_utils._util import (
|
||||
)
|
||||
|
||||
|
||||
if t.TYPE_CHECKING:
|
||||
from ansible.plugins import AnsiblePlugin
|
||||
|
||||
|
||||
class AnsibleDockerClient(AnsibleDockerClientBase):
|
||||
def __init__(self, plugin, min_docker_api_version=None):
|
||||
def __init__(
|
||||
self, plugin: AnsiblePlugin, min_docker_api_version: str | None = None
|
||||
) -> None:
|
||||
self.plugin = plugin
|
||||
self.display = Display()
|
||||
super().__init__(min_docker_api_version=min_docker_api_version)
|
||||
|
||||
def fail(self, msg, **kwargs):
|
||||
def fail(self, msg: str, **kwargs: t.Any) -> t.NoReturn:
|
||||
if kwargs:
|
||||
msg += "\nContext:\n" + "\n".join(
|
||||
f" {k} = {v!r}" for (k, v) in kwargs.items()
|
||||
)
|
||||
raise AnsibleConnectionFailure(msg)
|
||||
|
||||
def deprecate(self, msg, version=None, date=None, collection_name=None):
|
||||
def deprecate(
|
||||
self,
|
||||
msg: str,
|
||||
version: str | None = None,
|
||||
date: str | None = None,
|
||||
collection_name: str | None = None,
|
||||
) -> None:
|
||||
self.display.deprecated(
|
||||
msg, version=version, date=date, collection_name=collection_name
|
||||
)
|
||||
|
||||
def _get_params(self):
|
||||
def _get_params(self) -> dict[str, t.Any]:
|
||||
return {option: self.plugin.get_option(option) for option in DOCKER_COMMON_ARGS}
|
||||
|
||||
@@ -7,11 +7,23 @@
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import typing as t
|
||||
|
||||
from ansible_collections.community.docker.plugins.module_utils._socket_handler import (
|
||||
DockerSocketHandlerBase,
|
||||
)
|
||||
|
||||
|
||||
if t.TYPE_CHECKING:
|
||||
from ansible.utils.display import Display
|
||||
|
||||
from ansible_collections.community.docker.plugins.module_utils._socket_helper import (
|
||||
SocketLike,
|
||||
)
|
||||
|
||||
|
||||
class DockerSocketHandler(DockerSocketHandlerBase):
|
||||
def __init__(self, display, sock, log=None, container=None):
|
||||
def __init__(
|
||||
self, display: Display, sock: SocketLike, container: str | None = None
|
||||
) -> None:
|
||||
super().__init__(sock, log=lambda msg: display.vvvv(msg, host=container))
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import re
|
||||
import typing as t
|
||||
from collections.abc import Mapping, Set
|
||||
|
||||
from ansible.module_utils.common.collections import is_sequence
|
||||
@@ -21,7 +22,7 @@ _RE_TEMPLATE_CHARS = re.compile("[{}]")
|
||||
_RE_TEMPLATE_CHARS_BYTES = re.compile(b"[{}]")
|
||||
|
||||
|
||||
def make_unsafe(value):
|
||||
def make_unsafe(value: t.Any) -> t.Any:
|
||||
if value is None or isinstance(value, AnsibleUnsafe):
|
||||
return value
|
||||
|
||||
|
||||
Reference in New Issue
Block a user