Mercurial > repos > richard-burhans > batched_lastz
annotate run_lastz_tarball.py @ 14:43e72105f473 draft default tip
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 646cb397d5219aba8b2eb365bef61195789e1d81
author | richard-burhans |
---|---|
date | Fri, 30 Aug 2024 15:32:44 +0000 |
parents | aa5586d83ae3 |
children |
rev | line source |
---|---|
0
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
1 #!/usr/bin/env python |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
2 |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
3 import argparse |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
4 import concurrent.futures |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
5 import json |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
6 import multiprocessing |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
7 import os |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
8 import queue |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
9 import re |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
10 import shutil |
6
34d51e66256c
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 2ab3532f7a45153eb0f945ac22c37cdcaea8c1e1
richard-burhans
parents:
2
diff
changeset
|
11 import subprocess |
0
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
12 import sys |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
13 import tarfile |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
14 import tempfile |
6
34d51e66256c
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 2ab3532f7a45153eb0f945ac22c37cdcaea8c1e1
richard-burhans
parents:
2
diff
changeset
|
15 import time |
0
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
16 import typing |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
17 |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
18 |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
19 lastz_output_format_regex = re.compile( |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
20 r"^(?:axt\+?|blastn|cigar|differences|general-?.+|lav|lav\+text|maf[-+]?|none|paf(?::wfmash)?|rdotplot|sam-?|softsam-?|text)$", |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
21 re.IGNORECASE, |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
22 ) |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
23 |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
24 |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
25 # Specifies the output format: lav, lav+text, axt, axt+, maf, maf+, maf-, sam, softsam, sam-, softsam-, cigar, BLASTN, PAF, PAF:wfmash, differences, rdotplot, text, general[:<fields>], or general-[:<fields>]. |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
26 # ‑‑format=none can be used when no alignment output is desired. |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
27 |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
28 |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
29 def run_command( |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
30 instance: int, |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
31 input_queue: "queue.Queue[typing.Dict[str, typing.Any]]", |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
32 output_queue: "queue.Queue[float]", |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
33 debug: bool = False, |
11
aa5586d83ae3
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit e93d50e4ea6522b591e24c3b0ddbe8f9d322a93a
richard-burhans
parents:
10
diff
changeset
|
34 ) -> str | None: |
0
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
35 os.chdir("galaxy/files") |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
36 |
10
d10e7502aba8
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit effd27b9070dc4564d3cea38869d3bf043201683
richard-burhans
parents:
8
diff
changeset
|
37 # These are not considered errors even though |
d10e7502aba8
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit effd27b9070dc4564d3cea38869d3bf043201683
richard-burhans
parents:
8
diff
changeset
|
38 # we will end up with a segmented alignment |
d10e7502aba8
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit effd27b9070dc4564d3cea38869d3bf043201683
richard-burhans
parents:
8
diff
changeset
|
39 truncation_regex = re.compile( |
d10e7502aba8
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit effd27b9070dc4564d3cea38869d3bf043201683
richard-burhans
parents:
8
diff
changeset
|
40 r"truncating alignment (ending|starting) at \(\d+,\d+\); anchor at \(\d+,\d+\)$" |
d10e7502aba8
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit effd27b9070dc4564d3cea38869d3bf043201683
richard-burhans
parents:
8
diff
changeset
|
41 ) |
d10e7502aba8
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit effd27b9070dc4564d3cea38869d3bf043201683
richard-burhans
parents:
8
diff
changeset
|
42 truncation_msg = "truncation can be reduced by using --allocate:traceback to increase traceback memory" |
d10e7502aba8
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit effd27b9070dc4564d3cea38869d3bf043201683
richard-burhans
parents:
8
diff
changeset
|
43 |
0
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
44 while True: |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
45 command_dict = input_queue.get() |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
46 |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
47 if not command_dict: |
11
aa5586d83ae3
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit e93d50e4ea6522b591e24c3b0ddbe8f9d322a93a
richard-burhans
parents:
10
diff
changeset
|
48 return None |
0
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
49 |
8
3a67d287d19f
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit a5a11ffe6ec0c36c5997499a50d58c38c36d54ec
richard-burhans
parents:
7
diff
changeset
|
50 args = ["lastz", "--allocate:traceback=1.99G"] |
0
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
51 args.extend(command_dict["args"]) |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
52 |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
53 stdin = command_dict["stdin"] |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
54 if stdin is not None: |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
55 stdin = open(stdin, "r") |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
56 |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
57 stdout = command_dict["stdout"] |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
58 if stdout is not None: |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
59 stdout = open(stdout, "w") |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
60 |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
61 stderr = command_dict["stderr"] |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
62 if stderr is not None: |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
63 stderr = open(stderr, "w") |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
64 |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
65 begin = time.perf_counter() |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
66 p = subprocess.run(args, stdin=stdin, stdout=stdout, stderr=stderr) |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
67 |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
68 for var in [stdin, stdout, stderr]: |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
69 if var is not None: |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
70 var.close() |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
71 |
11
aa5586d83ae3
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit e93d50e4ea6522b591e24c3b0ddbe8f9d322a93a
richard-burhans
parents:
10
diff
changeset
|
72 # if there is a stderr_file, make sure it is |
aa5586d83ae3
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit e93d50e4ea6522b591e24c3b0ddbe8f9d322a93a
richard-burhans
parents:
10
diff
changeset
|
73 # empty or only contains truncation messages |
aa5586d83ae3
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit e93d50e4ea6522b591e24c3b0ddbe8f9d322a93a
richard-burhans
parents:
10
diff
changeset
|
74 stderr_ok = True |
aa5586d83ae3
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit e93d50e4ea6522b591e24c3b0ddbe8f9d322a93a
richard-burhans
parents:
10
diff
changeset
|
75 stderr_file = command_dict["stderr"] |
0
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
76 |
11
aa5586d83ae3
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit e93d50e4ea6522b591e24c3b0ddbe8f9d322a93a
richard-burhans
parents:
10
diff
changeset
|
77 if stderr_file is not None: |
aa5586d83ae3
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit e93d50e4ea6522b591e24c3b0ddbe8f9d322a93a
richard-burhans
parents:
10
diff
changeset
|
78 try: |
aa5586d83ae3
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit e93d50e4ea6522b591e24c3b0ddbe8f9d322a93a
richard-burhans
parents:
10
diff
changeset
|
79 statinfo = os.stat(stderr_file, follow_symlinks=False) |
aa5586d83ae3
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit e93d50e4ea6522b591e24c3b0ddbe8f9d322a93a
richard-burhans
parents:
10
diff
changeset
|
80 if statinfo.st_size != 0: |
aa5586d83ae3
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit e93d50e4ea6522b591e24c3b0ddbe8f9d322a93a
richard-burhans
parents:
10
diff
changeset
|
81 with open(stderr_file) as f: |
aa5586d83ae3
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit e93d50e4ea6522b591e24c3b0ddbe8f9d322a93a
richard-burhans
parents:
10
diff
changeset
|
82 for stderr_line in f: |
aa5586d83ae3
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit e93d50e4ea6522b591e24c3b0ddbe8f9d322a93a
richard-burhans
parents:
10
diff
changeset
|
83 stderr_line = stderr_line.strip() |
aa5586d83ae3
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit e93d50e4ea6522b591e24c3b0ddbe8f9d322a93a
richard-burhans
parents:
10
diff
changeset
|
84 if (not truncation_regex.match(stderr_line) and stderr_line != truncation_msg): |
aa5586d83ae3
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit e93d50e4ea6522b591e24c3b0ddbe8f9d322a93a
richard-burhans
parents:
10
diff
changeset
|
85 stderr_ok = False |
aa5586d83ae3
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit e93d50e4ea6522b591e24c3b0ddbe8f9d322a93a
richard-burhans
parents:
10
diff
changeset
|
86 except Exception: |
aa5586d83ae3
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit e93d50e4ea6522b591e24c3b0ddbe8f9d322a93a
richard-burhans
parents:
10
diff
changeset
|
87 stderr_ok = False |
0
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
88 |
11
aa5586d83ae3
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit e93d50e4ea6522b591e24c3b0ddbe8f9d322a93a
richard-burhans
parents:
10
diff
changeset
|
89 if p.returncode in [0, 1] and stderr_ok: |
0
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
90 elapsed = time.perf_counter() - begin |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
91 output_queue.put(elapsed) |
8
3a67d287d19f
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit a5a11ffe6ec0c36c5997499a50d58c38c36d54ec
richard-burhans
parents:
7
diff
changeset
|
92 else: |
11
aa5586d83ae3
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit e93d50e4ea6522b591e24c3b0ddbe8f9d322a93a
richard-burhans
parents:
10
diff
changeset
|
93 return f"command failed (rc={p.returncode}): {' '.join(args)}" |
0
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
94 |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
95 |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
96 class BatchTar: |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
97 def __init__(self, pathname: str, debug: bool = False) -> None: |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
98 self.pathname = pathname |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
99 self.debug = debug |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
100 self.tarfile = None |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
101 self.commands: typing.List[typing.Dict[str, typing.Any]] = [] |
7
4cd7884635c2
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 869a01abe21b6283d3c83da38fc68761c2e94ba1
richard-burhans
parents:
6
diff
changeset
|
102 self.format_name = "tabular" |
0
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
103 self._extract() |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
104 self._load_commands() |
7
4cd7884635c2
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 869a01abe21b6283d3c83da38fc68761c2e94ba1
richard-burhans
parents:
6
diff
changeset
|
105 self._load_format() |
0
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
106 |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
107 def batch_commands(self) -> typing.Iterator[typing.Dict[str, typing.Any]]: |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
108 for command in self.commands: |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
109 yield command |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
110 |
7
4cd7884635c2
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 869a01abe21b6283d3c83da38fc68761c2e94ba1
richard-burhans
parents:
6
diff
changeset
|
111 def final_output_format(self) -> str: |
4cd7884635c2
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 869a01abe21b6283d3c83da38fc68761c2e94ba1
richard-burhans
parents:
6
diff
changeset
|
112 return self.format_name |
4cd7884635c2
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 869a01abe21b6283d3c83da38fc68761c2e94ba1
richard-burhans
parents:
6
diff
changeset
|
113 |
4cd7884635c2
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 869a01abe21b6283d3c83da38fc68761c2e94ba1
richard-burhans
parents:
6
diff
changeset
|
114 def _extract(self) -> None: |
4cd7884635c2
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 869a01abe21b6283d3c83da38fc68761c2e94ba1
richard-burhans
parents:
6
diff
changeset
|
115 try: |
4cd7884635c2
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 869a01abe21b6283d3c83da38fc68761c2e94ba1
richard-burhans
parents:
6
diff
changeset
|
116 self.tarball = tarfile.open( |
4cd7884635c2
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 869a01abe21b6283d3c83da38fc68761c2e94ba1
richard-burhans
parents:
6
diff
changeset
|
117 name=self.pathname, mode="r:*", format=tarfile.GNU_FORMAT |
4cd7884635c2
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 869a01abe21b6283d3c83da38fc68761c2e94ba1
richard-burhans
parents:
6
diff
changeset
|
118 ) |
4cd7884635c2
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 869a01abe21b6283d3c83da38fc68761c2e94ba1
richard-burhans
parents:
6
diff
changeset
|
119 except FileNotFoundError: |
4cd7884635c2
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 869a01abe21b6283d3c83da38fc68761c2e94ba1
richard-burhans
parents:
6
diff
changeset
|
120 sys.exit(f"ERROR: unable to find input tarball: {self.pathname}") |
4cd7884635c2
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 869a01abe21b6283d3c83da38fc68761c2e94ba1
richard-burhans
parents:
6
diff
changeset
|
121 except tarfile.ReadError: |
4cd7884635c2
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 869a01abe21b6283d3c83da38fc68761c2e94ba1
richard-burhans
parents:
6
diff
changeset
|
122 sys.exit(f"ERROR: error reading input tarball: {self.pathname}") |
4cd7884635c2
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 869a01abe21b6283d3c83da38fc68761c2e94ba1
richard-burhans
parents:
6
diff
changeset
|
123 |
4cd7884635c2
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 869a01abe21b6283d3c83da38fc68761c2e94ba1
richard-burhans
parents:
6
diff
changeset
|
124 begin = time.perf_counter() |
4cd7884635c2
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 869a01abe21b6283d3c83da38fc68761c2e94ba1
richard-burhans
parents:
6
diff
changeset
|
125 self.tarball.extractall(filter="data") |
4cd7884635c2
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 869a01abe21b6283d3c83da38fc68761c2e94ba1
richard-burhans
parents:
6
diff
changeset
|
126 self.tarball.close() |
4cd7884635c2
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 869a01abe21b6283d3c83da38fc68761c2e94ba1
richard-burhans
parents:
6
diff
changeset
|
127 elapsed = time.perf_counter() - begin |
4cd7884635c2
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 869a01abe21b6283d3c83da38fc68761c2e94ba1
richard-burhans
parents:
6
diff
changeset
|
128 |
4cd7884635c2
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 869a01abe21b6283d3c83da38fc68761c2e94ba1
richard-burhans
parents:
6
diff
changeset
|
129 if self.debug: |
4cd7884635c2
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 869a01abe21b6283d3c83da38fc68761c2e94ba1
richard-burhans
parents:
6
diff
changeset
|
130 print( |
4cd7884635c2
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 869a01abe21b6283d3c83da38fc68761c2e94ba1
richard-burhans
parents:
6
diff
changeset
|
131 f"Extracted tarball in {elapsed} seconds", file=sys.stderr, flush=True |
4cd7884635c2
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 869a01abe21b6283d3c83da38fc68761c2e94ba1
richard-burhans
parents:
6
diff
changeset
|
132 ) |
4cd7884635c2
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 869a01abe21b6283d3c83da38fc68761c2e94ba1
richard-burhans
parents:
6
diff
changeset
|
133 |
0
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
134 def _load_commands(self) -> None: |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
135 try: |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
136 f = open("galaxy/commands.json") |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
137 except FileNotFoundError: |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
138 sys.exit( |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
139 f"ERROR: input tarball missing galaxy/commands.json: {self.pathname}" |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
140 ) |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
141 |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
142 begin = time.perf_counter() |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
143 for json_line in f: |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
144 json_line = json_line.rstrip("\n") |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
145 try: |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
146 command_dict = json.loads(json_line) |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
147 except json.JSONDecodeError: |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
148 sys.exit( |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
149 f"ERROR: bad json line in galaxy/commands.json: {self.pathname}" |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
150 ) |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
151 |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
152 self._load_command(command_dict) |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
153 |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
154 f.close() |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
155 elapsed = time.perf_counter() - begin |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
156 |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
157 if self.debug: |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
158 print( |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
159 f"loaded {len(self.commands)} commands in {elapsed} seconds ", |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
160 file=sys.stderr, |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
161 flush=True, |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
162 ) |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
163 |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
164 def _load_command(self, command_dict: typing.Dict[str, typing.Any]) -> None: |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
165 # check command_dict structure |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
166 field_types: typing.Dict[str, typing.List[typing.Any]] = { |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
167 "executable": [str], |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
168 "args": [list], |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
169 "stdin": [str, "None"], |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
170 "stdout": [str, "None"], |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
171 "stderr": [str, "None"], |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
172 } |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
173 |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
174 bad_format = False |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
175 for field_name in field_types.keys(): |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
176 # missing field |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
177 if field_name not in command_dict: |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
178 bad_format = True |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
179 break |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
180 |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
181 # incorrect field type |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
182 good_type = False |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
183 for field_type in field_types[field_name]: |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
184 if isinstance(field_type, str) and field_type == "None": |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
185 if command_dict[field_name] is None: |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
186 good_type = True |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
187 break |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
188 elif isinstance(command_dict[field_name], field_type): |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
189 good_type = True |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
190 break |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
191 |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
192 if good_type is False: |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
193 bad_format = True |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
194 |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
195 if not bad_format: |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
196 # all args must be strings |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
197 for arg in command_dict["args"]: |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
198 if not isinstance(arg, str): |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
199 bad_format = True |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
200 break |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
201 |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
202 if bad_format: |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
203 sys.exit( |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
204 f"ERROR: unexpected json format in line in galaxy/commands.json: {self.pathname}" |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
205 ) |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
206 |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
207 self.commands.append(command_dict) |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
208 |
7
4cd7884635c2
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 869a01abe21b6283d3c83da38fc68761c2e94ba1
richard-burhans
parents:
6
diff
changeset
|
209 def _load_format(self) -> None: |
0
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
210 try: |
7
4cd7884635c2
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 869a01abe21b6283d3c83da38fc68761c2e94ba1
richard-burhans
parents:
6
diff
changeset
|
211 with open("galaxy/format.txt") as f: |
4cd7884635c2
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 869a01abe21b6283d3c83da38fc68761c2e94ba1
richard-burhans
parents:
6
diff
changeset
|
212 format_name = f.readline() |
4cd7884635c2
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 869a01abe21b6283d3c83da38fc68761c2e94ba1
richard-burhans
parents:
6
diff
changeset
|
213 format_name = format_name.rstrip("\n") |
4cd7884635c2
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 869a01abe21b6283d3c83da38fc68761c2e94ba1
richard-burhans
parents:
6
diff
changeset
|
214 except FileNotFoundError: |
10
d10e7502aba8
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit effd27b9070dc4564d3cea38869d3bf043201683
richard-burhans
parents:
8
diff
changeset
|
215 sys.exit(f"ERROR: input tarball missing galaxy/format.txt: {self.pathname}") |
0
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
216 |
7
4cd7884635c2
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 869a01abe21b6283d3c83da38fc68761c2e94ba1
richard-burhans
parents:
6
diff
changeset
|
217 if format_name in ["bam", "maf"]: |
4cd7884635c2
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 869a01abe21b6283d3c83da38fc68761c2e94ba1
richard-burhans
parents:
6
diff
changeset
|
218 self.format_name = format_name |
4cd7884635c2
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 869a01abe21b6283d3c83da38fc68761c2e94ba1
richard-burhans
parents:
6
diff
changeset
|
219 elif format_name == "differences": |
4cd7884635c2
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 869a01abe21b6283d3c83da38fc68761c2e94ba1
richard-burhans
parents:
6
diff
changeset
|
220 self.format_name = "interval" |
0
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
221 |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
222 |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
223 class TarRunner: |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
224 def __init__( |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
225 self, |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
226 input_pathname: str, |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
227 output_pathname: str, |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
228 parallel: int, |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
229 debug: bool = False, |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
230 ) -> None: |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
231 self.input_pathname = input_pathname |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
232 self.output_pathname = output_pathname |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
233 self.parallel = parallel |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
234 self.debug = debug |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
235 self.batch_tar = BatchTar(self.input_pathname, debug=self.debug) |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
236 self.output_file_format: typing.Dict[str, str] = {} |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
237 self.output_files: typing.Dict[str, typing.List[str]] = {} |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
238 self._set_output() |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
239 self._set_target_query() |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
240 |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
241 def _set_output(self) -> None: |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
242 for command_dict in self.batch_tar.batch_commands(): |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
243 output_file = None |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
244 output_format = None |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
245 |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
246 for arg in command_dict["args"]: |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
247 if arg.startswith("--format="): |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
248 output_format = arg[9:] |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
249 elif arg.startswith("--output="): |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
250 output_file = arg[9:] |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
251 |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
252 if output_file is None: |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
253 f = tempfile.NamedTemporaryFile(dir="galaxy/files", delete=False) |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
254 output_file = os.path.basename(f.name) |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
255 f.close() |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
256 command_dict["args"].append(f"--output={output_file}") |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
257 |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
258 if output_format is None: |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
259 output_format = "lav" |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
260 command_dict["args"].append(f"--format={output_format}") |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
261 |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
262 if not lastz_output_format_regex.match(output_format): |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
263 sys.exit(f"ERROR: invalid output format: {output_format}") |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
264 |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
265 self.output_file_format[output_file] = output_format |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
266 |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
267 for output_file, output_format in self.output_file_format.items(): |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
268 self.output_files.setdefault(output_format, []) |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
269 self.output_files[output_format].append(output_file) |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
270 |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
271 def _set_target_query(self) -> None: |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
272 for command_dict in self.batch_tar.batch_commands(): |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
273 new_args: typing.List[str] = [] |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
274 |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
275 for arg in command_dict["args"]: |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
276 if arg.startswith("--target="): |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
277 new_args.insert(0, arg[9:]) |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
278 elif arg.startswith("--query="): |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
279 new_args.insert(1, arg[8:]) |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
280 else: |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
281 new_args.append(arg) |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
282 |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
283 command_dict["args"] = new_args |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
284 |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
285 def run(self) -> None: |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
286 run_times = [] |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
287 begin = time.perf_counter() |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
288 |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
289 with multiprocessing.Manager() as manager: |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
290 input_queue: queue.Queue[typing.Dict[str, typing.Any]] = manager.Queue() |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
291 output_queue: queue.Queue[float] = manager.Queue() |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
292 |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
293 for command_dict in self.batch_tar.batch_commands(): |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
294 input_queue.put(command_dict) |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
295 |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
296 # use the empty dict as a sentinel |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
297 for _ in range(self.parallel): |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
298 input_queue.put({}) |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
299 |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
300 with concurrent.futures.ProcessPoolExecutor( |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
301 max_workers=self.parallel |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
302 ) as executor: |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
303 futures = [ |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
304 executor.submit( |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
305 run_command, |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
306 instance, |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
307 input_queue, |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
308 output_queue, |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
309 debug=self.debug, |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
310 ) |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
311 for instance in range(self.parallel) |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
312 ] |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
313 |
11
aa5586d83ae3
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit e93d50e4ea6522b591e24c3b0ddbe8f9d322a93a
richard-burhans
parents:
10
diff
changeset
|
314 found_falures = False |
aa5586d83ae3
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit e93d50e4ea6522b591e24c3b0ddbe8f9d322a93a
richard-burhans
parents:
10
diff
changeset
|
315 |
0
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
316 for f in concurrent.futures.as_completed(futures): |
11
aa5586d83ae3
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit e93d50e4ea6522b591e24c3b0ddbe8f9d322a93a
richard-burhans
parents:
10
diff
changeset
|
317 result = f.result() |
aa5586d83ae3
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit e93d50e4ea6522b591e24c3b0ddbe8f9d322a93a
richard-burhans
parents:
10
diff
changeset
|
318 if result is not None: |
aa5586d83ae3
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit e93d50e4ea6522b591e24c3b0ddbe8f9d322a93a
richard-burhans
parents:
10
diff
changeset
|
319 print(f"lastz: {result}", file=sys.stderr, flush=True) |
aa5586d83ae3
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit e93d50e4ea6522b591e24c3b0ddbe8f9d322a93a
richard-burhans
parents:
10
diff
changeset
|
320 |
0
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
321 if not f.done() or f.cancelled() or f.exception() is not None: |
11
aa5586d83ae3
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit e93d50e4ea6522b591e24c3b0ddbe8f9d322a93a
richard-burhans
parents:
10
diff
changeset
|
322 found_falures = True |
0
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
323 |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
324 while not output_queue.empty(): |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
325 run_time = output_queue.get() |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
326 run_times.append(run_time) |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
327 |
11
aa5586d83ae3
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit e93d50e4ea6522b591e24c3b0ddbe8f9d322a93a
richard-burhans
parents:
10
diff
changeset
|
328 if found_falures: |
aa5586d83ae3
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit e93d50e4ea6522b591e24c3b0ddbe8f9d322a93a
richard-burhans
parents:
10
diff
changeset
|
329 sys.exit("lastz command failed") |
aa5586d83ae3
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit e93d50e4ea6522b591e24c3b0ddbe8f9d322a93a
richard-burhans
parents:
10
diff
changeset
|
330 |
0
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
331 elapsed = time.perf_counter() - begin |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
332 |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
333 if self.debug: |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
334 print(f"elapsed {elapsed}", file=sys.stderr, flush=True) |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
335 |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
336 self._cleanup() |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
337 |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
338 def _cleanup(self) -> None: |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
339 num_output_files = len(self.output_files.keys()) |
7
4cd7884635c2
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 869a01abe21b6283d3c83da38fc68761c2e94ba1
richard-burhans
parents:
6
diff
changeset
|
340 if num_output_files != 1: |
4cd7884635c2
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 869a01abe21b6283d3c83da38fc68761c2e94ba1
richard-burhans
parents:
6
diff
changeset
|
341 sys.exit(f"ERROR: expecting a single output file, found {num_output_files}") |
4cd7884635c2
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 869a01abe21b6283d3c83da38fc68761c2e94ba1
richard-burhans
parents:
6
diff
changeset
|
342 |
4cd7884635c2
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 869a01abe21b6283d3c83da38fc68761c2e94ba1
richard-burhans
parents:
6
diff
changeset
|
343 final_output_format = self.batch_tar.final_output_format() |
0
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
344 |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
345 for file_type, file_list in self.output_files.items(): |
7
4cd7884635c2
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 869a01abe21b6283d3c83da38fc68761c2e94ba1
richard-burhans
parents:
6
diff
changeset
|
346 with open(f"output.{final_output_format}", "w") as ofh: |
4cd7884635c2
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 869a01abe21b6283d3c83da38fc68761c2e94ba1
richard-burhans
parents:
6
diff
changeset
|
347 if final_output_format == "maf": |
4cd7884635c2
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 869a01abe21b6283d3c83da38fc68761c2e94ba1
richard-burhans
parents:
6
diff
changeset
|
348 print("##maf version=1", file=ofh) |
11
aa5586d83ae3
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit e93d50e4ea6522b591e24c3b0ddbe8f9d322a93a
richard-burhans
parents:
10
diff
changeset
|
349 |
0
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
350 for filename in file_list: |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
351 with open(f"galaxy/files/{filename}") as ifh: |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
352 for line in ifh: |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
353 ofh.write(line) |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
354 |
7
4cd7884635c2
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 869a01abe21b6283d3c83da38fc68761c2e94ba1
richard-burhans
parents:
6
diff
changeset
|
355 src_filename = f"output.{final_output_format}" |
4cd7884635c2
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 869a01abe21b6283d3c83da38fc68761c2e94ba1
richard-burhans
parents:
6
diff
changeset
|
356 shutil.copy2(src_filename, self.output_pathname) |
4cd7884635c2
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 869a01abe21b6283d3c83da38fc68761c2e94ba1
richard-burhans
parents:
6
diff
changeset
|
357 |
4cd7884635c2
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 869a01abe21b6283d3c83da38fc68761c2e94ba1
richard-burhans
parents:
6
diff
changeset
|
358 output_metadata = { |
4cd7884635c2
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 869a01abe21b6283d3c83da38fc68761c2e94ba1
richard-burhans
parents:
6
diff
changeset
|
359 "output": { |
4cd7884635c2
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 869a01abe21b6283d3c83da38fc68761c2e94ba1
richard-burhans
parents:
6
diff
changeset
|
360 "ext": final_output_format, |
4cd7884635c2
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 869a01abe21b6283d3c83da38fc68761c2e94ba1
richard-burhans
parents:
6
diff
changeset
|
361 } |
4cd7884635c2
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 869a01abe21b6283d3c83da38fc68761c2e94ba1
richard-burhans
parents:
6
diff
changeset
|
362 } |
4cd7884635c2
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 869a01abe21b6283d3c83da38fc68761c2e94ba1
richard-burhans
parents:
6
diff
changeset
|
363 |
4cd7884635c2
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 869a01abe21b6283d3c83da38fc68761c2e94ba1
richard-burhans
parents:
6
diff
changeset
|
364 with open("galaxy.json", "w") as ofh: |
4cd7884635c2
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 869a01abe21b6283d3c83da38fc68761c2e94ba1
richard-burhans
parents:
6
diff
changeset
|
365 json.dump(output_metadata, ofh) |
0
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
366 |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
367 |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
368 def main() -> None: |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
369 if not hasattr(tarfile, "data_filter"): |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
370 sys.exit("ERROR: extracting may be unsafe; consider updating Python") |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
371 |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
372 parser = argparse.ArgumentParser() |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
373 parser.add_argument("--input", type=str, required=True) |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
374 parser.add_argument("--output", type=str, required=True) |
2
007990f98551
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 3bbc9b941798f866a1d8b7af1e3c0444e5130fd9
richard-burhans
parents:
0
diff
changeset
|
375 parser.add_argument("--parallel", type=int, default=2, required=False) |
0
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
376 parser.add_argument("--debug", action="store_true", required=False) |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
377 |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
378 args = parser.parse_args() |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
379 runner = TarRunner(args.input, args.output, args.parallel, args.debug) |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
380 runner.run() |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
381 |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
382 |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
383 if __name__ == "__main__": |
103538753e81
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 7b119b432f721e228a73396d4e8f0d54350b0481
richard-burhans
parents:
diff
changeset
|
384 main() |