当前位置: 首页>>代码示例>>Python>>正文


Python XbrlConst.isEuRenderingArcrole方法代码示例

本文整理汇总了Python中arelle.XbrlConst.isEuRenderingArcrole方法的典型用法代码示例。如果您正苦于以下问题:Python XbrlConst.isEuRenderingArcrole方法的具体用法?Python XbrlConst.isEuRenderingArcrole怎么用?Python XbrlConst.isEuRenderingArcrole使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在arelle.XbrlConst的用法示例。


在下文中一共展示了XbrlConst.isEuRenderingArcrole方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: __init__

# 需要导入模块: from arelle import XbrlConst [as 别名]
# 或者: from arelle.XbrlConst import isEuRenderingArcrole [as 别名]
    def __init__(self, modelXbrl, arcrole, linkrole=None, linkqname=None, arcqname=None, includeProhibits=False):
        self.isChanged = False
        self.modelXbrl = modelXbrl
        self.arcrole = arcrole
        self.linkrole = linkrole
        self.linkqname = linkqname
        self.arcqname = arcqname

        baseSetKey = (arcrole, linkrole, linkqname, arcqname)
        relationshipSetKey = (arcrole, linkrole, linkqname, arcqname, includeProhibits)

        # base sets does not care about the #includeProhibits
        if baseSetKey in self.modelXbrl.baseSets:
            modelLinks = self.modelXbrl.baseSets[baseSetKey]
        else:
            modelLinks = []

        # gather arcs
        relationships = {}
        isDimensionRel = self.arcrole == "XBRL-dimensions"  # all dimensional relationship arcroles
        isFormulaRel = self.arcrole == "XBRL-formulae"  # all formula relationship arcroles
        isEuRenderingRel = self.arcrole == "EU-rendering"
        isFootnoteRel = self.arcrole == "XBRL-footnotes"  # all footnote relationship arcroles

        for modelLink in modelLinks:
            arcs = []
            linkEltQname = modelLink.qname
            for linkChild in modelLink.element.childNodes:
                if (
                    linkChild.nodeType == 1
                    and linkChild.getAttributeNS(XbrlConst.xlink, "type") == "arc"
                    and linkChild.hasAttributeNS(XbrlConst.xlink, "arcrole")
                ):
                    linkChildArcrole = linkChild.getAttributeNS(XbrlConst.xlink, "arcrole")
                    linkChildQname = linkChild
                    if isFootnoteRel:
                        arcs.append(linkChild)
                    elif isDimensionRel:
                        if XbrlConst.isDimensionArcrole(linkChildArcrole):
                            arcs.append(linkChild)
                    elif isFormulaRel:
                        if XbrlConst.isFormulaArcrole(linkChildArcrole):
                            arcs.append(linkChild)
                    elif isEuRenderingRel:
                        if XbrlConst.isEuRenderingArcrole(linkChildArcrole):
                            arcs.append(linkChild)
                    elif (
                        arcrole == linkChildArcrole
                        and (arcqname is None or arcqname == linkChildQname)
                        and (linkqname is None or linkqname == linkEltQname)
                    ):
                        arcs.append(linkChild)

            # build network
            for arcElement in arcs:
                arcrole = arcElement.getAttributeNS(XbrlConst.xlink, "arcrole")
                fromLabel = arcElement.getAttributeNS(XbrlConst.xlink, "from")
                toLabel = arcElement.getAttributeNS(XbrlConst.xlink, "to")
                for fromResource in modelLink.labeledResources[fromLabel]:
                    for toResource in modelLink.labeledResources[toLabel]:
                        modelRel = ModelObject.createRelationship(
                            modelLink.modelDocument, arcElement, fromResource.dereference(), toResource.dereference()
                        )
                        modelRelEquivalenceKey = (
                            modelRel.equivalenceKey
                        )  # this is a complex tuple to compute, get once for below
                        if modelRelEquivalenceKey not in relationships or modelRel.priorityOver(
                            relationships[modelRelEquivalenceKey]
                        ):
                            relationships[modelRelEquivalenceKey] = modelRel

        # reduce effective arcs and order relationships...
        self.modelRelationships = []
        self.modelRelationshipsFrom = None
        self.modelRelationshipsTo = None
        self.modelConceptRoots = None
        self.modellinkRoleUris = None
        orderRels = defaultdict(list)
        for modelRel in relationships.values():
            if includeProhibits or not modelRel.isProhibited:
                orderRels[modelRel.order].append(modelRel)
        for order in sorted(orderRels.keys()):
            for modelRel in orderRels[order]:
                self.modelRelationships.append(modelRel)
        modelXbrl.relationshipSets[relationshipSetKey] = self
开发者ID:8maki,项目名称:Arelle,代码行数:87,代码来源:ModelRelationshipSet.py

示例2: linkbaseDiscover

# 需要导入模块: from arelle import XbrlConst [as 别名]
# 或者: from arelle.XbrlConst import isEuRenderingArcrole [as 别名]
 def linkbaseDiscover(self, linkbaseElement, inInstance=False):
     for lbElement in linkbaseElement.childNodes:
         if lbElement.nodeType == 1: #element
             lbLn = lbElement.localName
             lbNs = lbElement.namespaceURI
             if lbNs == XbrlConst.link:
                 if lbLn == "roleRef" or lbLn == "arcroleRef":
                     href = self.discoverHref(lbElement)
                     if href is None:
                         self.modelXbrl.error(
                                 "Linkbase in {0} {1} href attribute missing or malformed".format(
                                   os.path.basename(self.uri),
                                   lbLn),
                                 "err", "xbrl:hrefMissing")
                     else:
                         self.hrefObjects.append(href)
                     continue
             if lbElement.getAttributeNS(XbrlConst.xlink, "type") == "extended":
                 self.schemalocateElementNamespace(lbElement)
                 arcrolesFound = set()
                 dimensionArcFound = False
                 formulaArcFound = False
                 euRenderingArcFound = False
                 linkQn = qname(lbElement)
                 linkrole = lbElement.getAttributeNS(XbrlConst.xlink, "role")
                 modelLink = ModelObject.createLink(self, lbElement)
                 if inInstance:
                     #index footnote links even if no arc children
                     baseSetKeys = (("XBRL-footnotes",None,None,None), 
                                    ("XBRL-footnotes",linkrole,None,None))
                     for baseSetKey in baseSetKeys:
                         self.modelXbrl.baseSets[baseSetKey].append(modelLink)
                 for linkElement in lbElement.childNodes:
                     if linkElement.nodeType == 1: #element
                         self.schemalocateElementNamespace(linkElement)
                         xlinkType = linkElement.getAttributeNS(XbrlConst.xlink, "type")
                         modelResource = None
                         if xlinkType == "locator":
                             nonDTS = linkElement.namespaceURI != XbrlConst.link or linkElement.localName != "loc"
                             # only link:loc elements are discovered or processed
                             href = self.discoverHref(linkElement, nonDTS=nonDTS)
                             if href is None:
                                 self.modelXbrl.error(
                                         "Linkbase in {0} {1} href attribute missing or malformed".format(
                                           os.path.basename(self.uri),
                                           lbLn),
                                         "err", "xbrl:hrefMissing")
                             else:
                                 modelResource = ModelObject.createLocator(self, linkElement, href)
                         elif xlinkType == "arc":
                             arcQn = qname(linkElement)
                             arcrole = linkElement.getAttributeNS(XbrlConst.xlink, "arcrole")
                             if arcrole not in arcrolesFound:
                                 if linkrole == "":
                                     linkrole = XbrlConst.defaultLinkRole
                                 #index by both arcrole and linkrole#arcrole and dimensionsions if applicable
                                 baseSetKeys = [(arcrole, linkrole, linkQn, arcQn)]
                                 baseSetKeys.append((arcrole, linkrole, None, None))
                                 baseSetKeys.append((arcrole, None, None, None))
                                 if XbrlConst.isDimensionArcrole(arcrole) and not dimensionArcFound:
                                     baseSetKeys.append(("XBRL-dimensions", None, None, None)) 
                                     baseSetKeys.append(("XBRL-dimensions", linkrole, None, None))
                                     dimensionArcFound = True
                                 if XbrlConst.isFormulaArcrole(arcrole) and not formulaArcFound:
                                     baseSetKeys.append(("XBRL-formulae", None, None, None)) 
                                     baseSetKeys.append(("XBRL-formulae", linkrole, None, None))
                                     formulaArcFound = True
                                 if XbrlConst.isEuRenderingArcrole(arcrole) and not euRenderingArcFound:
                                     baseSetKeys.append(("EU-rendering", None, None, None)) 
                                     baseSetKeys.append(("EU-rendering", linkrole, None, None)) 
                                     euRenderingArcFound = True
                                     self.modelXbrl.hasEuRendering = True
                                 for baseSetKey in baseSetKeys:
                                     self.modelXbrl.baseSets[baseSetKey].append(modelLink)
                                 arcrolesFound.add(arcrole)
                         elif xlinkType == "resource": 
                             # create resource and make accessible by id for document
                             modelResource = ModelObject.createResource(self, linkElement)
                         if modelResource is not None:
                             if linkElement.hasAttribute("id"):
                                 self.idObjects[linkElement.getAttribute("id")] = modelResource
                             modelLink.labeledResources[linkElement.getAttributeNS(XbrlConst.xlink, "label")] \
                                 .append(modelResource)
                         else:
                             XmlUtil.markIdAttributes(linkElement)
开发者ID:8maki,项目名称:Arelle,代码行数:87,代码来源:ModelDocument.py


注:本文中的arelle.XbrlConst.isEuRenderingArcrole方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。