def all_remote_versions(self): """ Get all Versions from catalogue archive plus latest version. :return: list of variables of the type DataSourceVersion """ # get from release catalogue archive archive_path = posixpath.join(self.BASEURL, self.BASEPATH, 'archive') file_list = downloader.list_ftp_dir(archive_path) # get names of release catalogue files release_catalog_list = set( [x.name for x in file_list if 'RefSeq-release' in x.name]) # get release numbers from names # RefSeq-release20.catalog.gz => 20 version_numbers = [ int(x.split('-')[1].split('.')[0].replace('release', '')) for x in release_catalog_list ] # put in DataSourceVersion, add latest ds_versions = [DataSourceVersion(x) for x in version_numbers] ds_versions.append(self.latest_remote_version()) return ds_versions
def latest_remote_version(self): """ Versions are named with 'year_month', e.g. '2016_01'. Data is parsed from 'RELEASE.metalink' file in 'current_release' directory of FTP server. :return: Latest remote version. :rtype: DataSourceVersion """ current_release_path = posixpath.join(self.UNIPROT_BASEURL, self.UNIPROT_CURRENT_BASEPATH) release_file = posixpath.join(current_release_path, 'RELEASE.metalink') # read XML file from server into string release_metalink_xml = downloader.get_single_file_ftp( release_file).read().decode() # replace xml namespace thing to avoid dealing with namespaces release_metalink_xml = release_metalink_xml.replace( ' xmlns="', ' xmlnamespace="') # parse XML tree = ElementTree.fromstring(release_metalink_xml) version = tree.find('version').text return DataSourceVersion(self._date_from_name(version))
def latest_remote_version(self): """ Get number of latest release from ftp://ftp.ncbi.nlm.nih.gov/refseq/release/RELEASE_NUMBER. :return: DataSourceVersion of latest remote version """ # returns a BytesIO object release_file = downloader.get_single_file_ftp( 'ftp://ftp.ncbi.nlm.nih.gov/refseq/release/RELEASE_NUMBER') # to get the text simply 'read' and 'decode' release_number = int(release_file.read().decode().rstrip()) return DataSourceVersion(release_number)
def all_remote_versions(self): """ Get all versions available on miRBase FTP server. All versions are a directory in /pub/mirbase. :return: List of DataSourceVersions available on server. :rtype: list(DataSourceVersion) """ versions = [DataSourceVersion(x) for x in VERSION_2_URL] return versions
def all_remote_versions(self): """ Get all versions available on miRBase FTP server. All versions are a directory in /pub/mirbase. :return: List of DataSourceVersions available on server. :rtype: list(DataSourceVersion) """ ftp_list = downloader.list_ftp_dir(self.mirbase_baseurl, path=self.mirbase_basepath) versions = [DataSourceVersion(x.name) for x in ftp_list] return versions
def latest_remote_version(self): """ Only the latest version is accessible. """ return DataSourceVersion('03-2018')