Source code for paos.gui.core.io

from paos.gui.core.shared import to_configparser


[docs] def to_ini(input, config, tmp): dictionary = {} dictionary["general"] = { "project": input.project(), "version": input.version(), "grid_size": input.grid_size(), "zoom": input.zoom(), "lens_unit": "m", "Tambient": input.tambient(), "Pambient": input.pambient(), } values = input.__dict__["_map"] def get_value(key): return "" if key not in values.keys() else values[key]() dictionary["wavelengths"] = {} for key in values.keys(): if "Wavelength" in key: i = int(key.split("_")[1]) dictionary["wavelengths"][f"w{i}"] = get_value(key) dictionary["fields"] = {} for key in values.keys(): if "Field" in key: i = int(key.split("_")[1]) dictionary["fields"][f"f{i}"] = get_value(key) nlenses = len({key for key in values.keys() if "lens_SurfaceType" in key}) for i in range(1, nlenses + 1): surface_type = get_value(f"lens_SurfaceType_{i}_1") dictionary[f"lens_{i:02d}"] = { "surfacetype": surface_type, } if surface_type == "Zernike": zcoeffs = { key: values[key]() for key in values.keys() if f"lens_{i}_Zcoeff" in key } zcoeffs = dict( sorted(zcoeffs.items(), key=lambda item: int(item[0].split("_")[3])) ) zcoeffs = list(zcoeffs.values()) if not zcoeffs: zcoeffs = config.get()[f"lens_{i:02d}"]["z"].split(",") zindex = list(range(len(zcoeffs))) zcoeffs = ",".join(zcoeffs) zindex = ",".join(map(str, zindex)) dictionary[f"lens_{i:02d}"]["zindex"] = zindex dictionary[f"lens_{i:02d}"]["z"] = zcoeffs aperture_type = get_value(f"lens_Aperture_Type_{i}_9") aperture_xhw = get_value(f"lens_Aperture_xhw_{i}_9") aperture_yhw = get_value(f"lens_Aperture_yhw_{i}_9") aperture_xdecenter = get_value(f"lens_Aperture_xdecenter_{i}_9") aperture_ydecenter = get_value(f"lens_Aperture_ydecenter_{i}_9") aperture = ( "" if aperture_type == "" else f"{aperture_type},{aperture_xhw},{aperture_yhw},{aperture_xdecenter},{aperture_ydecenter}" ) dictionary[f"lens_{i:02d}"].update( { "comment": get_value(f"lens_Comment_{i}_2"), "radius": get_value(f"lens_Radius_{i}_3"), "thickness": get_value(f"lens_Thickness_{i}_4"), "material": get_value(f"lens_Material_{i}_5"), "save": get_value(f"lens_Save_{i}_6"), "ignore": get_value(f"lens_Ignore_{i}_7"), "stop": get_value(f"lens_Stop_{i}_8"), "aperture": aperture, "par1": get_value(f"lens_Par1_{i}_10"), "par2": get_value(f"lens_Par2_{i}_11"), "par3": get_value(f"lens_Par3_{i}_12"), "par4": get_value(f"lens_Par4_{i}_13"), "par5": get_value(f"lens_Par5_{i}_14"), "par6": get_value(f"lens_Par6_{i}_15"), "par7": get_value(f"lens_Par7_{i}_16"), "par8": get_value(f"lens_Par8_{i}_17"), } ) config.set(to_configparser(dictionary)) with open(tmp, "w") as cf: config.get().write(cf)