本文整理汇总了Python中arelle.XbrlConst.isStandardArcrole方法的典型用法代码示例。如果您正苦于以下问题:Python XbrlConst.isStandardArcrole方法的具体用法?Python XbrlConst.isStandardArcrole怎么用?Python XbrlConst.isStandardArcrole使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类arelle.XbrlConst
的用法示例。
在下文中一共展示了XbrlConst.isStandardArcrole方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: validate
# 需要导入模块: from arelle import XbrlConst [as 别名]
# 或者: from arelle.XbrlConst import isStandardArcrole [as 别名]
#.........这里部分代码省略.........
self.modelVersReport.error("vercee:invalidConceptCorrespondence",
_("%(action)s %(event)s fromConcept %(conceptFrom)s and toConcept %(conceptTo)s must be equivalent or related"),
modelObject=conceptChange, action=conceptChange.actionId,
event=conceptChange.name, conceptFrom=conceptChange.fromConceptQname, conceptTo=conceptChange.toConceptQname)
# custom attribute events
if conceptChange.name.startswith("conceptAttribute"):
try:
for attr in conceptAttributeEventAttributes[conceptChange.name]:
customAttributeQname = conceptChange.customAttributeQname(attr)
if not customAttributeQname or customAttributeQname.namespaceURI is None:
self.modelVersReport.error("vercee:invalidAttributeChange",
_("%(action)s %(event)s %(attr)s $(attrName)s does not have a namespace"),
modelObject=conceptChange, action=conceptChange.actionId,
attr=attr, attrName=customAttributeQname)
elif customAttributeQname.namespaceURI in (XbrlConst.xbrli, XbrlConst.xsd):
self.modelVersReport.error("vercee:illegalCustomAttributeEvent",
_("%(action)s %(event)s %(attr)s $(attrName)s has an invalid namespace"),
modelObject=conceptChange, action=conceptChange.actionId, event=conceptChange.name,
attr=attr, attrName=customAttributeQname)
except KeyError:
self.modelVersReport.info("arelle:eventNotRecognized",
_("%(action)s %(event)s event is not recognized"),
modelObject=conceptChange, action=conceptChange.actionId, event=conceptChange.name)
# check relationship set changes
for relSetChange in versReport.relationshipSetChanges:
for relationshipSet, name in ((relSetChange.fromRelationshipSet, "fromRelationshipSet"),
(relSetChange.toRelationshipSet, "toRelationshipSet")):
if relationshipSet is not None:
relationshipSetValid = True
if relationshipSet.link and relationshipSet.link not in relationshipSet.dts.qnameConcepts:
self.modelVersReport.error("verrelse:invalidLinkElementReference",
_("%(event)s %(relSet)s link %(link)s does not reference an element in its DTS"),
modelObject=relSetChange, event=relSetChange.name, relSet=name,
link=relationshipSet.link)
relationshipSetValid = False
if relationshipSet.arc and relationshipSet.arc not in relationshipSet.dts.qnameConcepts:
self.modelVersReport.error("verrelse:invalidArcElementReference",
_("%(event)s %(relSet)s arc %(arc) does not reference an element in its DTS"),
modelObject=relSetChange, event=relSetChange.name, relSet=name,
arc=relationshipSet.arc)
relationshipSetValid = False
if relationshipSet.linkrole and not (XbrlConst.isStandardRole(relationshipSet.linkrole) or
relationshipSet.linkrole in relationshipSet.dts.roleTypes):
self.modelVersReport.error("verrelse:invalidLinkrole",
_("%(event)s %(relSet)s linkrole %(linkrole)s does not reference an linkrole in its DTS"),
modelObject=relSetChange, event=relSetChange.name, relSet=name,
linkrole=relationshipSet.linkrole)
relationshipSetValid = False
if relationshipSet.arcrole and not (XbrlConst.isStandardArcrole(relationshipSet.arcrole) or
relationshipSet.arcrole in relationshipSet.dts.arcroleTypes):
self.modelVersReport.error("verrelse:invalidArcrole",
_("%(event)s %(relSet)s arcrole %(arcrole)s does not reference an arcrole in its DTS"),
modelObject=relSetChange, event=relSetChange.name, relSet=name,
arcrole=relationshipSet.arcrole)
relationshipSetValid = False
for relationship in relationshipSet.relationships:
# fromConcept checks
if relationship.fromConcept is None:
self.modelVersReport.error("verrelse:invalidConceptReference",
_("%(event)s %(relSet)s relationship fromConcept %(conceptFrom)s does not reference a concept in its DTS"),
modelObject=relSetChange, event=relSetChange.name, relSet=name,
conceptFrom=relationship.fromName)
relationshipSetValid = False
if relationship.toName and relationship.toConcept is None:
self.modelVersReport.error("verrelse:invalidConceptReference",
_("%(event)s %(relSet)s relationship toConcept %(conceptTo)s does not reference a concept in its DTS"),
modelObject=relSetChange, event=relSetChange.name, relSet=name,
conceptTo=relationship.toName)
relationshipSetValid = False
if relationshipSetValid: # test that relations exist
if relationship.fromRelationship is None:
if relationship.toName:
self.modelVersReport.error("verrelse:invalidRelationshipReference",
_("%(event)s %(relSet)s no relationship found from fromConcept %(conceptFrom)s to toConcept %(conceptTo)s in its DTS"),
modelObject=relSetChange, event=relSetChange.name, relSet=name,
conceptFrom=relationship.fromName, conceptTo=relationship.toName)
else:
self.modelVersReport.error("verrelse:invalidRelationshipReference",
_("%(event)s %(relSet)s no relationship found fromConcept %(conceptFrom)s in its DTS"),
modelObject=relSetChange, event=relSetChange.name, relSet=name,
conceptFrom=relationship.fromName)
'''
# check instance aspect changes
for iaChange in versReport.instanceAspectChanges:
# validate related concepts
for aspectName in ("{http://xbrl.org/2010/versioning-instance-aspects}concept", "{http://xbrl.org/2010/versioning-instance-aspects}member"):
for aspectElt in iaChange.iterdescendants(aspectName):
# check link attribute
link = aspectElement.get("link")
if link is not None:
iaChange.hrefToModelObject(link, dts)
'''
self.close()
示例2: validate
# 需要导入模块: from arelle import XbrlConst [as 别名]
# 或者: from arelle.XbrlConst import isStandardArcrole [as 别名]
#.........这里部分代码省略.........
if (relationshipSet.link not in dts.qnameConcepts or
(dts.qnameConcepts[relationshipSet.link].type is not None and
not dts.qnameConcepts[relationshipSet.link].type.isDerivedFrom(XbrlConst.qnXlExtendedType))):
self.modelVersReport.error("verrelse:invalidLinkElementReferenceEvent",
_("%(event)s %(relSet)s link %(link)s does not reference an element in its DTS"),
modelObject=relSetChange, event=relSetChange.name, relSet=name,
link=relationshipSet.link)
relationshipSetValid = False
if relationshipSet.arc:
if (relationshipSet.arc not in dts.qnameConcepts or
(dts.qnameConcepts[relationshipSet.arc].type is not None and
not dts.qnameConcepts[relationshipSet.arc].type.isDerivedFrom(XbrlConst.qnXlArcType))):
self.modelVersReport.error("verrelse:invalidArcElementReferenceEvent",
_("%(event)s %(relSet)s arc %(arc) does not reference an element in its DTS"),
modelObject=relSetChange, event=relSetChange.name, relSet=name,
arc=relationshipSet.arc)
relationshipSetValid = False
if relationshipSet.linkrole:
if not (XbrlConst.isStandardRole(relationshipSet.linkrole) or
relationshipSet.linkrole in relationshipSet.dts.roleTypes):
self.modelVersReport.error("verrelse:invalidLinkrole",
_("%(event)s %(relSet)s linkrole %(linkrole)s does not reference an linkrole in its DTS"),
modelObject=relSetChange, event=relSetChange.name, relSet=name,
linkrole=relationshipSet.linkrole)
relationshipSetValid = False
elif not any(linkrole == relationshipSet.linkrole
for arcrole, linkrole, linkqname, arcqname in dts.baseSets.keys()):
self.modelVersReport.error("verrelse:invalidLinkrole",
_("%(event)s %(relSet)s linkrole %(linkrole)s is not used in its DTS"),
modelObject=relSetChange, event=relSetChange.name, relSet=name,
linkrole=relationshipSet.linkrole)
relationshipSetValid = False
if relationshipSet.arcrole:
if not (XbrlConst.isStandardArcrole(relationshipSet.arcrole) or
relationshipSet.arcrole in relationshipSet.dts.arcroleTypes):
self.modelVersReport.error("verrelse:invalidArcrole",
_("%(event)s %(relSet)s arcrole %(arcrole)s does not reference an arcrole in its DTS"),
modelObject=relSetChange, event=relSetChange.name, relSet=name,
arcrole=relationshipSet.arcrole)
relationshipSetValid = False
elif not any(arcrole == relationshipSet.arcrole
for arcrole, linkrole, linkqname, arcqname in dts.baseSets.keys()):
self.modelVersReport.error("verrelse:invalidArcrole",
_("%(event)s %(relSet)s arcrole %(arcrole)s is not used in its DTS"),
modelObject=relSetChange, event=relSetChange.name, relSet=name,
arcrole=relationshipSet.arcrole)
relationshipSetValid = False
for relationship in relationshipSet.relationships:
# fromConcept checks
if relationship.fromConcept is None:
self.modelVersReport.error("vercue:invalidConceptReference",
_("%(event)s %(relSet)s relationship fromConcept %(conceptFrom)s does not reference a concept in its DTS"),
modelObject=relSetChange, event=relSetChange.name, relSet=name,
conceptFrom=relationship.fromName)
relationshipSetValid = False
if relationship.toName and relationship.toConcept is None:
self.modelVersReport.error("vercue:invalidConceptReference",
_("%(event)s %(relSet)s relationship toConcept %(conceptTo)s does not reference a concept in its DTS"),
modelObject=relSetChange, event=relSetChange.name, relSet=name,
conceptTo=relationship.toName)
relationshipSetValid = False
if relationshipSetValid: # test that relations exist
if relationship.fromRelationship is None:
if relationship.toName:
self.modelVersReport.error("verrelse:invalidRelationshipReference",
_("%(event)s %(relSet)s no relationship found from fromConcept %(conceptFrom)s to toConcept %(conceptTo)s in its DTS"),
示例3: validate
# 需要导入模块: from arelle import XbrlConst [as 别名]
# 或者: from arelle.XbrlConst import isStandardArcrole [as 别名]
#.........这里部分代码省略.........
"err", "vercee:invalidConceptReferenceIdentifier")
else:
self.modelVersReport.error(
_("{0} {1} toResource {2} does not have a reference relationship to {3} in toDTS").format(
conceptChange.actionId, conceptChange.name, conceptChange.toResourceValue, conceptChange.toConceptQname),
"err", "vercee:invalidContentResourceIdentifier")
# check concept correspondence
if fromConcept and toConcept:
if versReport.toDTSqname(fromConcept.qname) != toConcept.qname and \
versReport.equivalentConcepts.get(fromConcept.qname) != toConcept.qname and \
toConcept.qname not in versReport.relatedConcepts.get(fromConcept.qname,[]):
self.modelVersReport.error(
_("{0} {1} fromConcept {2} and toConcept {3} must be equivalent or related").format(
conceptChange.actionId, conceptChange.name, conceptChange.fromConceptQname, conceptChange.toConceptQname),
"err", "vercee:invalidConceptCorrespondence")
# custom attribute events
if conceptChange.name.startswith("conceptAttribute"):
try:
for attr in conceptAttributeEventAttributes[conceptChange.name]:
customAttributeQname = conceptChange.customAttributeQname(attr)
if not customAttributeQname or customAttributeQname.namespaceURI is None:
self.modelVersReport.error(
_("{0} {1} {2} {3} does not have a namespace").format(
conceptChange.actionId, conceptChange.name, attr, customAttributeQname),
"err", "vercee:invalidAttributeChange")
elif customAttributeQname.namespaceURI in (XbrlConst.xbrli, XbrlConst.xsd):
self.modelVersReport.error(
_("{0} {1} {2} {3} has an invalid namespace").format(
conceptChange.actionId, conceptChange.name, attr, customAttributeQname),
"err", "vercee:illegalCustomAttributeEvent")
except KeyError:
self.modelVersReport.error(
_("{0} {1} event is not recognized").format(conceptChange.actionId, conceptChange.name),
"info", "arelle:eventNotRecognized")
# check relationship set changes
for relSetChange in versReport.relationshipSetChanges:
for relationshipSet, name in ((relSetChange.fromRelationshipSet, "fromRelationshipSet"),
(relSetChange.toRelationshipSet, "toRelationshipSet")):
if relationshipSet:
relationshipSetValid = True
if relationshipSet.link and relationshipSet.link not in relationshipSet.dts.qnameConcepts:
self.modelVersReport.error(
_("{0} link {1} does not reference an element in its DTS").format(
relSetChange.name, name, relationshipSet.link),
"err", "verrelse:invalidLinkElementReference")
relationshipSetValid = False
if relationshipSet.arc and relationshipSet.arc not in relationshipSet.dts.qnameConcepts:
self.modelVersReport.error(
_("{0} arc {1} does not reference an element in its DTS").format(
relSetChange.name, name, relationshipSet.link),
"err", "verrelse:invalidArcElementReference")
relationshipSetValid = False
if relationshipSet.linkrole and not (XbrlConst.isStandardRole(relationshipSet.linkrole) or
relationshipSet.linkrole in relationshipSet.dts.roleTypes):
self.modelVersReport.error(
_("{0} linkrole {1} does not reference an linkrole in its DTS").format(
relSetChange.name, name, relationshipSet.linkrole),
"err", "verrelse:invalidLinkrole")
relationshipSetValid = False
if relationshipSet.arcrole and not (XbrlConst.isStandardArcrole(relationshipSet.arcrole) or
relationshipSet.arcrole in relationshipSet.dts.arcroleTypes):
self.modelVersReport.error(
_("{0} arcrole {1} does not reference an arcrole in its DTS").format(
relSetChange.name, name, relationshipSet.linkrole),
"err", "verrelse:invalidArcrole")
relationshipSetValid = False
for relationship in relationshipSet.relationships:
# fromConcept checks
if not relationship.fromConcept:
self.modelVersReport.error(
_("{0} {1} relationship fromConcept {2} does not reference a concept in its DTS").format(
relSetChange.name, name, relationship.fromName),
"err", "verrelse:invalidConceptReference")
relationshipSetValid = False
if relationship.toName and not relationship.toConcept:
self.modelVersReport.error(
_("{0} {1} relationship toConcept {2} does not reference a concept in its DTS").format(
relSetChange.name, name, relationship.toName),
"err", "verrelse:invalidConceptReference")
relationshipSetValid = False
if relationshipSetValid: # test that relations exist
if relationship.fromRelationship is None:
if relationship.toName:
self.modelVersReport.error(
_("{0} {1} no relationship found from toConcept {2} to {3} in its DTS").format(
relSetChange.name, name, relationship.fromName, relationship.toName),
"err", "verrelse:invalidRelationshipReference")
else:
self.modelVersReport.error(
_("{0} {1} no relationship found from toConcept {2} in its DTS").format(
relSetChange.name, name, relationship.fromName),
"err", "verrelse:invalidRelationshipReference")
'''