30
30
import re
31
31
import sys
32
32
import collections
33
+ import warnings
33
34
34
35
__all__ = ["urlparse" , "urlunparse" , "urljoin" , "urldefrag" ,
35
36
"urlsplit" , "urlunsplit" , "urlencode" , "parse_qs" ,
@@ -288,7 +289,7 @@ def _hostinfo(self):
288
289
"""
289
290
290
291
_ParseResultBase .__doc__ = """
291
- ParseResult(scheme, netloc, path, params, query, fragment)
292
+ ParseResult(scheme, netloc, path, params, query, fragment)
292
293
293
294
A 6-tuple that contains components of a parsed URL.
294
295
"""
@@ -913,7 +914,14 @@ def urlencode(query, doseq=False, safe='', encoding=None, errors=None,
913
914
l .append (k + '=' + elt )
914
915
return '&' .join (l )
915
916
917
+
916
918
def to_bytes (url ):
919
+ warnings .warn ("urllib.parse.to_bytes() is deprecated as of 3.8" ,
920
+ DeprecationWarning , stacklevel = 2 )
921
+ return _to_bytes (url )
922
+
923
+
924
+ def _to_bytes (url ):
917
925
"""to_bytes(u"URL") --> 'URL'."""
918
926
# Most URL schemes require ASCII. If that changes, the conversion
919
927
# can be relaxed.
@@ -926,16 +934,31 @@ def to_bytes(url):
926
934
" contains non-ASCII characters" )
927
935
return url
928
936
937
+
929
938
def unwrap (url ):
939
+ warnings .warn ("urllib.parse.unwrap() is deprecated as of 3.8" ,
940
+ DeprecationWarning , stacklevel = 2 )
941
+ return _unwrap (url )
942
+
943
+
944
+ def _unwrap (url ):
930
945
"""unwrap('<URL:type://host/path>') --> 'type://host/path'."""
931
946
url = str (url ).strip ()
932
947
if url [:1 ] == '<' and url [- 1 :] == '>' :
933
948
url = url [1 :- 1 ].strip ()
934
949
if url [:4 ] == 'URL:' : url = url [4 :].strip ()
935
950
return url
936
951
937
- _typeprog = None
952
+
938
953
def splittype (url ):
954
+ warnings .warn ("urllib.parse.splittype() is deprecated as of 3.8, "
955
+ "use urllib.parse.urlparse() instead" ,
956
+ DeprecationWarning , stacklevel = 2 )
957
+ return _splittype (url )
958
+
959
+
960
+ _typeprog = None
961
+ def _splittype (url ):
939
962
"""splittype('type:opaquestring') --> 'type', 'opaquestring'."""
940
963
global _typeprog
941
964
if _typeprog is None :
@@ -947,8 +970,16 @@ def splittype(url):
947
970
return scheme .lower (), data
948
971
return None , url
949
972
950
- _hostprog = None
973
+
951
974
def splithost (url ):
975
+ warnings .warn ("urllib.parse.splithost() is deprecated as of 3.8, "
976
+ "use urllib.parse.urlparse() instead" ,
977
+ DeprecationWarning , stacklevel = 2 )
978
+ return _splithost (url )
979
+
980
+
981
+ _hostprog = None
982
+ def _splithost (url ):
952
983
"""splithost('//host[:port]/path') --> 'host[:port]', '/path'."""
953
984
global _hostprog
954
985
if _hostprog is None :
@@ -962,19 +993,43 @@ def splithost(url):
962
993
return host_port , path
963
994
return None , url
964
995
996
+
965
997
def splituser (host ):
998
+ warnings .warn ("urllib.parse.splituser() is deprecated as of 3.8, "
999
+ "use urllib.parse.urlparse() instead" ,
1000
+ DeprecationWarning , stacklevel = 2 )
1001
+ return _splituser (host )
1002
+
1003
+
1004
+ def _splituser (host ):
966
1005
"""splituser('user[:passwd]@host[:port]') --> 'user[:passwd]', 'host[:port]'."""
967
1006
user , delim , host = host .rpartition ('@' )
968
1007
return (user if delim else None ), host
969
1008
1009
+
970
1010
def splitpasswd (user ):
1011
+ warnings .warn ("urllib.parse.splitpasswd() is deprecated as of 3.8, "
1012
+ "use urllib.parse.urlparse() instead" ,
1013
+ DeprecationWarning , stacklevel = 2 )
1014
+ return _splitpasswd (user )
1015
+
1016
+
1017
+ def _splitpasswd (user ):
971
1018
"""splitpasswd('user:passwd') -> 'user', 'passwd'."""
972
1019
user , delim , passwd = user .partition (':' )
973
1020
return user , (passwd if delim else None )
974
1021
1022
+
1023
+ def splitport (host ):
1024
+ warnings .warn ("urllib.parse.splitport() is deprecated as of 3.8, "
1025
+ "use urllib.parse.urlparse() instead" ,
1026
+ DeprecationWarning , stacklevel = 2 )
1027
+ return _splitport (host )
1028
+
1029
+
975
1030
# splittag('/path#tag') --> '/path', 'tag'
976
1031
_portprog = None
977
- def splitport (host ):
1032
+ def _splitport (host ):
978
1033
"""splitport('host:port') --> 'host', 'port'."""
979
1034
global _portprog
980
1035
if _portprog is None :
@@ -987,7 +1042,15 @@ def splitport(host):
987
1042
return host , port
988
1043
return host , None
989
1044
1045
+
990
1046
def splitnport (host , defport = - 1 ):
1047
+ warnings .warn ("urllib.parse.splitnport() is deprecated as of 3.8, "
1048
+ "use urllib.parse.urlparse() instead" ,
1049
+ DeprecationWarning , stacklevel = 2 )
1050
+ return _splitnport (host , defport )
1051
+
1052
+
1053
+ def _splitnport (host , defport = - 1 ):
991
1054
"""Split host and port, returning numeric port.
992
1055
Return given default port if no ':' found; defaults to -1.
993
1056
Return numerical port if a valid number are found after ':'.
@@ -1003,27 +1066,59 @@ def splitnport(host, defport=-1):
1003
1066
return host , nport
1004
1067
return host , defport
1005
1068
1069
+
1006
1070
def splitquery (url ):
1071
+ warnings .warn ("urllib.parse.splitquery() is deprecated as of 3.8, "
1072
+ "use urllib.parse.urlparse() instead" ,
1073
+ DeprecationWarning , stacklevel = 2 )
1074
+ return _splitquery (url )
1075
+
1076
+
1077
+ def _splitquery (url ):
1007
1078
"""splitquery('/path?query') --> '/path', 'query'."""
1008
1079
path , delim , query = url .rpartition ('?' )
1009
1080
if delim :
1010
1081
return path , query
1011
1082
return url , None
1012
1083
1084
+
1013
1085
def splittag (url ):
1086
+ warnings .warn ("urllib.parse.splittag() is deprecated as of 3.8, "
1087
+ "use urllib.parse.urlparse() instead" ,
1088
+ DeprecationWarning , stacklevel = 2 )
1089
+ return _splittag (url )
1090
+
1091
+
1092
+ def _splittag (url ):
1014
1093
"""splittag('/path#tag') --> '/path', 'tag'."""
1015
1094
path , delim , tag = url .rpartition ('#' )
1016
1095
if delim :
1017
1096
return path , tag
1018
1097
return url , None
1019
1098
1099
+
1020
1100
def splitattr (url ):
1101
+ warnings .warn ("urllib.parse.splitattr() is deprecated as of 3.8, "
1102
+ "use urllib.parse.urlparse() instead" ,
1103
+ DeprecationWarning , stacklevel = 2 )
1104
+ return _splitattr (url )
1105
+
1106
+
1107
+ def _splitattr (url ):
1021
1108
"""splitattr('/path;attr1=value1;attr2=value2;...') ->
1022
1109
'/path', ['attr1=value1', 'attr2=value2', ...]."""
1023
1110
words = url .split (';' )
1024
1111
return words [0 ], words [1 :]
1025
1112
1113
+
1026
1114
def splitvalue (attr ):
1115
+ warnings .warn ("urllib.parse.splitvalue() is deprecated as of 3.8, "
1116
+ "use urllib.parse.parse_qsl() instead" ,
1117
+ DeprecationWarning , stacklevel = 2 )
1118
+ return _splitvalue (attr )
1119
+
1120
+
1121
+ def _splitvalue (attr ):
1027
1122
"""splitvalue('attr=value') --> 'attr', 'value'."""
1028
1123
attr , delim , value = attr .partition ('=' )
1029
1124
return attr , (value if delim else None )
0 commit comments