From 4dec61899ce5afd2098e44da1fc0863a614e1583 Mon Sep 17 00:00:00 2001 From: Matthew Mckee Date: Fri, 21 Feb 2025 12:29:10 +0000 Subject: [PATCH 1/2] Fix layer properties conversion --- src/kfactory/technology/layer_map.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/kfactory/technology/layer_map.py b/src/kfactory/technology/layer_map.py index b2901d9c..9f32697d 100644 --- a/src/kfactory/technology/layer_map.py +++ b/src/kfactory/technology/layer_map.py @@ -145,10 +145,10 @@ def kl2lp(kl: lay.LayerPropertiesNodeRef) -> LayerPropertiesModel: frame_color=Color(hex(kl.frame_color)) if kl.frame_color else None, fill_color=Color(hex(kl.fill_color)) if kl.fill_color else None, dither_pattern=index2dither[kl.dither_pattern], - line_style=index2line[kl.line_style], + line_style=index2line.get(kl.line_style, "solid"), visible=kl.visible, width=kl.width, - xfill=kl.width, + xfill=kl.xfill, layer_to_name=kl.name.endswith(f" - {kl.source_layer}/{kl.source_datatype}"), transparent=kl.transparent, valid=kl.valid, From 0e20bc64a8ef8906a6342b3200e53bd30d3c6fd4 Mon Sep 17 00:00:00 2001 From: Matthew Mckee Date: Fri, 21 Feb 2025 12:49:21 +0000 Subject: [PATCH 2/2] Add utility function to get lyp model --- src/kfactory/technology/layer_map.py | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/kfactory/technology/layer_map.py b/src/kfactory/technology/layer_map.py index 9f32697d..927fbbcd 100644 --- a/src/kfactory/technology/layer_map.py +++ b/src/kfactory/technology/layer_map.py @@ -109,13 +109,11 @@ def yaml_to_lyp(inp: pathlib.Path | str, out: pathlib.Path | str) -> None: lv.save_layer_props(str(out)) -def lyp_to_yaml(inp: pathlib.Path | str, out: pathlib.Path | str) -> None: - """Convert a lyp file to a YAML ffile.""" +def lyp_to_lyp_model(inp: pathlib.Path | str) -> LypModel: + """Convert a lyp file to a LypModel.""" f = pathlib.Path(inp).resolve() assert f.exists() - yaml = YAML() - lv = lay.LayoutView() lv.load_layer_props(str(f)) @@ -134,6 +132,16 @@ def lyp_to_yaml(inp: pathlib.Path | str, out: pathlib.Path | str) -> None: lyp_m = LypModel(layers=layers) + return lyp_m + + +def lyp_to_yaml(inp: pathlib.Path | str, out: pathlib.Path | str) -> None: + """Convert a lyp file to a YAML ffile.""" + + yaml = YAML() + + lyp_m = lyp_to_lyp_model(inp) + yaml.dump(loads(lyp_m.model_dump_json()), pathlib.Path(out))