Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def check_name(self, name):
"""check if genome name can be found for provider"""
if self.name == "URL":
return
if not safe(name) in self.genomes:
raise GenomeDownloadError(
f"Could not download genome {name} from {self.name}.\n\n"
"Check for typos or try\n"
Returns
------
str with the http/ftp download link.
"""
# soft masked genomes. can be unmasked in _post _process_download
urls = [self.ucsc_url, self.alt_ucsc_url]
if mask == "hard":
urls = [self.ucsc_url_masked, self.alt_ucsc_url_masked]
for genome_url in urls:
link = genome_url.format(name)
if check_url(link):
return link
raise GenomeDownloadError(
f"Could not download genome {name} from {self.name}.\n"
"URLs are broken. Select another genome or provider.\n"
def attempt_and_report(self, name, localname, link, genomes_dir):
if not link:
sys.stderr.write(
f"Could not download genome annotation for {name} from {self.name}.\n"
)
return
sys.stderr.write(f"\nDownloading annotation from {link}...\n")
try:
self.download_and_generate_annotation(genomes_dir, link, localname)
except Exception:
raise GenomeDownloadError(
f"\nCould not download annotation for {name} from {self.name}\n"
"If you think the annotation should be there, please file a bug report at:\n"
"https://github.com/vanheeringen-lab/genomepy/issues\n"
)
# TODO sanity check for genes
sys.stderr.write("Annotation download successful\n")
# Update readme annotation URL, or make a new
readme = os.path.join(genomes_dir, localname, "README.txt")
metadata, lines = read_readme(readme)
metadata["annotation url"] = link
write_readme(readme, metadata, lines)