From ef5c8c715eb92ee4f1873af637f04b2e13851fd2 Mon Sep 17 00:00:00 2001 From: jan Date: Sun, 8 Mar 2026 10:12:43 -0700 Subject: [PATCH] [Pather] add auto_render_append arg --- masque/builder/pather.py | 8 ++++++-- masque/test/test_advanced_routing.py | 2 +- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/masque/builder/pather.py b/masque/builder/pather.py index df9a3f9..3478c32 100644 --- a/masque/builder/pather.py +++ b/masque/builder/pather.py @@ -63,7 +63,7 @@ class Pather(PortList): """ __slots__ = ( 'pattern', 'library', 'tools', 'paths', - '_dead', '_logger', '_auto_render' + '_dead', '_logger', '_auto_render', '_auto_render_append' ) pattern: Pattern @@ -111,6 +111,7 @@ class Pather(PortList): name: str | None = None, debug: bool = False, auto_render: bool = False, + auto_render_append: bool = True, ) -> None: """ Args: @@ -122,10 +123,13 @@ class Pather(PortList): name: If specified, `library[name]` is set to `self.pattern`. debug: If True, enables detailed logging. auto_render: If True, enables immediate rendering of routing steps. + auto_render_append: If `auto_render` is True, determines whether + to append geometry or add a reference. """ self._dead = False self._logger = PatherLogger(debug=debug) self._auto_render = auto_render + self._auto_render_append = auto_render_append self.library = library self.pattern = pattern if pattern is not None else Pattern() self.paths = defaultdict(list) @@ -321,7 +325,7 @@ class Pather(PortList): self.plugged({portspec: plug_into}) if self._auto_render: - self.render() + self.render(append=self._auto_render_append) def _get_tool_R(self, tool: Tool, ccw: SupportsBool, in_ptype: str | None, **kwargs) -> float: """ Probe a tool to find the lateral displacement (radius) of its bend. """ diff --git a/masque/test/test_advanced_routing.py b/masque/test/test_advanced_routing.py index 7033159..91d6c3b 100644 --- a/masque/test/test_advanced_routing.py +++ b/masque/test/test_advanced_routing.py @@ -13,7 +13,7 @@ def advanced_pather() -> tuple[Pather, PathTool, Library]: lib = Library() # Simple PathTool: 2um width on layer (1,0) tool = PathTool(layer=(1, 0), width=2, ptype="wire") - p = Pather(lib, tools=tool) + p = Pather(lib, tools=tool, auto_render=True, auto_render_append=False) return p, tool, lib