diff options
Diffstat (limited to 'src/ee/part/__init__.py')
-rw-r--r-- | src/ee/part/__init__.py | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/ee/part/__init__.py b/src/ee/part/__init__.py index 7a58f75..fbf0838 100644 --- a/src/ee/part/__init__.py +++ b/src/ee/part/__init__.py @@ -56,6 +56,17 @@ class Part(object): def get_part_references(self) -> List[types.PartReference]: return self.xml.referencesProp.part_referenceProp + def get_exactly_one_part_reference(self) -> types.PartReference: + refs = self.get_part_references() + if len(refs) == 0: + raise EeException("This part does not contain any part references{}". + format(", uri=" + self.uri if self.uri else "")) + if len(refs) != 1: + raise EeException("This part does not contain exactly one part reference: {}". + format(", ".join([ref.part_uriProp for ref in refs]))) + + return refs[0] + # Schematic references def add_schematic_reference(self, ref): |