From: Adrian Garcia Badaracco <1755071+adriangb@users.noreply.github.com> Date: Mon, 31 Jan 2022 09:35:58 +0000 (-0600) Subject: use explicit Optional[...] for parameters with None as a default in datastructures... X-Git-Tag: 0.19.0~51 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=d6269e2f26fd41aa7d08f72a896b45162df69115;p=thirdparty%2Fstarlette.git use explicit Optional[...] for parameters with None as a default in datastructures.py (#1448) * use explicit Optional[...] for paramters with None as a default See https://www.python.org/dev/peps/pep-0484/\#id29 * fix type annotations for scope Co-authored-by: Marcelo Trylesinski --- diff --git a/starlette/datastructures.py b/starlette/datastructures.py index 677db027..ae2d9803 100644 --- a/starlette/datastructures.py +++ b/starlette/datastructures.py @@ -15,7 +15,10 @@ class Address(typing.NamedTuple): class URL: def __init__( - self, url: str = "", scope: Scope = None, **components: typing.Any + self, + url: str = "", + scope: typing.Optional[Scope] = None, + **components: typing.Any, ) -> None: if scope is not None: assert not url, 'Cannot set both "url" and "scope".' @@ -494,9 +497,9 @@ class Headers(typing.Mapping[str, str]): def __init__( self, - headers: typing.Mapping[str, str] = None, - raw: typing.List[typing.Tuple[bytes, bytes]] = None, - scope: Scope = None, + headers: typing.Optional[typing.Mapping[str, str]] = None, + raw: typing.Optional[typing.List[typing.Tuple[bytes, bytes]]] = None, + scope: typing.Optional[typing.Mapping[str, typing.Any]] = None, ) -> None: self._list: typing.List[typing.Tuple[bytes, bytes]] = [] if headers is not None: @@ -659,7 +662,9 @@ class State: Used for `request.state` and `app.state`. """ - def __init__(self, state: typing.Dict = None): + _state: typing.Dict[str, typing.Any] + + def __init__(self, state: typing.Optional[typing.Dict[str, typing.Any]] = None): if state is None: state = {} super().__setattr__("_state", state)