@classmethod<EOL><INDENT>def download(cls, url=None, force_download=False):<DEDENT>
if url:<EOL><INDENT>version_url = os.path.join(os.path.dirname(url), defaults.VERSION_FILE_NAME)<EOL><DEDENT>else:<EOL><INDENT>url = os.path.join(defaults.XML_DIR_NAME, defaults.SWISSPROT_FILE_NAME)<EOL>version_url = os.path.join(defaults.XML_DIR_NAME, defaults.VERSION_FILE_NAME)<EOL><DEDENT>xml_file_path = cls.get_path_to_file_from_url(url)<EOL>version_file_path = cls.get_path_to_file_from_url(version_url)<EOL>if force_download or not os.path.exists(xml_file_path):<EOL><INDENT>log.info('<STR_LIT>'.format(xml_file_path, version_file_path))<EOL>scheme = urlsplit(url).scheme<EOL>if scheme in ('<STR_LIT>', '<STR_LIT:http>'):<EOL><INDENT>urlretrieve(version_url, version_file_path)<EOL>urlretrieve(url, xml_file_path)<EOL><DEDENT>elif not scheme and os.path.isfile(url):<EOL><INDENT>shutil.copyfile(url, xml_file_path)<EOL>shutil.copyfile(version_url, version_file_path)<EOL><DEDENT><DEDENT>return xml_file_path, version_file_path<EOL>
Downloads uniprot_sprot.xml.gz and reldate.txt (release date information) from URL or file path

        .. note::

            only URL/path of xml.gz is needed and valid value for parameter url. URL/path for reldate.txt have to be the
            same folder

        :param str url: UniProt gzipped URL or file path
        :param force_download: force method to download
        :type force_download: bool