google / pcbdl

PCB Design Language: A programming way to design schematics.
Other
155 stars 23 forks source link

Part.refdes should have a setter with more checks #19

Open amstan opened 4 years ago

amstan commented 4 years ago
While it's not really possible to define a part with the same refdes as another par normally. >>> Part(refdes="C1") C1 >>> Part(refdes="C1") Traceback (most recent call last): File "", line 1, in File "/home/amstan/Projects/pcbdl/pcbdl/base.py", line 532, in __init__ Plugin.init(self) File "/home/amstan/Projects/pcbdl/pcbdl/base.py", line 54, in init instance.plugins = {plugin: plugin(instance) for plugin in factories} File "/home/amstan/Projects/pcbdl/pcbdl/base.py", line 54, in instance.plugins = {plugin: plugin(instance) for plugin in factories} File "/home/amstan/Projects/pcbdl/pcbdl/context.py", line 137, in __init__ global_context.new_part(instance) File "/home/amstan/Projects/pcbdl/pcbdl/context.py", line 36, in new_part raise Exception("Cannot have more than one part with the refdes %s in %s" % (part.refdes, self)) Exception: Cannot have more than one part with the refdes C1 in

The check gets bypassed if one were to do part.refdes="something_already_in_use", like the autoname system. This really ought to be implemented differently instead. Perhaps with a setter that checks if there's duplicates instead.