if conn is not None:
conn_name, conn_number = conn
- if not (isinstance(conn_name, str) and isinstance(conn_number, int)):
- raise TypeError("Connector must be None or a pair of string and integer, not {!r}"
+ if not (isinstance(conn_name, str) and isinstance(conn_number, (int, str))):
+ raise TypeError("Connector must be None or a pair of string (connector name) and "
+ "integer/string (connector number), not {!r}"
.format(conn))
names = ["{}_{}:{}".format(conn_name, conn_number, name) for name in names]
def PinsN(*args, **kwargs):
- pins = Pins(*args, **kwargs)
- pins.invert = True
- return pins
+ return Pins(*args, invert=True, **kwargs)
class DiffPairs:
- def __init__(self, p, n, *, dir="io", conn=None, assert_width=None):
+ def __init__(self, p, n, *, dir="io", invert=False, conn=None, assert_width=None):
self.p = Pins(p, dir=dir, conn=conn, assert_width=assert_width)
self.n = Pins(n, dir=dir, conn=conn, assert_width=assert_width)
.format(self.p, self.n))
self.dir = dir
- self.invert = False
+ self.invert = bool(invert)
def __len__(self):
return len(self.p.names)
def DiffPairsN(*args, **kwargs):
- diff_pairs = DiffPairs(*args, **kwargs)
- diff_pairs.invert = True
- return diff_pairs
+ return DiffPairs(*args, invert=True, **kwargs)
class Attrs(OrderedDict):
if conn is not None:
conn_name, conn_number = conn
- if not (isinstance(conn_name, str) and isinstance(conn_number, int)):
- raise TypeError("Connector must be None or a pair of string and integer, not {!r}"
+ if not (isinstance(conn_name, str) and isinstance(conn_number, (int, str))):
+ raise TypeError("Connector must be None or a pair of string (connector name) and "
+ "integer/string (connector number), not {!r}"
.format(conn))
for conn_pin, plat_pin in mapping.items():