23 from gettext
import gettext
as _
28 NET_ATTRIB_DELIMITERS =
',; '
35 found = [i
for i
in (s.find(d, start)
for d
in delim)
if i != -1]
48 for schematic
in netlist.schematics:
49 for component
in schematic.components:
54 for is_inherited, func
in [
55 (
True, xorn.geda.attrib.search_inherited),
56 (
False, xorn.geda.attrib.search_attached)]:
57 for value
in func(component.ob,
'net'):
61 pos = value.index(
':')
64 _(
"invalid net= attribute: \"%s\"") % value)
69 value[pos + 1:], NET_ATTRIB_DELIMITERS):
71 l = assignments[pinnumber]
73 pinnumbers.append(pinnumber)
74 l = assignments[pinnumber] = []
75 l.append((value[:pos], is_inherited))
77 for pinnumber
in pinnumbers:
79 pin = component.pins_by_number[pinnumber]
83 pin.number = pinnumber
84 component.pins_by_number[pinnumber] = pin
88 netnames = [netname
for netname, is_inherited
in
89 assignments[pinnumber]
92 netnames = [netname
for netname, is_inherited
in
93 assignments[pinnumber]
97 pin.error(_(
"more than one netname assigned "
98 "via \"net=\" attribute: %s") %
99 _(
" vs. ").join(netnames))
101 pin.has_netattrib =
True
102 pin.net.names_from_net_attribute += netnames
Attribute parsing and lookup.
Pin in a single schematic's netlist.
Visually connected net piece in a single schematic's netlist.
def strtok
Split a string into non-empty parts separated by a set of delimiters.
Netlists for individual schematic files.