def dimRelationships(self, structuralNode, getMembers=False, getDimQname=False): dimensionQname = structuralNode.evaluate(self, self.evalDimensionQname) sourceQname = structuralNode.evaluate(self, self.evalRrelationshipSourceQname) or XbrlConst.qnXfiRoot linkrole = structuralNode.evaluate(self, self.evalLinkrole) if not linkrole and getMembers: linkrole = "XBRL-all-linkroles" dimConcept = self.modelXbrl.qnameConcepts.get(dimensionQname) sourceConcept = self.modelXbrl.qnameConcepts.get(sourceQname) axis = self.axis generations = (structuralNode.evaluate(self, self.evalGenerations) or () ) if ((dimensionQname and (dimConcept is None or not dimConcept.isDimensionItem)) or (sourceQname and sourceQname != XbrlConst.qnXfiRoot and ( sourceConcept is None or not sourceConcept.isItem))): return () if dimConcept is not None: if getDimQname: return dimensionQname if sourceConcept is None: sourceConcept = dimConcept if getMembers: return concept_relationships(self.modelXbrl.rendrCntx, None, (sourceQname, linkrole, "XBRL-dimensions", # all dimensions arcroles axis.replace('-or-self',''), generations), True) # return nested lists representing concept tree nesting if getDimQname: if sourceConcept is not None: # look back from member to a dimension return self.stepDimRel(sourceConcept, linkrole) return None
def relationships(self, structuralNode): sourceQname = structuralNode.evaluate(self, self.evalRrelationshipSourceQname) or XbrlConst.qnXfiRoot linkrole = structuralNode.evaluate(self, self.evalLinkrole) if not linkrole: linkrole = "XBRL-all-linkroles" linkQname = (structuralNode.evaluate(self, self.evalLinkQname) or () ) arcrole = (structuralNode.evaluate(self, self.evalArcrole) or () ) arcQname = (structuralNode.evaluate(self, self.evalArcQname) or () ) axis = self.axis generations = (structuralNode.evaluate(self, self.evalGenerations) or () ) return concept_relationships(self.modelXbrl.rendrCntx, None, (sourceQname, linkrole, arcrole, axis.replace('-or-self',''), generations, linkQname, arcQname), True) # return nested lists representing concept tree nesting