From 32eff3fc413da1be0082df093adb159ea252b1bc Mon Sep 17 00:00:00 2001 From: Michael Buesch Date: Mon, 14 Oct 2013 23:05:06 +0200 Subject: Check for duplicate chip-IDs on registration Signed-off-by: Michael Buesch --- libtoprammer/chip.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/libtoprammer/chip.py b/libtoprammer/chip.py index e564daa..fcf0b4c 100644 --- a/libtoprammer/chip.py +++ b/libtoprammer/chip.py @@ -276,6 +276,14 @@ def getRegisteredVendors(): vendors.setdefault(vendor, []).append(descriptor) return vendors +def _registerChip(chipDesc): + regList = getRegisteredChips() + if chipDesc.chipID in [ cd.chipID for cd in regList ]: + raise TOPException("Chip description registration: " + "The chipID '%s' is not unique." %\ + chipDesc.chipID) + regList.append(chipDesc) + class BitDescription: def __init__(self, bitNr, description): self.bitNr = bitNr @@ -424,7 +432,7 @@ class ChipDescription: self.maintainer = maintainer self.broken = broken - getRegisteredChips().append(self) + _registerChip(self) @classmethod def findAll(cls, chipID, allowBroken=False): -- cgit v1.2.3