def to_dict_config(self) -> DictConfig: """Returns a DictConfig representation of the compoment.""" d = DictConfig({}) ports = {port.name: port.settings for port in self.get_ports_list()} clean_dict(ports) d.ports = ports d.info = self.info d.version = 1 d.cells = recurse_structures(self) return OmegaConf.create(d)
def to_dict_polygons(self) -> DictConfig: """Returns a dict representation of the flattened compoment.""" d = DictConfig({}) polygons = {} layer_to_polygons = self.get_polygons(by_spec=True) for layer, polygons_layer in layer_to_polygons.items(): for polygon in polygons_layer: layer_name = f"{layer[0]}_{layer[1]}" polygons[layer_name] = [ tuple(snap_to_grid(v)) for v in polygon ] ports = {port.name: port.settings for port in self.get_ports_list()} clean_dict(ports) clean_dict(polygons) d.info = self.info d.polygons = polygons d.ports = ports return OmegaConf.create(d)