From c5e4278a6eb4f4ed24b1ea3bb45e2dbbcff2b723 Mon Sep 17 00:00:00 2001 From: caufieldjh Date: Thu, 5 Sep 2024 15:06:20 -0400 Subject: [PATCH] Save downloaded ontology to path with acronym and submission ID --- src/kg_bioportal/downloader.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/kg_bioportal/downloader.py b/src/kg_bioportal/downloader.py index eae80e3..83fe36d 100644 --- a/src/kg_bioportal/downloader.py +++ b/src/kg_bioportal/downloader.py @@ -56,7 +56,6 @@ def __init__( return None - # TODO: save NCBO ID and version for each ontology, then pass to transformer def download(self, onto_list: list = []) -> None: """Downloads data files from list of ontologies into data directory. @@ -84,8 +83,9 @@ def download(self, onto_list: list = []) -> None: metadata = requests.get(metadata_url, headers=headers).json() logging.info(f"Name: {metadata['name']}") latest_sub_metadata = requests.get(latest_sub_url, headers=headers).json() + submission_id = latest_sub_metadata["submissionId"] logging.info( - f"Latest submission: {latest_sub_metadata['version']} - released {latest_sub_metadata['released']}" + f"Latest submission: {latest_sub_metadata['version']} - submission ID {submission_id} - released {latest_sub_metadata['released']}" ) download_onto = requests.get( @@ -96,7 +96,12 @@ def download(self, onto_list: list = []) -> None: .split("filename=")[1] .replace('"', "") ) - with open(f"{self.output_dir}/{onto_filename}", "wb") as outfile: + + outpath = f"{self.output_dir}/{ontology}/{submission_id}/{onto_filename}" + outdir = f"{self.output_dir}/{ontology}/{submission_id}" + if not os.path.exists(outdir): + os.makedirs(outdir) + with open(outpath, "wb") as outfile: outfile.write(download_onto.content) return None