diff --git a/k2t.py b/k2t.py index 11311cb..b9d93c6 100644 --- a/k2t.py +++ b/k2t.py @@ -7,7 +7,11 @@ from dataclasses import dataclass, fields from xml.etree import ElementTree -def k2t(kfile: str, tfile: str) -> None: +def k2t( + kfile: str, + tfile: str, + fill_name: bool = False, + ) -> None: """ Convert from KLayout layer properties xml (.lyp) to TOML @@ -38,6 +42,18 @@ def k2t(kfile: str, tfile: str) -> None: if name is not None: print(f'Discarding tab name: {name}') + def add_names(entrs: list[Entry]) -> None: + for entry in entrs: + if entry.members: + add_names(entry.members) + + if entry.name or not entry.source: + continue + entry.name = entry.source + + if fill_name: + add_names(entries) + with open(tfile, 'wt') as ff: for entry in entries: ff.write(entry.to_toml())