Mercurial > repos > ufz > saqc
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 |
| 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 |
