# HG changeset patch # User pimarin # Date 1673619090 0 # Node ID c90380f8bbbc4768e334388b4f80b57e5bba65a9 # Parent 04bee0f935a22fc93ac0970c5887b9f3169413fc planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_bakta_database commit 8eb28a93e6f2688bb2f3f85aea0389e1b1148816-dirty diff -r 04bee0f935a2 -r c90380f8bbbc data_manager/bakta_build_database.py --- a/data_manager/bakta_build_database.py Wed Nov 09 15:49:56 2022 +0000 +++ b/data_manager/bakta_build_database.py Fri Jan 13 14:11:30 2023 +0000 @@ -3,12 +3,10 @@ import json import os import sys -# import subprocess import tarfile from datetime import datetime from pathlib import Path -# implement pip as a subprocess: -# subprocess.check_call([sys.executable, '-m', 'pip', 'install', 'requests']) + import requests @@ -21,7 +19,8 @@ def __init__(self, data_table_name="bakta_database", db_name=Path.cwd().joinpath("db"), - db_version="latest"): + db_version="latest", + test_mode=False): self.bakta_table_list = None self.db_url = None self.data_table_entry = None @@ -29,6 +28,8 @@ self.db_name = db_name self.db_version = db_version self.DB_VERSIONS_URL = 'https://raw.githubusercontent.com/oschwengers/bakta/master/db-versions.json' + self.DB_TEST_URL = 'https://zenodo.org/record/7360542/files/db-versions.json' + self.test_mode = test_mode def get_data_table_format(self): """ @@ -44,8 +45,10 @@ def fetch_db_versions(self, db_version="latest"): """ - List bakta database info depending of the db_version selected + List bakta database info related to the db_version selected """ + if self.test_mode is True: + self.DB_VERSIONS_URL = self.DB_TEST_URL try: with requests.get(self.DB_VERSIONS_URL) as resp: versions = json.loads(resp.content) @@ -59,16 +62,6 @@ db_date_list.append(datetime.strptime(db_dic["date"], '%Y-%m-%d').date()) filtered_version = max(versions, key=lambda x: x['date']) - elif db_version == "test": - filtered_version = {"date": "date_test", - "major": "0", - "minor": "0", - "doi": "10.5281/zenodo.7197299", - "record": "7197299", - "md5": "8b0250c17078742fc12207d4efb0fc1a", - "software-min": {"major": "0", - "minor": "0"} - } else: filtered_version = None for item in versions: @@ -83,15 +76,15 @@ self.db_version = db_version return filtered_version - def get_data_manager(self, bakta_database_info, output_path): + def get_data_manager(self, bakta_database_info): self.bakta_table_list = self.get_data_table_format() bakta_value = f"V{bakta_database_info['major']}." \ f"{bakta_database_info['minor']}_" \ f"{bakta_database_info['date']}" tool_version = str(f"{bakta_database_info['software-min']['major']}." f"{bakta_database_info['software-min']['minor']}") - data_info = dict(value=bakta_database_info['record'], - dbkey=bakta_value, + data_info = dict(value=bakta_value, + dbkey=bakta_database_info['record'], bakta_version=tool_version, path="db") self.bakta_table_list["data_tables"][self.data_table_name] = [data_info] @@ -108,13 +101,15 @@ def __init__(self, db_dir=Path.cwd(), db_name="bakta", - tarball_name="db.tar.gz"): + tarball_name="db.tar.gz", + test_mode=False): super().__init__() self.md5 = None self.db_dir = db_dir self.db_name = db_name self.tarball_name = tarball_name self.tarball_path = None + self.test_mode = test_mode def download(self): self.db_name = f'{self.db_name}_{self.db_version}' @@ -212,20 +207,13 @@ def main(): all_args = parse_arguments() - with open(all_args.data_manager_json) as fh: params = json.load(fh) target_dir = params['output_data'][0]['extra_files_path'] os.makedirs(target_dir) # init the class to download bakta db - bakta_upload = InstallBaktaDatabase() - # extract the version - if all_args.test is True: - bakta_db = bakta_upload.fetch_db_versions( - db_version="test") - else: - bakta_db = bakta_upload.fetch_db_versions( - db_version=all_args.database_version) + bakta_upload = InstallBaktaDatabase(test_mode=all_args.test) + bakta_db = bakta_upload.fetch_db_versions(db_version=all_args.database_version) # update the path for galaxy bakta_upload.db_dir = target_dir # download the database @@ -235,7 +223,7 @@ # untar db bakta_upload.untar() # make the data_manager metadata - bakta_data_manager = bakta_upload.get_data_manager(bakta_database_info=bakta_db, output_path=target_dir) + bakta_data_manager = bakta_upload.get_data_manager(bakta_database_info=bakta_db) with open(all_args.data_manager_json, 'w') as fh: json.dump(bakta_data_manager, fh, sort_keys=True) diff -r 04bee0f935a2 -r c90380f8bbbc data_manager/bakta_build_database.xml --- a/data_manager/bakta_build_database.xml Wed Nov 09 15:49:56 2022 +0000 +++ b/data_manager/bakta_build_database.xml Fri Jan 13 14:11:30 2023 +0000 @@ -27,11 +27,18 @@ - + + + + + + + + diff -r 04bee0f935a2 -r c90380f8bbbc test-data/bakta_test.loc --- a/test-data/bakta_test.loc Wed Nov 09 15:49:56 2022 +0000 +++ b/test-data/bakta_test.loc Fri Jan 13 14:11:30 2023 +0000 @@ -5,3 +5,11 @@ # # for example 7197299 V0.0_date_test 0.0 ${__HERE__} +7197299 V1.0_2022-10-12 1.4 /tmp/tmpxrkfnuec/galaxy-dev/tool-data/bakta_database/7197299 +7360139 V2.0_2022-11-25 1.5 /tmp/tmpxrkfnuec/galaxy-dev/tool-data/bakta_database/7360139 +7197299 V1.0_2022-10-12 1.4 /tmp/tmpwe9n4gyg/galaxy-dev/tool-data/bakta_database/7197299 +7360139 V2.0_2022-11-25 1.5 /tmp/tmpwe9n4gyg/galaxy-dev/tool-data/bakta_database/7360139 +V1.0_2022-10-12 7197299 1.4 /tmp/tmpw5w3lbzc/galaxy-dev/tool-data/bakta_database/V1.0_2022-10-12 +V2.0_2022-11-25 7360139 1.5 /tmp/tmpw5w3lbzc/galaxy-dev/tool-data/bakta_database/V2.0_2022-11-25 +V1.0_2022-10-12 7197299 1.4 /tmp/tmpi5flu1x0/galaxy-dev/tool-data/bakta_database/V1.0_2022-10-12 +V2.0_2022-11-25 7360139 1.5 /tmp/tmpi5flu1x0/galaxy-dev/tool-data/bakta_database/V2.0_2022-11-25 diff -r 04bee0f935a2 -r c90380f8bbbc test-data/bakta_test_data_manager.json --- a/test-data/bakta_test_data_manager.json Wed Nov 09 15:49:56 2022 +0000 +++ b/test-data/bakta_test_data_manager.json Fri Jan 13 14:11:30 2023 +0000 @@ -1,1 +1,1 @@ -{"data_tables": {"bakta_database": [{"bakta_version": "0.0", "dbkey": "V0.0_date_test", "path": "db", "value": "7197299"}]}} \ No newline at end of file +{"data_tables": {"bakta_database": [{"bakta_version": "1.4", "dbkey": "7197299", "path": "db", "value": "V1.0_2022-10-12"}]}} \ No newline at end of file diff -r 04bee0f935a2 -r c90380f8bbbc test-data/bakta_test_data_manager_test2.json --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/bakta_test_data_manager_test2.json Fri Jan 13 14:11:30 2023 +0000 @@ -0,0 +1,1 @@ +{"data_tables": {"bakta_database": [{"bakta_version": "1.5", "dbkey": "7360139", "path": "db", "value": "V2.0_2022-11-25"}]}} \ No newline at end of file diff -r 04bee0f935a2 -r c90380f8bbbc test-data/db-versions.json --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/db-versions.json Fri Jan 13 14:11:30 2023 +0000 @@ -0,0 +1,26 @@ +[ + { + "date": "2022-10-12", + "major": 1, + "minor": 0, + "doi": "10.5281/zenodo.7197299", + "record": "7197299", + "md5": "8b0250c17078742fc12207d4efb0fc1a", + "software-min": { + "major": 1, + "minor": 4 + } + }, + { + "date": "2022-11-25", + "major": 2, + "minor": 0, + "doi": "10.5281/zenodo.7360139", + "record": "7360139", + "md5": "ebdb799a6bd97e56ca359db781ab8bab", + "software-min": { + "major": 1, + "minor": 5 + } + } +]