from modules import shared, scripts def grid_reference(): for data in scripts.scripts_data: if data.script_class.__module__ in ( "scripts.xyz_grid", "xyz_grid.py", ) and hasattr(data, "module"): return data.module raise SystemError("Could not find X/Y/Z Plot...") def xyz_support(cache: dict): xyz_grid = grid_reference() def apply_field(field): def _(p, x, xs): cache.update({field: x}) return _ def choices_bool(): return ["False", "True"] extra_axis_options = [ xyz_grid.AxisOption( "[Diff. CG] Enable", str, apply_field("enableG"), choices=choices_bool ), xyz_grid.AxisOption("[Diff. CG] ReCenter", float, apply_field("rc_str")), xyz_grid.AxisOption( "[Diff. CG] Normalization", str, apply_field("enableN"), choices=choices_bool, ), ] if getattr(shared.opts, "show_center_opt", False): extra_axis_options += [ xyz_grid.AxisOption("[Diff. CG] C", float, apply_field("C")), xyz_grid.AxisOption("[Diff. CG] M", float, apply_field("M")), xyz_grid.AxisOption("[Diff. CG] Y", float, apply_field("Y")), xyz_grid.AxisOption("[Diff. CG] K", float, apply_field("K")), xyz_grid.AxisOption("[Diff. CG] L", float, apply_field("L")), xyz_grid.AxisOption("[Diff. CG] a", float, apply_field("a")), xyz_grid.AxisOption("[Diff. CG] b", float, apply_field("b")), ] xyz_grid.axis_options.extend(extra_axis_options)