From: Philippe Cavalaria Date: Fri, 17 May 2024 10:41:44 +0000 (+0200) Subject: web: More accurate typing for get_{body,query}_argument() X-Git-Tag: v6.5.0b1~59^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=refs%2Fpull%2F3378%2Fhead;p=thirdparty%2Ftornado.git web: More accurate typing for get_{body,query}_argument() Use the same overload technique as get_argument(). Fixes https://github.com/tornadoweb/tornado/issues/3336 --- diff --git a/tornado/web.py b/tornado/web.py index 039396470..904a5b874 100644 --- a/tornado/web.py +++ b/tornado/web.py @@ -470,7 +470,23 @@ class RequestHandler(object): return self._get_arguments(name, self.request.arguments, strip) - def get_body_argument( + @overload + def get_body_argument(self, name: str, default: str, strip: bool = True) -> str: + pass + + @overload + def get_body_argument( # noqa: F811 + self, name: str, default: _ArgDefaultMarker = _ARG_DEFAULT, strip: bool = True + ) -> str: + pass + + @overload + def get_body_argument( # noqa: F811 + self, name: str, default: None, strip: bool = True + ) -> Optional[str]: + pass + + def get_body_argument( # noqa: F811 self, name: str, default: Union[None, str, _ArgDefaultMarker] = _ARG_DEFAULT, @@ -498,7 +514,23 @@ class RequestHandler(object): """ return self._get_arguments(name, self.request.body_arguments, strip) - def get_query_argument( + @overload + def get_query_argument(self, name: str, default: str, strip: bool = True) -> str: + pass + + @overload + def get_query_argument( # noqa: F811 + self, name: str, default: _ArgDefaultMarker = _ARG_DEFAULT, strip: bool = True + ) -> str: + pass + + @overload + def get_query_argument( # noqa: F811 + self, name: str, default: None, strip: bool = True + ) -> Optional[str]: + pass + + def get_query_argument( # noqa: F811 self, name: str, default: Union[None, str, _ArgDefaultMarker] = _ARG_DEFAULT,