Skip to content

Commit 6d9a48e

Browse files
committed
feat(xyz): support use linebreak as separate for zyz
1 parent 93c00b2 commit 6d9a48e

File tree

1 file changed

+16
-6
lines changed

1 file changed

+16
-6
lines changed

scripts/xyz_grid.py

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,9 @@
55
import csv
66
import os.path
77
from io import StringIO
8+
from collections.abc import Iterable
9+
from typing import Any
10+
811
from PIL import Image
912
import numpy as np
1013

@@ -612,19 +615,26 @@ def process_axis(opt, vals, vals_dropdown):
612615

613616
return valslist
614617

618+
def _handle_opt_values(opt, values: str, values_dropdown: Iterable[Any]):
619+
if opt.choices is not None:
620+
if not csv_mode:
621+
values = list_to_csv_string(values_dropdown)
622+
elif isinstance(values, str):
623+
values = re.sub(r'\s*[\r\n]+\s*', '\n', values)
624+
values = re.sub(r'^[\n\s]+|[\n\s]+$', '', values)
625+
values = re.sub(r',?\s*\n+\s*,?', ',', values)
626+
return values
627+
615628
x_opt = self.current_axis_options[x_type]
616-
if x_opt.choices is not None and not csv_mode:
617-
x_values = list_to_csv_string(x_values_dropdown)
629+
_handle_opt_values(x_opt, x_values, x_values_dropdown)
618630
xs = process_axis(x_opt, x_values, x_values_dropdown)
619631

620632
y_opt = self.current_axis_options[y_type]
621-
if y_opt.choices is not None and not csv_mode:
622-
y_values = list_to_csv_string(y_values_dropdown)
633+
_handle_opt_values(y_opt, y_values, y_values_dropdown)
623634
ys = process_axis(y_opt, y_values, y_values_dropdown)
624635

625636
z_opt = self.current_axis_options[z_type]
626-
if z_opt.choices is not None and not csv_mode:
627-
z_values = list_to_csv_string(z_values_dropdown)
637+
_handle_opt_values(z_opt, z_values, z_values_dropdown)
628638
zs = process_axis(z_opt, z_values, z_values_dropdown)
629639

630640
# this could be moved to common code, but unlikely to be ever triggered anywhere else

0 commit comments

Comments
 (0)