From e04a8bd42299300f25b781933de94ff422aa0ced Mon Sep 17 00:00:00 2001 From: Daniel Hahler Date: Mon, 6 Jan 2020 03:46:28 +0100 Subject: [PATCH 1/2] Update/fix type for (Immutable)MultiDict's `*args` Tested/used in https://github.com/encode/starlette/blob/c80558e0/tests/test_datastructures.py#L325 --- starlette/datastructures.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/starlette/datastructures.py b/starlette/datastructures.py index 40806246f..d352add71 100644 --- a/starlette/datastructures.py +++ b/starlette/datastructures.py @@ -237,11 +237,11 @@ def __str__(self) -> str: class ImmutableMultiDict(typing.Mapping): def __init__( self, - *args: typing.Union[ + *args: typing.Optional[typing.Union[ "ImmutableMultiDict", typing.Mapping, typing.List[typing.Tuple[typing.Any, typing.Any]], - ], + ]], **kwargs: typing.Any, ) -> None: assert len(args) < 2, "Too many arguments." @@ -364,11 +364,11 @@ def append(self, key: typing.Any, value: typing.Any) -> None: def update( self, - *args: typing.Union[ + *args: typing.Optional[typing.Union[ "MultiDict", typing.Mapping, typing.List[typing.Tuple[typing.Any, typing.Any]], - ], + ]], **kwargs: typing.Any, ) -> None: value = MultiDict(*args, **kwargs) From 51f863e6e21b81f482f41e39e0929d93adf844db Mon Sep 17 00:00:00 2001 From: Daniel Hahler Date: Mon, 6 Jan 2020 03:51:31 +0100 Subject: [PATCH 2/2] black --- starlette/datastructures.py | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/starlette/datastructures.py b/starlette/datastructures.py index d352add71..243f9a894 100644 --- a/starlette/datastructures.py +++ b/starlette/datastructures.py @@ -237,11 +237,13 @@ def __str__(self) -> str: class ImmutableMultiDict(typing.Mapping): def __init__( self, - *args: typing.Optional[typing.Union[ - "ImmutableMultiDict", - typing.Mapping, - typing.List[typing.Tuple[typing.Any, typing.Any]], - ]], + *args: typing.Optional[ + typing.Union[ + "ImmutableMultiDict", + typing.Mapping, + typing.List[typing.Tuple[typing.Any, typing.Any]], + ] + ], **kwargs: typing.Any, ) -> None: assert len(args) < 2, "Too many arguments." @@ -364,11 +366,13 @@ def append(self, key: typing.Any, value: typing.Any) -> None: def update( self, - *args: typing.Optional[typing.Union[ - "MultiDict", - typing.Mapping, - typing.List[typing.Tuple[typing.Any, typing.Any]], - ]], + *args: typing.Optional[ + typing.Union[ + "MultiDict", + typing.Mapping, + typing.List[typing.Tuple[typing.Any, typing.Any]], + ] + ], **kwargs: typing.Any, ) -> None: value = MultiDict(*args, **kwargs)