Skip to content

Commit 534c7c1

Browse files
mohabusamagvanrossum
authored andcommitted
Fix SplitResult and ParseResult stubs (#816)
1 parent 4b5e766 commit 534c7c1

File tree

1 file changed

+30
-18
lines changed

1 file changed

+30
-18
lines changed

stdlib/3/urllib/parse.pyi

Lines changed: 30 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# Stubs for urllib.parse
2-
from typing import Any, List, Dict, Tuple, AnyStr, Generic, overload, Sequence, Mapping, Union
2+
from typing import Any, List, Dict, Tuple, AnyStr, Generic, overload, Sequence, Mapping, Union, NamedTuple
33

44
__all__ = (
55
'urlparse',
@@ -54,34 +54,46 @@ class _DefragResultBase(tuple, Generic[AnyStr]):
5454
url = ... # type: AnyStr
5555
fragment = ... # type: AnyStr
5656

57-
class _SplitResultBase(tuple, Generic[AnyStr]):
58-
scheme = ... # type: AnyStr
59-
netloc = ... # type: AnyStr
60-
path = ... # type: AnyStr
61-
query = ... # type: AnyStr
62-
fragment = ... # type: AnyStr
6357

64-
class _ParseResultBase(tuple, Generic[AnyStr]):
65-
scheme = ... # type: AnyStr
66-
netloc = ... # type: AnyStr
67-
path = ... # type: AnyStr
68-
params = ... # type: AnyStr
69-
query = ... # type: AnyStr
70-
fragment = ... # type: AnyStr
58+
_SplitResultBase = NamedTuple(
59+
'_SplitResultBase',
60+
[
61+
('scheme', str), ('netloc', str), ('path', str), ('query', str), ('fragment', str)
62+
]
63+
)
64+
_SplitResultBytesBase = NamedTuple(
65+
'_SplitResultBytesBase',
66+
[
67+
('scheme', bytes), ('netloc', bytes), ('path', bytes), ('query', bytes), ('fragment', bytes)
68+
]
69+
)
70+
71+
_ParseResultBase = NamedTuple(
72+
'_ParseResultBase',
73+
[
74+
('scheme', str), ('netloc', str), ('path', str), ('params', str), ('query', str), ('fragment', str)
75+
]
76+
)
77+
_ParseResultBytesBase = NamedTuple(
78+
'_ParseResultBytesBase',
79+
[
80+
('scheme', bytes), ('netloc', bytes), ('path', bytes), ('params', bytes), ('query', bytes), ('fragment', bytes)
81+
]
82+
)
7183

7284
# Structured result objects for string data
7385
class DefragResult(_DefragResultBase[str], _ResultMixinStr): ...
7486

75-
class SplitResult(_SplitResultBase[str], _NetlocResultMixinStr): ...
87+
class SplitResult(_SplitResultBase, _NetlocResultMixinStr): ...
7688

77-
class ParseResult(_ParseResultBase[str], _NetlocResultMixinStr): ...
89+
class ParseResult(_ParseResultBase, _NetlocResultMixinStr): ...
7890

7991
# Structured result objects for bytes data
8092
class DefragResultBytes(_DefragResultBase[bytes], _ResultMixinBytes): ...
8193

82-
class SplitResultBytes(_SplitResultBase[bytes], _NetlocResultMixinBytes): ...
94+
class SplitResultBytes(_SplitResultBytesBase, _NetlocResultMixinBytes): ...
8395

84-
class ParseResultBytes(_ParseResultBase[bytes], _NetlocResultMixinBytes): ...
96+
class ParseResultBytes(_ParseResultBytesBase, _NetlocResultMixinBytes): ...
8597

8698

8799
def parse_qs(qs: str, keep_blank_values: bool = ..., strict_parsing: bool = ..., encoding: str = ..., errors: str = ...) -> Dict[str, List[str]]: ...

0 commit comments

Comments
 (0)