本文整理汇总了Python中arelle.ModelRenderingObject.StructuralNode.indent方法的典型用法代码示例。如果您正苦于以下问题:Python StructuralNode.indent方法的具体用法?Python StructuralNode.indent怎么用?Python StructuralNode.indent使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类arelle.ModelRenderingObject.StructuralNode
的用法示例。
在下文中一共展示了StructuralNode.indent方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: cartesianProductExpander
# 需要导入模块: from arelle.ModelRenderingObject import StructuralNode [as 别名]
# 或者: from arelle.ModelRenderingObject.StructuralNode import indent [as 别名]
def cartesianProductExpander(childStructuralNode, view, depth, axisDisposition, facts, tblAxisRels, i):
if i is not None: # recurse table relationships for cartesian product
for j, tblRel in enumerate(tblAxisRels[i+1:]):
tblObj = tblRel.toModelObject
if isinstance(tblObj, (ModelEuAxisCoord, ModelDefinitionNode)) and axisDisposition == tblRel.axisDisposition:
addBreakdownNode(view, axisDisposition, tblObj)
#if tblObj.cardinalityAndDepth(childStructuralNode)[1] or axisDisposition == "z":
if axisDisposition == "z":
subOrdTblCntx = StructuralNode(childStructuralNode, tblObj, tblObj)
subOrdTblCntx._choiceStructuralNodes = [] # this is a breakdwon node
subOrdTblCntx.indent = 0 # separate breakdown not indented]
depth = 0 # cartesian next z is also depth 0
childStructuralNode.childStructuralNodes.append(subOrdTblCntx)
else: # non-ordinate composition
subOrdTblCntx = childStructuralNode
# predefined axes need facts sub-filtered
if isinstance(childStructuralNode.definitionNode, ModelClosedDefinitionNode):
matchingFacts = childStructuralNode.evaluate(childStructuralNode.definitionNode,
childStructuralNode.definitionNode.filteredFacts,
evalArgs=(facts,))
else:
matchingFacts = facts
# returns whether there were no structural node results
subOrdTblCntx.abstract = True # can't be abstract across breakdown
expandDefinition(view, subOrdTblCntx, tblObj, tblObj,
depth, # depth + (0 if axisDisposition == 'z' else 1),
axisDisposition, matchingFacts, j + i + 1, tblAxisRels) #cartesian product
break
示例2: expandDefinition
# 需要导入模块: from arelle.ModelRenderingObject import StructuralNode [as 别名]
# 或者: from arelle.ModelRenderingObject.StructuralNode import indent [as 别名]
#.........这里部分代码省略.........
or ("code" in labelRole)):
labelRole = rel.toModelObject.role
if labelRole in hdrNonStdRoles:
hdrNonStdPosition = hdrNonStdRoles.index(labelRole)
else:
hdrNonStdRoles.insert(hdrNonStdPosition + 1, labelRole)
isCartesianProductExpanded = False
if not isinstance(definitionNode, ModelFilterDefinitionNode):
# note: reduced set of facts should always be passed to subsequent open nodes
isCartesianProductExpanded = True
for axisSubtreeRel in subtreeRelationships:
isCartesianProductExpanded = True
childDefinitionNode = axisSubtreeRel.toModelObject
if childDefinitionNode.isRollUp:
structuralNode.rollUpStructuralNode = StructuralNode(structuralNode, breakdownNode, childDefinitionNode, )
if not structuralNode.childStructuralNodes: # first sub ordinate is the roll up
structuralNode.subtreeRollUp = CHILD_ROLLUP_FIRST
else:
structuralNode.subtreeRollUp = CHILD_ROLLUP_LAST
if not view.topRollup.get(axisDisposition):
view.topRollup[axisDisposition] = structuralNode.subtreeRollUp
else:
if (isinstance(definitionNode, (ModelBreakdown, ModelCompositionDefinitionNode)) and
isinstance(childDefinitionNode, ModelRelationshipDefinitionNode)): # append list products to composititionAxes subObjCntxs
childStructuralNode = structuralNode
else:
childStructuralNode = StructuralNode(structuralNode, breakdownNode, childDefinitionNode) # others are nested structuralNode
if axisDisposition != "z":
structuralNode.childStructuralNodes.append(childStructuralNode)
if axisDisposition != "z":
expandDefinition(view, childStructuralNode, breakdownNode, childDefinitionNode, depth+ordDepth, axisDisposition, facts, i, tblAxisRels) #recurse
cartesianProductExpander(childStructuralNode, *cartesianProductNestedArgs)
else:
childStructuralNode.indent = depth - 1
if structuralNode.choiceStructuralNodes is not None:
structuralNode.choiceStructuralNodes.append(childStructuralNode)
expandDefinition(view, childStructuralNode, breakdownNode, childDefinitionNode, depth + 1, axisDisposition, facts) #recurse
# required when switching from abstract to roll up to determine abstractness
#if not structuralNode.subtreeRollUp and structuralNode.childStructuralNodes and definitionNode.tag.endswith("Node"):
# structuralNode.subtreeRollUp = CHILDREN_BUT_NO_ROLLUP
#if not hasattr(structuralNode, "indent"): # probably also for multiple open axes
if processOpenDefinitionNode:
if isinstance(definitionNode, ModelRelationshipDefinitionNode):
structuralNode.isLabeled = False
selfStructuralNodes = {} if definitionNode.axis.endswith('-or-self') else None
for rel in definitionNode.relationships(structuralNode):
if not isinstance(rel, list):
relChildStructuralNode = addRelationship(breakdownNode, definitionNode, rel, structuralNode, cartesianProductNestedArgs, selfStructuralNodes)
else:
addRelationships(breakdownNode, definitionNode, rel, relChildStructuralNode, cartesianProductNestedArgs)
if axisDisposition == "z":
# if definitionNode is first structural node child remove it
if structuralNode.choiceStructuralNodes and structuralNode.choiceStructuralNodes[0].definitionNode == definitionNode:
del structuralNode.choiceStructuralNodes[0]
# flatten hierarchy of nested structural nodes inot choice nodes (for single listbox)
def flattenChildNodesToChoices(childStructuralNodes, indent):
while childStructuralNodes:
choiceStructuralNode = childStructuralNodes.pop(0)
choiceStructuralNode.indent = indent
structuralNode.choiceStructuralNodes.append(choiceStructuralNode)
flattenChildNodesToChoices(choiceStructuralNode.childStructuralNodes, indent + 1)
flattenChildNodesToChoices(structuralNode.childStructuralNodes, 0)
# set up by definitionNode.relationships
if isinstance(definitionNode, ModelConceptRelationshipDefinitionNode):
if (definitionNode._sourceQname != XbrlConst.qnXfiRoot and
definitionNode._sourceQname not in view.modelXbrl.qnameConcepts):
示例3: analyzeHdrs
# 需要导入模块: from arelle.ModelRenderingObject import StructuralNode [as 别名]
# 或者: from arelle.ModelRenderingObject.StructuralNode import indent [as 别名]
#.........这里部分代码省略.........
labelLang = rel.toModelObject.xmlLang
labelRole = rel.toModelObject.role
if (labelLang == view.lang or labelLang.startswith(view.lang) or view.lang.startswith(labelLang)
or ("code" in labelRole)):
labelRole = rel.toModelObject.role
if labelRole in hdrNonStdRoles:
hdrNonStdPosition = hdrNonStdRoles.index(labelRole)
else:
hdrNonStdRoles.insert(hdrNonStdPosition + 1, labelRole)
cartesianProductAnalyzed = False
for axisSubtreeRel in subtreeRelationships:
cartesianProductAnalyzed = True
childDefinitionNode = axisSubtreeRel.toModelObject
if childDefinitionNode.isRollUp:
structuralNode.rollUpStructuralNode = StructuralNode(structuralNode, childDefinitionNode)
if not structuralNode.childStructuralNodes: # first sub ordinate is the roll up
structuralNode.subtreeRollUp = CHILD_ROLLUP_FIRST
else:
structuralNode.subtreeRollUp = CHILD_ROLLUP_LAST
if not view.topRollup.get(axisDisposition):
view.topRollup[axisDisposition] = structuralNode.subtreeRollUp
else:
if (isinstance(definitionNode, ModelCompositionDefinitionNode) and
isinstance(childDefinitionNode, ModelRelationshipDefinitionNode)): # append list products to composititionAxes subObjCntxs
childStructuralNode = structuralNode
else:
childStructuralNode = StructuralNode(structuralNode, childDefinitionNode) # others are nested structuralNode
if axisDisposition != "z":
structuralNode.childStructuralNodes.append(childStructuralNode)
if axisDisposition != "z":
analyzeHdrs(view, childStructuralNode, childDefinitionNode, depth+ordDepth, axisDisposition, facts) #recurse
analyzeCartesianProductHdrs(childStructuralNode, *cartesianProductNestedArgs)
else:
childStructuralNode.indent = depth - 1
structuralNode.choiceStructuralNodes.append(childStructuralNode)
analyzeHdrs(view, structuralNode, childDefinitionNode, depth + 1, axisDisposition, facts) #recurse
# required when switching from abstract to roll up to determine abstractness
#if not structuralNode.subtreeRollUp and structuralNode.childStructuralNodes and definitionNode.tag.endswith("Node"):
# structuralNode.subtreeRollUp = CHILDREN_BUT_NO_ROLLUP
#if not hasattr(structuralNode, "indent"): # probably also for multiple open axes
if processOpenDefinitionNode:
if isinstance(definitionNode, ModelRelationshipDefinitionNode):
selfStructuralNodes = {} if definitionNode.axis.endswith('-or-self') else None
for rel in definitionNode.relationships(structuralNode):
if not isinstance(rel, list):
relChildStructuralNode = addRelationship(definitionNode, rel, structuralNode, cartesianProductNestedArgs, selfStructuralNodes)
else:
addRelationships(definitionNode, rel, relChildStructuralNode, cartesianProductNestedArgs)
if axisDisposition == "z":
# if definitionNode is first structural node child remove it
if structuralNode.choiceStructuralNodes and structuralNode.choiceStructuralNodes[0].definitionNode == definitionNode:
del structuralNode.choiceStructuralNodes[0]
# flatten hierarchy of nested structural nodes inot choice nodes (for single listbox)
def flattenChildNodesToChoices(childStructuralNodes, indent):
while childStructuralNodes:
choiceStructuralNode = childStructuralNodes.pop(0)
choiceStructuralNode.indent = indent
structuralNode.choiceStructuralNodes.append(choiceStructuralNode)
flattenChildNodesToChoices(choiceStructuralNode.childStructuralNodes, indent + 1)
flattenChildNodesToChoices(structuralNode.childStructuralNodes, 0)
elif isinstance(definitionNode, ModelSelectionDefinitionNode):
cartesianProductAnalyzed = True
varQn = definitionNode.variableQname
if varQn:
selections = sorted(structuralNode.evaluate(definitionNode, definitionNode.evaluate) or [],