MCPcopy Index your code
hub / github.com/SLiCAP/SLiCAP_python / build_netlist

Function build_netlist

SLiCAP/schematic/netlist.py:81–143  ·  view source on GitHub ↗

Build a SLiCAP netlist string. Format: (quoted if the title contains spaces) .command lines... RefDes nodes... refs... Model param=val... .end

(
    components: list,        # list[ComponentItem]
    wires:      list,        # list[WireItem]
    commands:   list,        # list[CommandItem]
    title:      str = "schematic",
    libs:       list = None, # list[LibraryItem]
    params:     list = None, # list[ParameterItem]
    model_defs: list = None, # list[ModelItem]
)

Source from the content-addressed store, hash-verified

79
80
81def build_netlist(
82 components: list, # list[ComponentItem]
83 wires: list, # list[WireItem]
84 commands: list, # list[CommandItem]
85 title: str = "schematic",
86 libs: list = None, # list[LibraryItem]
87 params: list = None, # list[ParameterItem]
88 model_defs: list = None, # list[ModelItem]
89) -> str:
90 """
91 Build a SLiCAP netlist string.
92
93 Format:
94 <title> (quoted if the title contains spaces)
95
96 .command lines...
97
98 RefDes nodes... refs... Model param=val...
99
100 .end
101 """
102 title_line = f'"{title}"' if " " in title else title
103
104 _node = _node_resolver(components, wires)
105
106 lines: list[str] = [title_line]
107
108 # ── library includes ──────────────────────────────────────────────────────
109 if libs:
110 lines.append("")
111 for lib_item in libs:
112 lines.append(lib_item.netlist_line())
113
114 # ── model definitions ─────────────────────────────────────────────────────
115 if model_defs:
116 for model_item in model_defs:
117 model_lines = model_item.netlist_lines()
118 if model_lines:
119 lines.append("")
120 lines.extend(model_lines)
121
122 # ── parameter blocks ──────────────────────────────────────────────────────
123 if params:
124 for param_item in params:
125 param_lines = param_item.param_lines()
126 if param_lines:
127 lines.append("")
128 lines.extend(param_lines)
129
130 # ── command blocks ────────────────────────────────────────────────────────
131 cmd_lines: list[str] = []
132 for cmd_item in commands:
133 cmd_lines.extend(cmd_item.commands())
134 if cmd_lines:
135 lines.append("")
136 lines.extend(cmd_lines)
137
138 # ── element lines ─────────────────────────────────────────────────────────

Callers 2

cmd_netlistFunction · 0.85
_on_export_netlistMethod · 0.85

Calls 6

_node_resolverFunction · 0.85
_element_linesFunction · 0.85
netlist_lineMethod · 0.80
netlist_linesMethod · 0.80
param_linesMethod · 0.80
commandsMethod · 0.45

Tested by

no test coverage detected