Mercurial > repos > iuc > data_manager_pangolin_data
annotate data_manager/pangolin_data_dm.py @ 1:c22f6c820658 draft default tip
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 544fd499de5324afce8f5f9b38ffdaf282f4dfaa
author | iuc |
---|---|
date | Wed, 25 Sep 2024 15:42:43 +0000 |
parents | 33158d21324d |
children |
rev | line source |
---|---|
0
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
1 #!/usr/bin/env python |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
2 |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
3 import argparse |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
4 import datetime |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
5 import json |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
6 import operator |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
7 import pathlib |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
8 import shutil |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
9 import subprocess |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
10 import sys |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
11 import tempfile |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
12 from io import StringIO |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
13 from typing import Generator, TextIO |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
14 |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
15 import requests |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
16 |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
17 |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
18 def parse_date(d: str) -> datetime.datetime: |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
19 # Parses the publication date from the GitHub API or user input into a datetime object. |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
20 date = None |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
21 try: |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
22 date = datetime.datetime.strptime(d, "%Y-%m-%dT%H:%M:%SZ") |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
23 except ValueError: |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
24 date = datetime.datetime.strptime(d, "%Y-%m-%d") |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
25 return date |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
26 |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
27 |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
28 def get_model_list(package: str) -> Generator[dict, None, None]: |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
29 page_num = 0 |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
30 while True: |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
31 url = f"https://api.github.com/repos/cov-lineages/{package}/releases" |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
32 page_num += 1 |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
33 response = requests.get(url + f"?page={page_num}") |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
34 if response.status_code == 200: |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
35 release_list_chunk = json.loads(response.text) |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
36 if not release_list_chunk: |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
37 # past the last page of results |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
38 return |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
39 for e in release_list_chunk: |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
40 if e["prerelease"]: |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
41 continue |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
42 yield dict( |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
43 tag_name=e["tag_name"], |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
44 name=e["name"], |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
45 date=parse_date(e["published_at"]), |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
46 tarball_url=e["tarball_url"], |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
47 ) |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
48 else: |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
49 response.raise_for_status() |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
50 |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
51 |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
52 def download_and_unpack( |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
53 dependency: str, release: str, output_directory: str |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
54 ) -> pathlib.Path: |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
55 url = f"git+https://github.com/cov-lineages/{dependency}.git@{release}" |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
56 dependency_package_name = dependency.replace("-", "_") |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
57 output_path = pathlib.Path(output_directory) / dependency_package_name / release |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
58 with tempfile.TemporaryDirectory() as tmpdir: |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
59 pip_command = [ |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
60 sys.executable, |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
61 "-m", |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
62 "pip", |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
63 "install", |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
64 "--upgrade", |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
65 "--target", |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
66 tmpdir, |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
67 url, |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
68 ] |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
69 # output is saved in tmpdir/dependency, final output needs to be |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
70 # in output_directory/dependency/release |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
71 subprocess.run(pip_command, check=True) |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
72 shutil.move( |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
73 str(pathlib.Path(tmpdir) / dependency_package_name), str(output_path) |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
74 ) |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
75 return output_path |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
76 |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
77 |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
78 def fetch_compatibility_info( |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
79 package_name: str, |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
80 url: str = "https://raw.githubusercontent.com/cov-lineages/pangolin/master/pangolin/data/data_compatibility.csv", |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
81 ) -> list[dict[str, str]]: |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
82 response = requests.get(url) |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
83 if response.status_code == 200: |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
84 compatibility = read_compatibility_info(StringIO(response.text), package_name) |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
85 return compatibility |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
86 else: |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
87 return {} |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
88 |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
89 |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
90 def read_compatibility_info( |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
91 input_file: TextIO, package_name: str |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
92 ) -> list[dict[str, str]]: |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
93 compatibility = {} |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
94 for line in input_file: |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
95 fields = line.strip().split(",") |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
96 if fields[0] != package_name: |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
97 continue |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
98 if package_name == "constellations": |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
99 compatibility[fields[1]] = fields[3] |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
100 else: |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
101 # for pangolin-data and pangolin-assignment |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
102 compatibility[fields[1]] = fields[2] |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
103 return compatibility |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
104 |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
105 |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
106 def comma_split(args: str) -> list[str]: |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
107 return args.split(",") |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
108 |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
109 |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
110 def git_lfs_install(): |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
111 """ |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
112 'git-lfs install' must be run after installing git-lfs and before cloning a repo |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
113 that uses Git LFS. Code taken from pangolin repo. |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
114 """ |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
115 try: |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
116 subprocess.run( |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
117 ["git-lfs", "install"], |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
118 check=True, |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
119 stdout=subprocess.PIPE, |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
120 stderr=subprocess.PIPE, |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
121 ) |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
122 except subprocess.CalledProcessError as e: |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
123 stderr = e.stderr.decode("utf-8") |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
124 sys.stderr.write(f"Error: {e}:\n{stderr}\n") |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
125 sys.exit(-1) |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
126 |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
127 |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
128 if __name__ == "__main__": |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
129 |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
130 parser = argparse.ArgumentParser() |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
131 parser.add_argument("--latest", default=False, action="store_true") |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
132 parser.add_argument("--version_compatibility_file", type=argparse.FileType()) |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
133 parser.add_argument("--versions", type=comma_split) |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
134 parser.add_argument("--overwrite", default=False, action="store_true") |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
135 parser.add_argument("--known_revisions", type=comma_split) |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
136 parser.add_argument("datatable_name") |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
137 parser.add_argument("datatable_cache_filename") |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
138 parser.add_argument("galaxy_config") |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
139 args = parser.parse_args() |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
140 |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
141 if args.datatable_name == "pangolin_data": |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
142 package_name = "pangolin-data" |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
143 min_version_key = "min_pangolin_version" |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
144 elif args.datatable_name == "pangolin_constellations": |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
145 package_name = "constellations" |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
146 min_version_key = "min_scorpio_version" |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
147 elif args.datatable_name == "pangolin_assignment": |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
148 package_name = "pangolin-assignment" |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
149 min_version_key = "min_pangolin_version" |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
150 git_lfs_install() |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
151 else: |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
152 sys.exit(f"Unknown data table {args.datatable_name}") |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
153 |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
154 with open(args.galaxy_config) as fh: |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
155 config = json.load(fh) |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
156 |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
157 output_directory = config.get("output_data", [{}])[0].get("extra_files_path", None) |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
158 |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
159 try: |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
160 with open(args.datatable_cache_filename) as fh: |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
161 data_manager_dict = json.load(fh) |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
162 except IOError: |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
163 # on the first run this file doesn't exist |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
164 data_manager_dict = {} |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
165 |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
166 if "data_tables" in data_manager_dict: |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
167 if args.datatable_name not in data_manager_dict["data_tables"]: |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
168 # got a data_tables entry, probably from a previous run of this script, |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
169 # but no entry for this specific data table |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
170 data_manager_dict["data_tables"][args.datatable_name] = [] |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
171 else: |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
172 # got no entry for data tables, start from scratch |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
173 data_manager_dict = {"data_tables": {args.datatable_name: []}} |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
174 |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
175 # known-revisions is populated from the Galaxy `pangolin_data` data table by the wrapper |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
176 if args.known_revisions is not None: |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
177 existing_release_tags = set(args.known_revisions) |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
178 else: |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
179 existing_release_tags = set() |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
180 if args.latest: |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
181 compatibility = fetch_compatibility_info(package_name) |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
182 for latest_release in get_model_list(package_name): |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
183 # choose the first release for which we have compatibility info |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
184 version = latest_release["tag_name"].lstrip("v.") |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
185 if version in compatibility: |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
186 latest_release[min_version_key] = compatibility[version] |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
187 break |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
188 if latest_release["tag_name"] in existing_release_tags: |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
189 releases = [] |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
190 else: |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
191 releases = [latest_release] |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
192 else: |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
193 compatibility = read_compatibility_info( |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
194 args.version_compatibility_file, package_name |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
195 ) |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
196 downloadable_releases = get_model_list(package_name) |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
197 releases_wanted = set(args.versions) - set( |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
198 [tag.lstrip("v.") for tag in existing_release_tags] |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
199 ) |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
200 releases = [] |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
201 for release in downloadable_releases: |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
202 version = release["tag_name"].lstrip("v.") |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
203 if version in releases_wanted: |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
204 if version in compatibility: |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
205 # only add the releases for which we have compatibility info |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
206 release[min_version_key] = compatibility[version] |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
207 releases.append(release) |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
208 releases_wanted.remove(version) |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
209 if not releases_wanted: |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
210 # we've found all the releases we want |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
211 break |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
212 if releases_wanted: |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
213 missing_releases = " ".join(releases_wanted) |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
214 sys.exit( |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
215 f"Some of the requested releases ({missing_releases}) are not available." |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
216 ) |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
217 |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
218 for release in releases: |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
219 fname = download_and_unpack(package_name, release["tag_name"], output_directory) |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
220 if fname is not None: |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
221 data_manager_dict["data_tables"][args.datatable_name].append( |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
222 { |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
223 "value": release["tag_name"], |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
224 "description": release["name"], |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
225 min_version_key: release[min_version_key], |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
226 "date": release["date"].isoformat(), # ISO 8601 is easily sortable |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
227 "path": str(output_directory / fname), |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
228 } |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
229 ) |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
230 data_manager_dict["data_tables"][args.datatable_name].sort( |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
231 key=operator.itemgetter("value"), reverse=True |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
232 ) |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
233 with open(args.datatable_cache_filename, "w") as fh: |
33158d21324d
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
iuc
parents:
diff
changeset
|
234 json.dump(data_manager_dict, fh, indent=2, sort_keys=True) |