annotate json_to_saqc_config.py @ 1:724dcbb35c9a draft default tip

planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
author ufz
date Sat, 16 Aug 2025 11:43:23 +0000
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
1 #!/usr/bin/env python
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
2
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
3 import json
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
4 import math
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
5 import sys
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
6
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
7
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
8 def format_saqc_value_repr(value: any) -> str:
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
9 """
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
10 Konvertiert einen Python-Wert in seine korrekte String-Darstellung für die SaQC-Konfiguration.
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
11 Behandelt None, Bools, Floats (inkl. inf/nan) und Strings zentral.
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
12 """
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
13 if value is None:
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
14 return "None"
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
15 if isinstance(value, bool):
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
16 return str(value)
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
17 if isinstance(value, float):
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
18 if math.isinf(value):
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
19 return "float('inf')" if value > 0 else "float('-inf')"
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
20 if math.isnan(value):
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
21 return "float('nan')"
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
22 return repr(value)
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
23 if isinstance(value, int):
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
24 return str(value)
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
25 if isinstance(value, str):
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
26 val_lower = value.lower()
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
27 if val_lower == "inf":
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
28 return "float('inf')"
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
29 if val_lower == "-inf":
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
30 return "float('-inf')"
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
31 if val_lower == "nan":
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
32 return "float('nan')"
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
33 escaped_v = value.replace("\\", "\\\\").replace('"', '\\"')
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
34 return f'"{escaped_v}"'
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
35 sys.stderr.write(
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
36 f"Warning: Unhandled type {type(value)}. Converting to string representation: '{str(value)}'.\n"
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
37 )
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
38 return repr(value)
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
39
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
40
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
41 print("varname; function")
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
42
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
43 try:
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
44 infile = sys.argv[1]
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
45 with open(infile) as fh:
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
46 params_from_galaxy = json.load(fh)
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
47 except Exception as e:
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
48 sys.stderr.write(
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
49 f"Error opening or reading JSON file {infile}: {type(e).__name__} - {e}\n"
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
50 )
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
51 sys.exit(1)
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
52
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
53 EMPTY_STRING_IS_NONE_PARAMS = {
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
54 "xscope",
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
55 "yscope",
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
56 "max_gap",
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
57 "min_periods",
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
58 "min_residuals",
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
59 "min_offset",
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
60 }
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
61
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
62 for r_method_set in params_from_galaxy.get("methods_repeat", []):
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
63 method_str_for_error = "unknown_method_in_repeat"
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
64 field_str_for_error = "unknown_field_in_repeat"
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
65 try:
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
66 method_cond_params = r_method_set.get("module_cond", {}).get("method_cond", {})
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
67 if not method_cond_params:
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
68 sys.stderr.write(
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
69 f"Warning: Skipping a methods_repeat entry due to missing/empty method_cond: {r_method_set}\n"
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
70 )
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
71 continue
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
72
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
73 params_to_process = method_cond_params.copy()
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
74
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
75 method = params_to_process.pop("method_select", "unknown_method")
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
76 method_str_for_error = method
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
77
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
78 raw_field_val = None
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
79 if "field" in params_to_process:
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
80 raw_field_val = params_to_process.pop("field")
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
81 elif "field_repeat" in params_to_process:
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
82 field_repeat_data = params_to_process.pop("field_repeat", [])
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
83 if isinstance(field_repeat_data, list) and len(field_repeat_data) > 0:
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
84 first_field_item = field_repeat_data[0]
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
85 if isinstance(first_field_item, dict):
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
86 raw_field_val = first_field_item.get("field")
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
87
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
88 if raw_field_val is None or str(raw_field_val).strip() == "":
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
89 field_str = "undefined_field"
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
90 field_str_for_error = "undefined_field (extraction failed or empty)"
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
91 sys.stderr.write(
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
92 f"Warning: Field name could not be determined for method '{method}'. Using '{field_str}'.\n"
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
93 )
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
94 else:
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
95 field_str = str(raw_field_val) if not isinstance(raw_field_val, list) else ",".join(map(str, raw_field_val))
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
96 field_str_for_error = field_str
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
97
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
98 saqc_args_dict = {}
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
99 for param_key, param_value_json in params_to_process.items():
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
100 if param_key.endswith("_select_type"):
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
101 continue
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
102
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
103 actual_param_name_for_saqc = param_key
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
104 current_value_for_saqc = param_value_json
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
105
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
106 if isinstance(param_value_json, dict) and param_key.endswith("_cond"):
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
107 actual_param_name_for_saqc = param_key[:-5]
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
108 value_found = False
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
109 for inner_k, inner_v in param_value_json.items():
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
110 if not inner_k.endswith("_select_type"):
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
111 current_value_for_saqc = inner_v
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
112 value_found = True
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
113 break
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
114 if not value_found:
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
115 current_value_for_saqc = None
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
116
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
117 if current_value_for_saqc == "__none__":
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
118 saqc_args_dict[actual_param_name_for_saqc] = None
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
119 elif isinstance(current_value_for_saqc, str) and not current_value_for_saqc and actual_param_name_for_saqc in EMPTY_STRING_IS_NONE_PARAMS:
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
120 saqc_args_dict[actual_param_name_for_saqc] = None
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
121 else:
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
122 saqc_args_dict[actual_param_name_for_saqc] = current_value_for_saqc
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
123 param_strings_for_saqc_call = [
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
124 f"{k_saqc}={format_saqc_value_repr(v_saqc)}"
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
125 for k_saqc, v_saqc in sorted(saqc_args_dict.items())
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
126 ]
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
127
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
128 print(
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
129 f"{field_str}; {method}({', '.join(param_strings_for_saqc_call)})",
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
130 flush=True,
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
131 )
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
132
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
133 except Exception as e:
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
134 sys.stderr.write(
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
135 f"FATAL Error processing a method entry: {type(e).__name__} - {e}\n"
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
136 )
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
137 sys.stderr.write(
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
138 f"Offending entry: {r_method_set}\n"
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
139 )
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
140 sys.stderr.write(
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
141 f"Method context: {method_str_for_error}, Field context: {field_str_for_error}\n"
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
142 )
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
143 import traceback
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
144 traceback.print_exc(file=sys.stderr)
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
145 print(
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
146 f"{field_str_for_error}; ERROR_PROCESSING_METHOD({method_str_for_error})",
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
147 flush=True)
724dcbb35c9a planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/blob/main/tools/saqc/ commit b674325a07b6e964e25cd65967149018dc2671fe
ufz
parents:
diff changeset
148 continue