annotate data_manager/plasmidfinder_fetch_database.py @ 0:8ad77a9dc91d draft

planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
author pimarin
date Tue, 14 Feb 2023 14:25:43 +0000
parents
children 9ef108e34063
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
1 import argparse
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
2 import json
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
3 import os
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
4 import tarfile
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
5 from datetime import datetime
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
6 from pathlib import Path
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
7
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
8 import requests
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
9
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
10
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
11 class GetPlasmidfinderDataManager:
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
12 """
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
13 Create the json file with database information for galaxy data manager
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
14 """
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
15
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
16 def __init__(self,
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
17 plasmidfinder_database="plasmidfinder_database",
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
18 db_name="plasmidfinder-db",
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
19 plasmidfinder_version="latest"):
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
20 self.data_table_name = plasmidfinder_database
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
21 self._db_name = db_name
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
22 self._plasmidfinder_version = plasmidfinder_version
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
23 self._plasmidfinder_date_version = None
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
24 self.data_table_entry = None
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
25 self.plasmidfinder_table_list = None
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
26 self._commit_number = None
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
27
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
28 def get_data_table_format(self):
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
29 """
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
30 Skeleton of a data_table format
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
31 return: a data table formatted for json output
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
32 """
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
33 self.data_table_entry = {
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
34 "data_tables": {
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
35 self.data_table_name: {}
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
36 }
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
37 }
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
38 return self.data_table_entry
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
39
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
40 def get_data_manager(self):
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
41 """
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
42 Create the empty data table format and add all the information into
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
43 Commit number is added if latest is required instead of version number
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
44 return: The data table with database information
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
45 """
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
46 self.plasmidfinder_table_list = self.get_data_table_format()
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
47 if self._plasmidfinder_version == "latest":
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
48 version_value = self._commit_number
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
49 else:
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
50 version_value = self._plasmidfinder_version
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
51 plasmidfinder_value = f"plasmidfinder_{self._commit_number}" \
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
52 f"_{self._plasmidfinder_date_version}"
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
53 plasmidfinder_name = f"{version_value}" \
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
54 f"_{self._plasmidfinder_date_version}"
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
55 data_info = dict(value=plasmidfinder_value,
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
56 name=plasmidfinder_name,
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
57 date=self._plasmidfinder_date_version,
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
58 path=self._db_name)
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
59 self.plasmidfinder_table_list["data_tables"][self.data_table_name] = [data_info]
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
60 return self.plasmidfinder_table_list
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
61
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
62
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
63 class DownloadPlasmidfinderDatabase(GetPlasmidfinderDataManager):
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
64 """
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
65 Download the plasmidfinder database from the bitbucket repository.
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
66 Build the data manager info for galaxy
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
67 """
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
68
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
69 def __init__(self,
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
70 output_dir=Path.cwd(),
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
71 plasmidfinder_url="https://bitbucket.org/genomicepidemiology/plasmidfinder_db/get/",
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
72 db_name="plasmidfinder-db",
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
73 db_tmp="tmp_database",
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
74 plasmidfinder_version="latest",
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
75 json_file_path=None,
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
76 date_version=datetime.now().strftime("%Y-%m-%d")):
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
77
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
78 super().__init__()
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
79 self.json_file_path = json_file_path
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
80 self._output_dir = output_dir
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
81 self._plasmidfinder_url = plasmidfinder_url
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
82 self._temporary_folder = db_tmp
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
83 self._db_name = db_name
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
84 self._db_name_tar = f'{db_name}.gz'
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
85 self._plasmidfinder_version = plasmidfinder_version
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
86 self._plasmidfinder_date_version = date_version
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
87 self._commit_number = None
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
88
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
89 def extract_db_commit(self, request_header, title_name="content-disposition"):
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
90 """
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
91 Extract the commit if to add the information as identifier of the download
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
92 @request_header: a request object obtained from requests.get()
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
93 @title_name: the tag to search in the header of the requests object
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
94 return: the value of the commit
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
95 """
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
96 db_info = request_header.headers[title_name]
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
97 commit_number = db_info.split("-")[2].split(".")[0]
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
98 return commit_number
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
99
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
100 def untar_files(self, file_path: Path, extracted_path_output: Path):
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
101 """
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
102 untar the download archive
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
103 @file_path: input path of the tar.gz file
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
104 @extracted_path_output: output path of the extract folder
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
105 return: the path of the output
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
106 """
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
107 try:
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
108 with file_path.open('rb') as fh_in, \
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
109 tarfile.open(fileobj=fh_in, mode='r:gz') as tar_file:
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
110 tar_file.extractall(path=extracted_path_output)
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
111 print(f'Untar the database in {extracted_path_output}')
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
112 return extracted_path_output
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
113 except OSError:
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
114 os.sys.exit(f'ERROR: Could not extract {file_path}')
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
115
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
116 def choose_db_version(self):
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
117 """
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
118 Update the url link depending on the version choosen by user.
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
119 This method could be upgraded simply by adding the new versions
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
120 """
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
121 if self._plasmidfinder_version == "latest":
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
122 self._plasmidfinder_url = f"{self._plasmidfinder_url}master.gz"
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
123 elif self._plasmidfinder_version == "2.1":
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
124 self._plasmidfinder_url = f"{self._plasmidfinder_url}1307168.gz"
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
125
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
126 def download_database(self):
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
127 """
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
128 Download the plasmidfinder database using requests lib
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
129 Make the directory and temporary directory for download
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
130 Untar the download files
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
131 """
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
132 self._output_dir = Path(self._output_dir)
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
133 self.choose_db_version()
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
134 try:
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
135 request_info = requests.get(self._plasmidfinder_url)
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
136 request_info.raise_for_status()
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
137 self._commit_number = self.extract_db_commit(request_info)
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
138 output_tar_path = self._output_dir.joinpath(self._temporary_folder)
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
139 output_tar_path_file = output_tar_path.joinpath(self._db_name_tar)
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
140 output_path = self._output_dir.joinpath(self._db_name)
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
141 os.makedirs(output_tar_path)
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
142 os.makedirs(output_path)
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
143 with open(output_tar_path_file, 'wb') as output_dir:
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
144 output_dir.write(request_info.content)
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
145 untar_output = self.untar_files(file_path=output_tar_path_file, extracted_path_output=output_tar_path.joinpath(self._db_name))
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
146
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
147 self.moove_download_files(older_path=untar_output, new_path=output_path)
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
148 except requests.exceptions.HTTPError as http_error:
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
149 print(f"Requests Error: {http_error}")
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
150 print(f"Fail to import Plasmidfinder database from {self._plasmidfinder_url}")
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
151
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
152 def moove_download_files(self, older_path, new_path, expression_search="*fsa"):
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
153 """
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
154 Clean downloaded data by mooving fasta files in the final folder
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
155 @older_path: previous path where the files are located
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
156 @new_path: final path where files will be mooved
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
157 @expression_search: keep only file with this expression
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
158 """
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
159 fasta_files = Path(older_path).rglob(expression_search)
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
160 file_list_paths = [file for file in fasta_files if file.is_file()]
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
161 [self.keep_filename(pathname=path, output_path=new_path) for path in file_list_paths]
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
162
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
163 def keep_filename(self, pathname, output_path):
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
164 """
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
165 Moove files
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
166 @pathname: previous path
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
167 @output_path: final path
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
168 """
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
169 Path.replace(pathname, output_path.joinpath(pathname.name))
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
170
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
171 def read_json_input_file(self):
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
172 """
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
173 Import the json file
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
174 """
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
175 with open(self.json_file_path) as fh:
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
176 params = json.load(fh)
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
177 target_dir = params['output_data'][0]['extra_files_path']
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
178 os.makedirs(target_dir)
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
179 self._output_dir = target_dir
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
180
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
181 def write_json_infos(self):
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
182 """
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
183 Write in the imported json file
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
184 """
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
185 with open(self.json_file_path, 'w') as fh:
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
186 json.dump(self.get_data_manager(), fh, sort_keys=True)
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
187
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
188
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
189 def parse_arguments():
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
190 """
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
191 List of arguments provided by the user
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
192 return: parsed arguments
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
193 """
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
194 # parse options and arguments
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
195 arg_parser = argparse.ArgumentParser()
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
196 arg_parser.add_argument("data_manager_json",
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
197 help="json file from galaxy")
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
198 arg_parser.add_argument("-v", "--db_version",
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
199 help="version of the plasmidfinder (latest or 2.1)")
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
200 return arg_parser.parse_args()
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
201
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
202
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
203 def main():
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
204 all_args = parse_arguments()
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
205 plasmidfinder_download = DownloadPlasmidfinderDatabase(json_file_path=all_args.data_manager_json, plasmidfinder_version=all_args.db_version)
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
206 plasmidfinder_download.read_json_input_file()
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
207 plasmidfinder_download.download_database()
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
208 plasmidfinder_download.write_json_infos()
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
209
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
210
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
211 if __name__ == '__main__':
8ad77a9dc91d planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_fetch_plasmidfinder commit f3383fdb9a17d1b69d05547cdb96534a5f762bec-dirty
pimarin
parents:
diff changeset
212 main()