Mercurial > repos > richard-burhans > segalign
annotate package_output.py @ 23:e9bf680c292b draft default tip
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit a2f684fa36d99b0d8d03f2b802d08b56b8545bc6
author | richard-burhans |
---|---|
date | Mon, 19 Aug 2024 18:45:15 +0000 |
parents | cefa7625d6cb |
children |
rev | line source |
---|---|
0
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
1 #!/usr/bin/env python |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
2 |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
3 import argparse |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
4 import configparser |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
5 import json |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
6 import os |
19
cefa7625d6cb
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 2840545abeeca2dc0a6e6df138633e561d379e52
richard-burhans
parents:
16
diff
changeset
|
7 import resource |
0
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
8 import sys |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
9 import tarfile |
19
cefa7625d6cb
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 2840545abeeca2dc0a6e6df138633e561d379e52
richard-burhans
parents:
16
diff
changeset
|
10 import time |
0
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
11 import typing |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
12 |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
13 import bashlex |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
14 |
19
cefa7625d6cb
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 2840545abeeca2dc0a6e6df138633e561d379e52
richard-burhans
parents:
16
diff
changeset
|
15 RUSAGE_ATTRS: typing.Final = ["ru_utime", "ru_stime", "ru_maxrss", "ru_minflt", "ru_majflt", "ru_inblock", "ru_oublock", "ru_nvcsw", "ru_nivcsw"] |
cefa7625d6cb
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 2840545abeeca2dc0a6e6df138633e561d379e52
richard-burhans
parents:
16
diff
changeset
|
16 |
0
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
17 |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
18 class PackageFile: |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
19 def __init__( |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
20 self, |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
21 pathname: str = "data_package.tgz", |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
22 top_dir: str = "galaxy", |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
23 data_dir: str = "files", |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
24 config_file: str = "commands.json", |
16
4966e095e3c3
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 6cf972d7f1c9ecb097994494a27d00906c6c3e4d
richard-burhans
parents:
11
diff
changeset
|
25 format_file: str = "format.txt" |
0
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
26 ) -> None: |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
27 self.pathname: str = os.path.realpath(pathname) |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
28 self.data_root: str = os.path.join(top_dir, data_dir) |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
29 self.config_path: str = os.path.join(top_dir, config_file) |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
30 self.config_file: str = config_file |
16
4966e095e3c3
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 6cf972d7f1c9ecb097994494a27d00906c6c3e4d
richard-burhans
parents:
11
diff
changeset
|
31 self.format_path: str = os.path.join(top_dir, format_file) |
4966e095e3c3
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 6cf972d7f1c9ecb097994494a27d00906c6c3e4d
richard-burhans
parents:
11
diff
changeset
|
32 self.format_file: str = format_file |
0
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
33 self.tarfile: typing.Optional[tarfile.TarFile] = None |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
34 self.name_cache: typing.Dict[typing.Any, typing.Any] = {} |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
35 self.working_dir: str = os.path.realpath(os.getcwd()) |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
36 |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
37 def _initialize(self) -> None: |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
38 if self.tarfile is None: |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
39 self.tarfile = tarfile.open( |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
40 name=self.pathname, |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
41 mode="w:gz", |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
42 format=tarfile.GNU_FORMAT, |
4
36cafb694dd2
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit b8aa943b38b865defab8a27e4404bb8a2131f919
richard-burhans
parents:
0
diff
changeset
|
43 compresslevel=6, |
0
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
44 ) |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
45 |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
46 def add_config(self, pathname: str) -> None: |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
47 if self.tarfile is None: |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
48 self._initialize() |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
49 |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
50 source_path = os.path.realpath(pathname) |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
51 |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
52 if self.tarfile is not None: |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
53 self.tarfile.add(source_path, arcname=self.config_path, recursive=False) |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
54 |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
55 def add_file(self, pathname: str, arcname: typing.Optional[str] = None) -> None: |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
56 if self.tarfile is None: |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
57 self._initialize() |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
58 |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
59 source_path = os.path.realpath(pathname) |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
60 |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
61 dest_path = None |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
62 |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
63 if arcname is None: |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
64 dest_path = os.path.join(self.data_root, os.path.basename(source_path)) |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
65 else: |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
66 arc_path = os.path.realpath(arcname) |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
67 rel_path = os.path.relpath(arc_path, self.working_dir) |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
68 if not (os.path.isabs(rel_path) or rel_path.startswith("../")): |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
69 dest_path = os.path.join(self.data_root, rel_path) |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
70 else: |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
71 sys.exit("path fail") |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
72 |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
73 if dest_path is not None: |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
74 if self.tarfile is not None: |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
75 if dest_path not in self.name_cache: |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
76 try: |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
77 self.tarfile.add( |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
78 source_path, arcname=dest_path, recursive=False |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
79 ) |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
80 except FileNotFoundError: |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
81 sys.exit(f"missing source file {source_path}") |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
82 |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
83 self.name_cache[dest_path] = 1 |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
84 # print(f"added: {dest_path}", flush=True) |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
85 |
16
4966e095e3c3
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 6cf972d7f1c9ecb097994494a27d00906c6c3e4d
richard-burhans
parents:
11
diff
changeset
|
86 def add_format(self, pathname: str) -> None: |
4966e095e3c3
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 6cf972d7f1c9ecb097994494a27d00906c6c3e4d
richard-burhans
parents:
11
diff
changeset
|
87 if self.tarfile is None: |
4966e095e3c3
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 6cf972d7f1c9ecb097994494a27d00906c6c3e4d
richard-burhans
parents:
11
diff
changeset
|
88 self._initialize() |
4966e095e3c3
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 6cf972d7f1c9ecb097994494a27d00906c6c3e4d
richard-burhans
parents:
11
diff
changeset
|
89 |
4966e095e3c3
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 6cf972d7f1c9ecb097994494a27d00906c6c3e4d
richard-burhans
parents:
11
diff
changeset
|
90 source_path = os.path.realpath(pathname) |
4966e095e3c3
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 6cf972d7f1c9ecb097994494a27d00906c6c3e4d
richard-burhans
parents:
11
diff
changeset
|
91 |
4966e095e3c3
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 6cf972d7f1c9ecb097994494a27d00906c6c3e4d
richard-burhans
parents:
11
diff
changeset
|
92 if self.tarfile is not None: |
4966e095e3c3
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 6cf972d7f1c9ecb097994494a27d00906c6c3e4d
richard-burhans
parents:
11
diff
changeset
|
93 self.tarfile.add(source_path, arcname=self.format_path, recursive=False) |
4966e095e3c3
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 6cf972d7f1c9ecb097994494a27d00906c6c3e4d
richard-burhans
parents:
11
diff
changeset
|
94 |
0
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
95 def close(self) -> None: |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
96 if self.tarfile is not None: |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
97 self.tarfile.close() |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
98 self.tarfile = None |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
99 |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
100 |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
101 class bashCommandLineFile: |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
102 def __init__( |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
103 self, |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
104 pathname: str, |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
105 config: configparser.ConfigParser, |
16
4966e095e3c3
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 6cf972d7f1c9ecb097994494a27d00906c6c3e4d
richard-burhans
parents:
11
diff
changeset
|
106 args: argparse.Namespace, |
0
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
107 package_file: PackageFile, |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
108 ) -> None: |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
109 self.pathname: str = pathname |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
110 self.config = config |
16
4966e095e3c3
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 6cf972d7f1c9ecb097994494a27d00906c6c3e4d
richard-burhans
parents:
11
diff
changeset
|
111 self.args = args |
0
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
112 self.package_file = package_file |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
113 self.executable: typing.Optional[str] = None |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
114 self._parse_lines() |
16
4966e095e3c3
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 6cf972d7f1c9ecb097994494a27d00906c6c3e4d
richard-burhans
parents:
11
diff
changeset
|
115 self._write_format() |
0
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
116 |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
117 def _parse_lines(self) -> None: |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
118 with open("commands.json", "w") as ofh: |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
119 with open(self.pathname) as f: |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
120 line: str |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
121 for line in f: |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
122 line = line.rstrip("\n") |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
123 command_dict = self._parse_line(line) |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
124 # we may want to re-write args here |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
125 new_args_list = [] |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
126 |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
127 args_list = command_dict.get("args", []) |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
128 for arg in args_list: |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
129 if arg.startswith("--target="): |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
130 pathname = arg[9:] |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
131 new_args_list.append(arg) |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
132 if "[" in pathname: |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
133 elems = pathname.split("[") |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
134 sequence_file = elems.pop(0) |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
135 self.package_file.add_file(sequence_file, sequence_file) |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
136 for elem in elems: |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
137 if elem.endswith("]"): |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
138 elem = elem[:-1] |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
139 if elem.startswith("subset="): |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
140 subset_file = elem[7:] |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
141 self.package_file.add_file(subset_file) |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
142 |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
143 elif arg.startswith("--query="): |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
144 pathname = arg[8:] |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
145 new_args_list.append(arg) |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
146 if "[" in pathname: |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
147 elems = pathname.split("[") |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
148 sequence_file = elems.pop(0) |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
149 self.package_file.add_file(sequence_file, sequence_file) |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
150 for elem in elems: |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
151 if elem.endswith("]"): |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
152 elem = elem[:-1] |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
153 if elem.startswith("subset="): |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
154 subset_file = elem[7:] |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
155 self.package_file.add_file(subset_file) |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
156 elif arg.startswith("--segments="): |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
157 pathname = arg[11:] |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
158 new_args_list.append(arg) |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
159 self.package_file.add_file(pathname) |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
160 elif arg.startswith("--scores="): |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
161 pathname = arg[9:] |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
162 new_args_list.append("--scores=data/scores.txt") |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
163 self.package_file.add_file(pathname, "data/scores.txt") |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
164 else: |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
165 new_args_list.append(arg) |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
166 |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
167 command_dict["args"] = new_args_list |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
168 print(json.dumps(command_dict), file=ofh) |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
169 |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
170 self.package_file.add_config("commands.json") |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
171 |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
172 def _parse_line(self, line: str) -> typing.Dict[str, typing.Any]: |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
173 # resolve shell redirects |
4
36cafb694dd2
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit b8aa943b38b865defab8a27e4404bb8a2131f919
richard-burhans
parents:
0
diff
changeset
|
174 trees: typing.List[typing.Any] = bashlex.parse(line, strictmode=False) |
0
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
175 positions: typing.List[typing.Tuple[int, int]] = [] |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
176 |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
177 for tree in trees: |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
178 visitor = nodevisitor(positions) |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
179 visitor.visit(tree) |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
180 |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
181 # do replacements from the end so the indicies will be correct |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
182 positions.reverse() |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
183 |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
184 processed = list(line) |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
185 for start, end in positions: |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
186 processed[start:end] = "" |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
187 |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
188 processed_line: str = "".join(processed) |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
189 |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
190 command_dict = self._parse_processed_line(processed_line) |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
191 command_dict["stdin"] = visitor.stdin |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
192 command_dict["stdout"] = visitor.stdout |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
193 command_dict["stderr"] = visitor.stderr |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
194 |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
195 return command_dict |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
196 |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
197 def _parse_processed_line(self, line: str) -> typing.Dict[str, typing.Any]: |
4
36cafb694dd2
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit b8aa943b38b865defab8a27e4404bb8a2131f919
richard-burhans
parents:
0
diff
changeset
|
198 argv: typing.List[str] = list(bashlex.split(line)) |
0
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
199 self.executable = argv.pop(0) |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
200 |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
201 parser: argparse.ArgumentParser = argparse.ArgumentParser(add_help=False) |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
202 if "arguments" in self.config: |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
203 arguments_section = self.config["arguments"] |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
204 |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
205 arg: str |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
206 if "flag_args" in arguments_section: |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
207 for arg in arguments_section["flag_args"].split(): |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
208 parser.add_argument(f"--{arg}", action="store_true") |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
209 |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
210 if "str_args" in arguments_section: |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
211 for arg in arguments_section["str_args"].split(): |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
212 parser.add_argument(f"--{arg}", type=str) |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
213 |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
214 if "bool_str_args" in arguments_section: |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
215 for arg in arguments_section["bool_str_args"].split(): |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
216 parser.add_argument( |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
217 f"--{arg}", nargs="?", const=True, default=False |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
218 ) |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
219 |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
220 if "int_args" in arguments_section: |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
221 for arg in arguments_section["int_args"].split(): |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
222 parser.add_argument(f"--{arg}", type=int) |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
223 |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
224 if "bool_int_args" in arguments_section: |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
225 for arg in arguments_section["bool_int_args"].split(): |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
226 parser.add_argument( |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
227 f"--{arg}", nargs="?", const=True, default=False |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
228 ) |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
229 |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
230 namespace, rest = parser.parse_known_intermixed_args(argv) |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
231 vars_dict = vars(namespace) |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
232 |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
233 command_dict: typing.Dict[str, typing.Any] = { |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
234 "executable": self.executable, |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
235 "args": [], |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
236 } |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
237 |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
238 for var in vars_dict.keys(): |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
239 value = vars_dict[var] |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
240 if value is not None: |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
241 if isinstance(value, bool): |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
242 if value is True: |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
243 command_dict["args"].append(f"--{var}") |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
244 else: |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
245 command_dict["args"].append(f"--{var}={value}") |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
246 |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
247 if len(rest) >= 0: |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
248 value = rest.pop(0) |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
249 command_dict["args"].append(f"--target={value}") |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
250 |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
251 if len(rest) >= 0: |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
252 value = rest.pop(0) |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
253 command_dict["args"].append(f"--query={value}") |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
254 |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
255 return command_dict |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
256 |
16
4966e095e3c3
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 6cf972d7f1c9ecb097994494a27d00906c6c3e4d
richard-burhans
parents:
11
diff
changeset
|
257 def _write_format(self) -> None: |
4966e095e3c3
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 6cf972d7f1c9ecb097994494a27d00906c6c3e4d
richard-burhans
parents:
11
diff
changeset
|
258 if self.args.format_selector == "bam": |
4966e095e3c3
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 6cf972d7f1c9ecb097994494a27d00906c6c3e4d
richard-burhans
parents:
11
diff
changeset
|
259 format_name = "bam" |
4966e095e3c3
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 6cf972d7f1c9ecb097994494a27d00906c6c3e4d
richard-burhans
parents:
11
diff
changeset
|
260 elif self.args.format_selector == "maf": |
4966e095e3c3
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 6cf972d7f1c9ecb097994494a27d00906c6c3e4d
richard-burhans
parents:
11
diff
changeset
|
261 format_name = "maf" |
4966e095e3c3
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 6cf972d7f1c9ecb097994494a27d00906c6c3e4d
richard-burhans
parents:
11
diff
changeset
|
262 elif self.args.format_selector == "differences": |
4966e095e3c3
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 6cf972d7f1c9ecb097994494a27d00906c6c3e4d
richard-burhans
parents:
11
diff
changeset
|
263 format_name = "interval" |
4966e095e3c3
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 6cf972d7f1c9ecb097994494a27d00906c6c3e4d
richard-burhans
parents:
11
diff
changeset
|
264 else: |
4966e095e3c3
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 6cf972d7f1c9ecb097994494a27d00906c6c3e4d
richard-burhans
parents:
11
diff
changeset
|
265 format_name = "tabular" |
4966e095e3c3
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 6cf972d7f1c9ecb097994494a27d00906c6c3e4d
richard-burhans
parents:
11
diff
changeset
|
266 |
4966e095e3c3
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 6cf972d7f1c9ecb097994494a27d00906c6c3e4d
richard-burhans
parents:
11
diff
changeset
|
267 with open("format.txt", "w") as ofh: |
4966e095e3c3
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 6cf972d7f1c9ecb097994494a27d00906c6c3e4d
richard-burhans
parents:
11
diff
changeset
|
268 print(f"{format_name}", file=ofh) |
4966e095e3c3
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 6cf972d7f1c9ecb097994494a27d00906c6c3e4d
richard-burhans
parents:
11
diff
changeset
|
269 |
4966e095e3c3
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 6cf972d7f1c9ecb097994494a27d00906c6c3e4d
richard-burhans
parents:
11
diff
changeset
|
270 self.package_file.add_format("format.txt") |
4966e095e3c3
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 6cf972d7f1c9ecb097994494a27d00906c6c3e4d
richard-burhans
parents:
11
diff
changeset
|
271 |
0
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
272 |
4
36cafb694dd2
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit b8aa943b38b865defab8a27e4404bb8a2131f919
richard-burhans
parents:
0
diff
changeset
|
273 class nodevisitor(bashlex.ast.nodevisitor): # type: ignore[misc] |
0
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
274 def __init__(self, positions: typing.List[typing.Tuple[int, int]]) -> None: |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
275 self.positions = positions |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
276 self.stdin = None |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
277 self.stdout = None |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
278 self.stderr = None |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
279 |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
280 def visitredirect( |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
281 self, |
4
36cafb694dd2
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit b8aa943b38b865defab8a27e4404bb8a2131f919
richard-burhans
parents:
0
diff
changeset
|
282 n: bashlex.ast.node, |
0
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
283 n_input: int, |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
284 n_type: str, |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
285 output: typing.Any, |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
286 heredoc: typing.Any, |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
287 ) -> None: |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
288 if isinstance(n_input, int) and 0 <= n_input <= 2: |
4
36cafb694dd2
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit b8aa943b38b865defab8a27e4404bb8a2131f919
richard-burhans
parents:
0
diff
changeset
|
289 if isinstance(output, bashlex.ast.node) and output.kind == "word": |
0
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
290 self.positions.append(n.pos) |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
291 if n_input == 0: |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
292 self.stdin = output.word |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
293 elif n_input == 1: |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
294 self.stdout = output.word |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
295 elif n_input == 2: |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
296 self.stderr = output.word |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
297 else: |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
298 sys.exit(f"oops 1: {type(n_input)}") |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
299 else: |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
300 sys.exit(f"oops 2: {type(n_input)}") |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
301 |
4
36cafb694dd2
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit b8aa943b38b865defab8a27e4404bb8a2131f919
richard-burhans
parents:
0
diff
changeset
|
302 def visitheredoc(self, n: bashlex.ast.node, value: typing.Any) -> None: |
0
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
303 pass |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
304 |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
305 |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
306 def main() -> None: |
11
168b0a92edd3
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 53e28d4dd9ab352c94f91f952ac855b89197f032
richard-burhans
parents:
9
diff
changeset
|
307 parser = argparse.ArgumentParser() |
168b0a92edd3
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 53e28d4dd9ab352c94f91f952ac855b89197f032
richard-burhans
parents:
9
diff
changeset
|
308 parser.add_argument("--tool_directory", type=str, required=True, help="tool directory") |
16
4966e095e3c3
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 6cf972d7f1c9ecb097994494a27d00906c6c3e4d
richard-burhans
parents:
11
diff
changeset
|
309 parser.add_argument("--format_selector", type=str, required=True, help="format selector") |
19
cefa7625d6cb
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 2840545abeeca2dc0a6e6df138633e561d379e52
richard-burhans
parents:
16
diff
changeset
|
310 parser.add_argument("--debug", action="store_true", help="enable debug messages") |
11
168b0a92edd3
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 53e28d4dd9ab352c94f91f952ac855b89197f032
richard-burhans
parents:
9
diff
changeset
|
311 args = parser.parse_args() |
168b0a92edd3
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 53e28d4dd9ab352c94f91f952ac855b89197f032
richard-burhans
parents:
9
diff
changeset
|
312 |
19
cefa7625d6cb
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 2840545abeeca2dc0a6e6df138633e561d379e52
richard-burhans
parents:
16
diff
changeset
|
313 if args.debug: |
cefa7625d6cb
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 2840545abeeca2dc0a6e6df138633e561d379e52
richard-burhans
parents:
16
diff
changeset
|
314 r_beg = resource.getrusage(resource.RUSAGE_SELF) |
cefa7625d6cb
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 2840545abeeca2dc0a6e6df138633e561d379e52
richard-burhans
parents:
16
diff
changeset
|
315 beg: int = time.monotonic_ns() |
cefa7625d6cb
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 2840545abeeca2dc0a6e6df138633e561d379e52
richard-burhans
parents:
16
diff
changeset
|
316 |
11
168b0a92edd3
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 53e28d4dd9ab352c94f91f952ac855b89197f032
richard-burhans
parents:
9
diff
changeset
|
317 lastz_command_config_file: str = os.path.join(args.tool_directory, "lastz-cmd.ini") |
0
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
318 |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
319 config: configparser.ConfigParser = configparser.ConfigParser() |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
320 config.read(lastz_command_config_file) |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
321 |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
322 package_file = PackageFile() |
9
08e987868f0f
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 062a761a340e095ea7ef7ed7cd1d3d55b1fdc5c4
richard-burhans
parents:
4
diff
changeset
|
323 lastz_command_file = "lastz-commands.txt" |
16
4966e095e3c3
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 6cf972d7f1c9ecb097994494a27d00906c6c3e4d
richard-burhans
parents:
11
diff
changeset
|
324 bashCommandLineFile(lastz_command_file, config, args, package_file) |
0
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
325 package_file.close() |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
326 |
19
cefa7625d6cb
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 2840545abeeca2dc0a6e6df138633e561d379e52
richard-burhans
parents:
16
diff
changeset
|
327 if args.debug: |
cefa7625d6cb
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 2840545abeeca2dc0a6e6df138633e561d379e52
richard-burhans
parents:
16
diff
changeset
|
328 ns: int = time.monotonic_ns() - beg |
cefa7625d6cb
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 2840545abeeca2dc0a6e6df138633e561d379e52
richard-burhans
parents:
16
diff
changeset
|
329 r_end = resource.getrusage(resource.RUSAGE_SELF) |
cefa7625d6cb
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 2840545abeeca2dc0a6e6df138633e561d379e52
richard-burhans
parents:
16
diff
changeset
|
330 print(f"package output clock time: {ns} ns", file=sys.stderr, flush=True) |
cefa7625d6cb
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 2840545abeeca2dc0a6e6df138633e561d379e52
richard-burhans
parents:
16
diff
changeset
|
331 for rusage_attr in RUSAGE_ATTRS: |
cefa7625d6cb
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 2840545abeeca2dc0a6e6df138633e561d379e52
richard-burhans
parents:
16
diff
changeset
|
332 value = getattr(r_end, rusage_attr) - getattr(r_beg, rusage_attr) |
cefa7625d6cb
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 2840545abeeca2dc0a6e6df138633e561d379e52
richard-burhans
parents:
16
diff
changeset
|
333 print(f" package output {rusage_attr}: {value}", file=sys.stderr, flush=True) |
cefa7625d6cb
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 2840545abeeca2dc0a6e6df138633e561d379e52
richard-burhans
parents:
16
diff
changeset
|
334 |
0
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
335 |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
336 if __name__ == "__main__": |
5c72425b7f1b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/segalign commit 98a4dd44360447aa96d92143384d78e116d7581b
richard-burhans
parents:
diff
changeset
|
337 main() |