コード例 #1
0
ファイル: web.py プロジェクト: key4hep/spack
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)
コード例 #2
0
ファイル: web.py プロジェクト: eic/spack
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)