def _urlopen(req, *args, **kwargs): """Wrapper for compatibility with old versions of Python.""" url = req try: url = url.get_full_url() except AttributeError: pass # Note: 'context' parameter was only introduced starting # with versions 2.7.9 and 3.4.3 of Python. if __UNABLE_TO_VERIFY_SSL: del kwargs['context'] opener = urlopen if url_util.parse(url).scheme == 's3': import spack.s3_handler opener = spack.s3_handler.open elif url_util.parse(url).scheme == 'gs': import spack.gcs_handler opener = spack.gcs_handler.gcs_open try: return opener(req, *args, **kwargs) except TypeError as err: # If the above fails because of 'context', call without 'context'. if 'context' in kwargs and 'context' in str(err): del kwargs['context'] return opener(req, *args, **kwargs)
def _urlopen(req, *args, **kwargs): """Wrapper for compatibility with old versions of Python.""" url = req try: url = url.get_full_url() except AttributeError: pass # We don't pass 'context' parameter because it was only introduced starting # with versions 2.7.9 and 3.4.3 of Python. if 'context' in kwargs: del kwargs['context'] opener = urlopen if url_util.parse(url).scheme == 's3': import spack.s3_handler opener = spack.s3_handler.open return opener(req, *args, **kwargs)