From 2f70b502adcb7e7336c530ad983915b95a80444a Mon Sep 17 00:00:00 2001 From: Ashidul Islam Date: Sun, 2 Aug 2026 11:47:24 +0530 Subject: [PATCH 1/4] [docker] Use TypedDict and SupportsGet for kwargs_from_context --- stubs/docker/docker/context/api.pyi | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/stubs/docker/docker/context/api.pyi b/stubs/docker/docker/context/api.pyi index e825b62e1c2e..e725c076f64b 100644 --- a/stubs/docker/docker/context/api.pyi +++ b/stubs/docker/docker/context/api.pyi @@ -1,9 +1,18 @@ -from _typeshed import Incomplete -from collections.abc import Mapping, Sequence +from collections.abc import Sequence +from typing import Any, Protocol, TypedDict, type_check_only from docker.context.context import Context from docker.tls import TLSConfig +@type_check_only +class _SupportsGet(Protocol): + def get(self, key: str, default: Any = ...) -> Any: ... + +@type_check_only +class _ContextKwargs(TypedDict, total=False): + base_url: str + tls: TLSConfig + class ContextAPI: DEFAULT_CONTEXT: Context @classmethod @@ -24,8 +33,8 @@ class ContextAPI: def get_current_context(cls) -> Context: ... @classmethod def kwargs_from_context( - cls, name: str | None = None, environment: Mapping[str, str | None] | None = None - ) -> dict[str, Incomplete]: ... # TODO: Use TypedDict, use SupportsGet + cls, name: str | None = None, environment: _SupportsGet | None = None + ) -> _ContextKwargs: ... @classmethod def set_current_context(cls, name: str = "default") -> None: ... @classmethod From a058839825f09fc745fbf285948858d12eb11f31 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Sun, 2 Aug 2026 06:21:56 +0000 Subject: [PATCH 2/4] [pre-commit.ci] auto fixes from pre-commit.com hooks --- stubs/docker/docker/context/api.pyi | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/stubs/docker/docker/context/api.pyi b/stubs/docker/docker/context/api.pyi index e725c076f64b..b8d0a89a5d63 100644 --- a/stubs/docker/docker/context/api.pyi +++ b/stubs/docker/docker/context/api.pyi @@ -32,9 +32,7 @@ class ContextAPI: @classmethod def get_current_context(cls) -> Context: ... @classmethod - def kwargs_from_context( - cls, name: str | None = None, environment: _SupportsGet | None = None - ) -> _ContextKwargs: ... + def kwargs_from_context(cls, name: str | None = None, environment: _SupportsGet | None = None) -> _ContextKwargs: ... @classmethod def set_current_context(cls, name: str = "default") -> None: ... @classmethod From c3a23e0c059450673951cf93084eb3ba434d526c Mon Sep 17 00:00:00 2001 From: Ashidul Islam Date: Sun, 2 Aug 2026 21:25:42 +0530 Subject: [PATCH 3/4] Update stubs/docker/docker/context/api.pyi Co-authored-by: Semyon Moroz --- stubs/docker/docker/context/api.pyi | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/stubs/docker/docker/context/api.pyi b/stubs/docker/docker/context/api.pyi index b8d0a89a5d63..7a8775768430 100644 --- a/stubs/docker/docker/context/api.pyi +++ b/stubs/docker/docker/context/api.pyi @@ -32,7 +32,11 @@ class ContextAPI: @classmethod def get_current_context(cls) -> Context: ... @classmethod - def kwargs_from_context(cls, name: str | None = None, environment: _SupportsGet | None = None) -> _ContextKwargs: ... + def kwargs_from_context( + cls, + name: str | None = None, + environment: Mapping[str, str | None] | None = None, # TODO: Use SupportsGet + ) -> _ContextKwargs: ... @classmethod def set_current_context(cls, name: str = "default") -> None: ... @classmethod From e0ce7c9071b184a0ab493428b28b8a26738ebc62 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Sun, 2 Aug 2026 15:57:43 +0000 Subject: [PATCH 4/4] [pre-commit.ci] auto fixes from pre-commit.com hooks --- stubs/docker/docker/context/api.pyi | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/stubs/docker/docker/context/api.pyi b/stubs/docker/docker/context/api.pyi index 7a8775768430..350c418d3d04 100644 --- a/stubs/docker/docker/context/api.pyi +++ b/stubs/docker/docker/context/api.pyi @@ -33,9 +33,7 @@ class ContextAPI: def get_current_context(cls) -> Context: ... @classmethod def kwargs_from_context( - cls, - name: str | None = None, - environment: Mapping[str, str | None] | None = None, # TODO: Use SupportsGet + cls, name: str | None = None, environment: Mapping[str, str | None] | None = None # TODO: Use SupportsGet ) -> _ContextKwargs: ... @classmethod def set_current_context(cls, name: str = "default") -> None: ...