capybara/virtualenv/lib/python2.7/site-packages/pip/download.py
def unpack_file_url(link, location, download_dir=None):
    """Unpack link into location.
    If download_dir is provided and link points to a file, make a copy
    of the link file inside download_dir."""

    link_path = url_to_path(link.url_without_fragment)

    # If it's a url to a local directory
    if os.path.isdir(link_path):
        if os.path.isdir(location):
            rmtree(location)
        shutil.copytree(link_path, location, symlinks=True)
        if download_dir:
            logger.info('Link is a directory, ignoring download_dir')
        return

    # if link has a hash, let's confirm it matches
    if link.hash:
        link_path_hash = _get_hash_from_file(link_path, link)
        _check_hash(link_path_hash, link)

    # If a download dir is specified, is the file already there and valid?
    already_downloaded_path = None
    if download_dir:
        already_downloaded_path = _check_download_dir(link, download_dir)

    if already_downloaded_path:
        from_path = already_downloaded_path
    else:
        from_path = link_path

    content_type = mimetypes.guess_type(from_path)[0]

    # unpack the archive to the build dir location. even when only downloading
    # archives, they have to be unpacked to parse dependencies
    unpack_file(from_path, location, content_type, link)

    # a download dir is specified and not already downloaded
    if download_dir and not already_downloaded_path:
        _copy_file(from_path, download_dir, content_type, link)
def unpack_file_url(link, location, download_dir=None):
    link_path = url_to_path(link.url_without_fragment)

    # If it's a url to a local directory
    if os.path.isdir(link_path):
        if os.path.isdir(location):
            rmtree(location)
        shutil.copytree(link_path, location, symlinks=True)
        if download_dir:
            logger.info('Link is a directory, ignoring download_dir')
        return

    # if link has a hash, let's confirm it matches
    if link.hash:
        link_path_hash = _get_hash_from_file(link_path, link)
        _check_hash(link_path_hash, link)

    # If a download dir is specified, is the file already there and valid?
    already_downloaded_path = None
    if download_dir:
        already_downloaded_path = _check_download_dir(link, download_dir)

    if already_downloaded_path:
        from_path = already_downloaded_path
    else:
        from_path = link_path

    content_type = mimetypes.guess_type(from_path)[0]

    # unpack the archive to the build dir location. even when only downloading
    # archives, they have to be unpacked to parse dependencies
    unpack_file(from_path, location, content_type, link)

    # a download dir is specified and not already downloaded
    if download_dir and not already_downloaded_path:
        _copy_file(from_path, download_dir, content_type, link)
def unpack_file_url ( link , location , download_dir = None ) : link_path = url_to_path ( link . url_without_fragment ) # If it's a url to a local directory if os . path . isdir ( link_path ) : if os . path . isdir ( location ) : rmtree ( location ) shutil . copytree ( link_path , location , symlinks = True ) if download_dir : logger . info ( 'Link is a directory, ignoring download_dir' ) return # if link has a hash, let's confirm it matches if link . hash : link_path_hash = _get_hash_from_file ( link_path , link ) _check_hash ( link_path_hash , link ) # If a download dir is specified, is the file already there and valid? already_downloaded_path = None if download_dir : already_downloaded_path = _check_download_dir ( link , download_dir ) if already_downloaded_path : from_path = already_downloaded_path else : from_path = link_path content_type = mimetypes . guess_type ( from_path ) [ 0 ] # unpack the archive to the build dir location. even when only downloading # archives, they have to be unpacked to parse dependencies unpack_file ( from_path , location , content_type , link ) # a download dir is specified and not already downloaded if download_dir and not already_downloaded_path : _copy_file ( from_path , download_dir , content_type , link )
Unpack link into location.
    If download_dir is provided and link points to a file, make a copy
    of the link file inside download_dir.
Unpack link into location . If download_dir is provided and link points to a file make a copy of the link file inside download_dir .