11"""
2- A patch to format_header_param in urllib3
2+ A patch to format_header_param in urllib3
33
4- If a value has unicode the header will be returned
5- as 'name="value"; name*=utf-8''value' else
6- 'name="value"'
4+ If a value has unicode the header will be returned
5+ as 'name="value"; name*=utf-8''value' else
6+ 'name="value"'
77"""
88
9-
109import email .utils
11- #import mimetypes
10+
11+ # import mimetypes
1212import warnings
1313
1414import requests
1515import requests .packages .urllib3 as urllib3
16- from requests . packages . urllib3 . packages import six
16+ import six
1717from .monkeypatch import monkeypatch_method
1818
1919
20+ REQUESTS_V = [int (s ) for s in requests .__version__ .split ("." )]
2021
21- REQUESTS_V = [int (s ) for s in requests .__version__ .split ('.' )]
22-
23- if REQUESTS_V < [2 , 4 , 0 ] or REQUESTS_V > [2 , 19 , 0 ]:
22+ print (REQUESTS_V )
23+ if REQUESTS_V < [2 , 4 , 0 ] or REQUESTS_V > [2 , 32 , 3 ]:
2424 warnings .warn ("""\
25- We need to patch requests 2.4.0 up to 2.19.0 , make sure your version of requests \
26- needs this patch, greater than 2.4.3 we do not know if this patch applys."""
27- )
28- raise ImportError (' Requests 2.4.0 to 2.10.0 is required!' )
29- #elif requests_v > [3, 0, 0]:
25+ We need to patch requests 2.4.0 up to 2.32.3 , make sure your version of
26+ requests needs this patch, greater than 2.4.3 we do not know if this
27+ patch applys.""" )
28+ raise ImportError (" Requests 2.4.0 to 2.32.3 is required!" )
29+ # elif requests_v > [3, 0, 0]:
3030# #does not require this patch
3131# pass
3232else :
33+
3334 @monkeypatch_method (urllib3 .fields )
3435 def format_header_param (name , value ):
3536 """
@@ -47,18 +48,20 @@ def format_header_param(name, value):
4748 if not any (ch in value for ch in '"\\ \r \n ' ):
4849 result = '%s="%s"' % (name , value )
4950 try :
50- result .encode (' ascii' )
51+ result .encode (" ascii" )
5152 except UnicodeEncodeError :
5253 pass
5354 else :
5455 return result
5556
5657 value_encode = value
57- if not six .PY3 : # Python 2:
58- value_encode = value .encode (' utf-8' )
58+ if not six .PY3 : # Python 2:
59+ value_encode = value .encode (" utf-8" )
5960
6061 value = '%s="%s"; %s*=%s' % (
61- name , value ,
62- name , email .utils .encode_rfc2231 (value_encode , 'utf-8' )
62+ name ,
63+ value ,
64+ name ,
65+ email .utils .encode_rfc2231 (value_encode , "utf-8" ),
6366 )
6467 return value
0 commit comments