'Sort locations into "files" (archives) and "urls", and return
a pair of lists (files,urls)'

@staticmethod
def _sort_locations(locations, expand_dir=False):

    files = []
    urls = []
    def sort_path(path):
        url = path_to_url(path)
        if (mimetypes.guess_type(url, strict=False)[0] == 'text/html'):
            urls.append(url)
        else:
            files.append(url)
    for url in locations:
        is_local_path = os.path.exists(url)
        is_file_url = url.startswith('file:')
        if (is_local_path or is_file_url):
            if is_local_path:
                path = url
            else:
                path = url_to_path(url)
            if os.path.isdir(path):
                if expand_dir:
                    path = os.path.realpath(path)
                    for item in os.listdir(path):
                        sort_path(os.path.join(path, item))
                elif is_file_url:
                    urls.append(url)
            elif os.path.isfile(path):
                sort_path(path)
            else:
                logger.warning("Url    '%s'    is    ignored:    it    is    neither    a    file    nor    a    directory.", url)
        elif is_url(url):
            urls.append(url)
        else:
            logger.warning("Url    '%s'    is    ignored.    It    is    either    a    non-existing    path    or    lacks    a    specific    scheme.", url)
    return (files, urls)
