Known changes and backwards incompatibilities in 2024.12
Colon ‘:’ not allowed in port names
A ValueError is raised when a colon is encountered in the name of an exposed port. The following code will throw an error:
import ipkiss3.all as i3
circuit = i3.Circuit(insts={"wg": i3.Waveguide()}, exposed_ports={"wg:in": "wg:in", "wg:out": "wg:out"})
layout = circuit.get_default_view(i3.LayoutView)
layout.visualize(annotate=True)
Port names should not contain a colon ‘:’ as it may become very confusing when using these ports later during placement and routing.
Uniqueness of connection names required
A ValueError is raised when connection names specified are not unique. The following code will throw an error:
import ipkiss3.all as i3
wg = i3.Waveguide()
circuit = i3.Circuit(
insts={"first": wg, "second": wg},
specs=[
i3.Place("second", position=(20, 20), relative_to="first"),
i3.ConnectBend("first:in", "second:out", "my_name"),
i3.ConnectBend("second:in", "first:out", "my_name"),
]
)
circuit.Layout().visualize()
Before, only one connection with a particular name was created, meaning a connection could be missing in the layout. Note that it is not obligatory to give a name to a connector. if you do not give any name, a unique name is automatically assigned (this behavior has not changed).
Removal of NameProperty
NameProperty in ipkiss3.core.name_generator.name_property has been removed. Please import from ipkiss3.pcell.cell.pcell.
from ipkiss3.core.name_generator.name_property import NameProperty
Becomes
from ipkiss3.pcell.cell.pcell import NameProperty