本文整理汇总了Python中arelle.ValidateXbrlDimensions.checkContext方法的典型用法代码示例。如果您正苦于以下问题:Python ValidateXbrlDimensions.checkContext方法的具体用法?Python ValidateXbrlDimensions.checkContext怎么用?Python ValidateXbrlDimensions.checkContext使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类arelle.ValidateXbrlDimensions
的用法示例。
在下文中一共展示了ValidateXbrlDimensions.checkContext方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: validate
# 需要导入模块: from arelle import ValidateXbrlDimensions [as 别名]
# 或者: from arelle.ValidateXbrlDimensions import checkContext [as 别名]
#.........这里部分代码省略.........
self.segmentScenario(cntx.segment, cntx.id, "segment", "4.7.3.2")
self.segmentScenario(cntx.scenario, cntx.id, "scenario", "4.7.4")
for unit in modelXbrl.units.values():
mulDivMeasures = unit.measures
if mulDivMeasures:
for measures in mulDivMeasures:
for measure in measures:
if measure.namespaceURI == XbrlConst.xbrli and not \
measure in (XbrlConst.qnXbrliPure, XbrlConst.qnXbrliShares):
self.modelXbrl.error("xbrl.4.8.2:measureElement",
_("Unit %(unitID)s illegal measure: %(measure)s"),
modelObject=unit, unitID=unit.id, measure=measure)
for numeratorMeasure in mulDivMeasures[0]:
if numeratorMeasure in mulDivMeasures[1]:
self.modelXbrl.error("xbrl.4.8.4:measureBothNumDenom",
_("Unit %(unitID)s numerator measure: %(measure)s also appears as denominator measure"),
modelObject=unit, unitID=unit.id, measure=numeratorMeasure)
modelXbrl.profileStat(_("validateInstance"))
if modelXbrl.hasXDT:
modelXbrl.modelManager.showStatus(_("validating dimensions"))
''' uncomment if using otherFacts in checkFact
dimCheckableFacts = set(f
for f in modelXbrl.factsInInstance
if f.concept.isItem and f.context is not None)
while (dimCheckableFacts): # check one and all of its compatible family members
f = dimCheckableFacts.pop()
ValidateXbrlDimensions.checkFact(self, f, dimCheckableFacts)
del dimCheckableFacts
'''
self.checkFactDimensions(modelXbrl.facts) # check fact dimensions in document order
for cntx in modelXbrl.contexts.values():
ValidateXbrlDimensions.checkContext(self,cntx)
modelXbrl.profileStat(_("validateDimensions"))
# dimensional validity
#concepts checks
modelXbrl.modelManager.showStatus(_("validating concepts"))
for concept in modelXbrl.qnameConcepts.values():
conceptType = concept.type
if XbrlConst.isStandardNamespace(concept.qname.namespaceURI) or \
not concept.modelDocument.inDTS:
continue
if concept.isTuple:
# must be global
if not concept.getparent().localName == "schema":
self.modelXbrl.error("xbrl.4.9:tupleGloballyDeclared",
_("Tuple %(concept)s must be declared globally"),
modelObject=concept, concept=concept.qname)
if concept.periodType:
self.modelXbrl.error("xbrl.4.9:tuplePeriodType",
_("Tuple %(concept)s must not have periodType"),
modelObject=concept, concept=concept.qname)
if concept.balance:
self.modelXbrl.error("xbrl.4.9:tupleBalance",
_("Tuple %(concept)s must not have balance"),
modelObject=concept, concept=concept.qname)
if conceptType is not None:
# check attribute declarations
for attribute in conceptType.attributes.values():
if attribute.qname.namespaceURI in (XbrlConst.xbrli, XbrlConst.link, XbrlConst.xlink, XbrlConst.xl):
self.modelXbrl.error("xbrl.4.9:tupleAttribute",
_("Tuple %(concept)s must not have attribute in this namespace %(attribute)s"),
modelObject=concept, concept=concept.qname, attribute=attribute.qname)