diff data_manager/bakta_build_database.py @ 18:04bee0f935a2 draft

planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 476cb50265f7dcb492fa2d0f03f595b1363faf7a
author pimarin
date Wed, 09 Nov 2022 15:49:56 +0000
parents ecb7d3d41366
children c90380f8bbbc
line wrap: on
line diff
--- a/data_manager/bakta_build_database.py	Fri Nov 04 15:56:27 2022 +0000
+++ b/data_manager/bakta_build_database.py	Wed Nov 09 15:49:56 2022 +0000
@@ -3,15 +3,12 @@
 import json
 import os
 import sys
-import subprocess
+# 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'])
+# subprocess.check_call([sys.executable, '-m', 'pip', 'install', 'requests'])
 
 import requests
 
@@ -35,15 +32,8 @@
 
     def get_data_table_format(self):
         """
-        Build a data table format for galaxy
-        using the bakta database information
-        @str database_value: string of the database name
-        @str database_date: string of the database date of build (YY-M-D)
-        @str database_bakta_version: string of the version of bakta tool
-         to apply a filter on version compatibility
-        @str database_path: string of the database path
-        for the database location
-        return: a data table formatted for json output
+        Skeleton of a data_table format
+        return: a data table formated for json output
         """
         self.data_table_entry = {
             "data_tables": {
@@ -54,10 +44,7 @@
 
     def fetch_db_versions(self, db_version="latest"):
         """
-        Use method from bakta tool to extract database info
-        db_version: a string of the version number
-        in the galaxy wrapper list or just latest
-        return: info for the select or the latest bakta db version
+        List bakta database info depending of the db_version selected
         """
         try:
             with requests.get(self.DB_VERSIONS_URL) as resp:
@@ -71,8 +58,7 @@
                 for db_dic in versions:
                     db_date_list.append(datetime.strptime(db_dic["date"],
                                                           '%Y-%m-%d').date())
-                filtered_version = next(item for item in versions
-                                        if max(db_date_list))
+                filtered_version = max(versions, key=lambda x: x['date'])
             elif db_version == "test":
                 filtered_version = {"date": "date_test",
                                     "major": "0",
@@ -84,16 +70,13 @@
                                                      "minor": "0"}
                                     }
             else:
-                major_version = str(db_version.split(sep=".")[0])
-                minor_version = str(db_version.split(sep=".")[1])
-                try:
-                    filtered_version = next(
-                        item for item in versions
-                        if str(item["major"]) == major_version
-                        and str(item["minor"]) == minor_version)
-                except StopIteration:
-                    print("No available version detected in the list")
-                    filtered_version = None
+                filtered_version = None
+                for item in versions:
+                    if '{0}.{1}'.format(item["major"], item["minor"]) == db_version:
+                        filtered_version = item
+                        break
+                if filtered_version is None:
+                    print("No matching version detected in the list")
             if filtered_version is not None:
                 self.db_url = f"https://zenodo.org/record/" \
                               f"{filtered_version['record']}/files/db.tar.gz"