mirror of
https://github.com/python/cpython.git
synced 2025-08-04 00:48:58 +00:00
backport context argument of urlopen (#22366) for pep 476
This commit is contained in:
parent
cc23154d02
commit
8b7e161ac3
4 changed files with 29 additions and 2 deletions
|
@ -136,9 +136,14 @@ __version__ = sys.version[:3]
|
|||
|
||||
_opener = None
|
||||
def urlopen(url, data=None, timeout=socket._GLOBAL_DEFAULT_TIMEOUT,
|
||||
*, cafile=None, capath=None, cadefault=False):
|
||||
*, cafile=None, capath=None, cadefault=False, context=None):
|
||||
global _opener
|
||||
if cafile or capath or cadefault:
|
||||
if context is not None:
|
||||
raise ValueError(
|
||||
"You can't pass both context and any of cafile, capath, and "
|
||||
"cadefault"
|
||||
)
|
||||
if not _have_ssl:
|
||||
raise ValueError('SSL support not available')
|
||||
context = ssl._create_stdlib_context(cert_reqs=ssl.CERT_REQUIRED,
|
||||
|
@ -146,6 +151,9 @@ def urlopen(url, data=None, timeout=socket._GLOBAL_DEFAULT_TIMEOUT,
|
|||
capath=capath)
|
||||
https_handler = HTTPSHandler(context=context, check_hostname=True)
|
||||
opener = build_opener(https_handler)
|
||||
elif context:
|
||||
https_handler = HTTPSHandler(context=context)
|
||||
opener = build_opener(https_handler)
|
||||
elif _opener is None:
|
||||
_opener = opener = build_opener()
|
||||
else:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue