# HG changeset patch
# User richard-burhans
# Date 1723592289 0
# Node ID aa5586d83ae3a0a9304c7cad00bb33a11368bb30
# Parent d10e7502aba879e9bca14aa66e006bd3b8bb8be5
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit e93d50e4ea6522b591e24c3b0ddbe8f9d322a93a
diff -r d10e7502aba8 -r aa5586d83ae3 macros.xml
--- a/macros.xml Tue Aug 13 15:56:46 2024 +0000
+++ b/macros.xml Tue Aug 13 23:38:09 2024 +0000
@@ -6,7 +6,7 @@
1.04.22
- 2
+ 3
21.05
diff -r d10e7502aba8 -r aa5586d83ae3 run_lastz_tarball.py
--- a/run_lastz_tarball.py Tue Aug 13 15:56:46 2024 +0000
+++ b/run_lastz_tarball.py Tue Aug 13 23:38:09 2024 +0000
@@ -31,7 +31,7 @@
input_queue: "queue.Queue[typing.Dict[str, typing.Any]]",
output_queue: "queue.Queue[float]",
debug: bool = False,
-) -> None:
+) -> str | None:
os.chdir("galaxy/files")
# These are not considered errors even though
@@ -45,7 +45,7 @@
command_dict = input_queue.get()
if not command_dict:
- return
+ return None
args = ["lastz", "--allocate:traceback=1.99G"]
args.extend(command_dict["args"])
@@ -69,50 +69,28 @@
if var is not None:
var.close()
- if p.returncode == 0:
- stderr = command_dict["stderr"]
- if stderr is not None:
- try:
- statinfo = os.stat(stderr, follow_symlinks=False)
- except Exception:
- statinfo = None
+ # if there is a stderr_file, make sure it is
+ # empty or only contains truncation messages
+ stderr_ok = True
+ stderr_file = command_dict["stderr"]
- if statinfo is None:
- sys.exit(f"unable to stat stderr file: {' '.join(args)}")
+ if stderr_file is not None:
+ try:
+ statinfo = os.stat(stderr_file, follow_symlinks=False)
+ if statinfo.st_size != 0:
+ with open(stderr_file) as f:
+ for stderr_line in f:
+ stderr_line = stderr_line.strip()
+ if (not truncation_regex.match(stderr_line) and stderr_line != truncation_msg):
+ stderr_ok = False
+ except Exception:
+ stderr_ok = False
- if statinfo.st_size != 0:
- sys.exit(f"stderr file is not empty: {' '.join(args)}")
-
+ if p.returncode in [0, 1] and stderr_ok:
elapsed = time.perf_counter() - begin
output_queue.put(elapsed)
-
- elif p.returncode == 1:
- traceback_warning = True
-
- stderr_file = command_dict["stderr"]
- if stderr_file is None:
- traceback_warning = False
- else:
- with open(stderr_file) as f:
- for stderr_line in f:
- stderr_line = stderr_line.strip()
- if (
- not truncation_regex.match(stderr_line)
- and stderr_line != truncation_msg
- ):
- traceback_warning = False
-
- if traceback_warning:
- elapsed = time.perf_counter() - begin
- output_queue.put(elapsed)
- else:
- sys.exit(f"command failed: {' '.join(args)}")
-
else:
- sys.exit(f"command failed: {' '.join(args)}")
-
- if debug:
- print(f"runtime {elapsed}", file=sys.stderr, flush=True)
+ return f"command failed (rc={p.returncode}): {' '.join(args)}"
class BatchTar:
@@ -333,14 +311,23 @@
for instance in range(self.parallel)
]
+ found_falures = False
+
for f in concurrent.futures.as_completed(futures):
+ result = f.result()
+ if result is not None:
+ print(f"lastz: {result}", file=sys.stderr, flush=True)
+
if not f.done() or f.cancelled() or f.exception() is not None:
- sys.exit("lastz command failed")
+ found_falures = True
while not output_queue.empty():
run_time = output_queue.get()
run_times.append(run_time)
+ if found_falures:
+ sys.exit("lastz command failed")
+
elapsed = time.perf_counter() - begin
if self.debug:
@@ -359,6 +346,7 @@
with open(f"output.{final_output_format}", "w") as ofh:
if final_output_format == "maf":
print("##maf version=1", file=ofh)
+
for filename in file_list:
with open(f"galaxy/files/{filename}") as ifh:
for line in ifh: