From f0ccb325aa787ca0a539ef9914276b2c3148327a Mon Sep 17 00:00:00 2001 From: Russ Allbery Date: Wed, 9 Oct 2019 10:38:59 -0700 Subject: [PATCH] Mark some urllib.parse return fields optional (#3332) Per the urllib.parse documentation, username, password, hostname, and port will be set to None if not set in the parsed URL. The same is true for urlparse in Python 2 according to its documentation. --- stdlib/2/urlparse.pyi | 10 +++++----- stdlib/3/urllib/parse.pyi | 8 ++++---- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/stdlib/2/urlparse.pyi b/stdlib/2/urlparse.pyi index fb5909503..f1d1e3f28 100644 --- a/stdlib/2/urlparse.pyi +++ b/stdlib/2/urlparse.pyi @@ -1,6 +1,6 @@ # Stubs for urlparse (Python 2) -from typing import AnyStr, Dict, List, NamedTuple, Tuple, Sequence, Union, overload +from typing import AnyStr, Dict, List, NamedTuple, Tuple, Sequence, Union, overload, Optional _String = Union[str, unicode] @@ -17,13 +17,13 @@ def clear_cache() -> None: ... class ResultMixin(object): @property - def username(self) -> str: ... + def username(self) -> Optional[str]: ... @property - def password(self) -> str: ... + def password(self) -> Optional[str]: ... @property - def hostname(self) -> str: ... + def hostname(self) -> Optional[str]: ... @property - def port(self) -> int: ... + def port(self) -> Optional[int]: ... class SplitResult( NamedTuple( diff --git a/stdlib/3/urllib/parse.pyi b/stdlib/3/urllib/parse.pyi index b08ca0937..7f8120ad4 100644 --- a/stdlib/3/urllib/parse.pyi +++ b/stdlib/3/urllib/parse.pyi @@ -25,10 +25,10 @@ class _ResultMixinBytes(_ResultMixinBase[str]): class _NetlocResultMixinBase(Generic[AnyStr]): - username: AnyStr - password: AnyStr - hostname: AnyStr - port: int + username: Optional[AnyStr] + password: Optional[AnyStr] + hostname: Optional[AnyStr] + port: Optional[int] class _NetlocResultMixinStr(_NetlocResultMixinBase[str], _ResultMixinStr): ...