# {py:mod}`arelle.formula.XPathContext` ```{py:module} arelle.formula.XPathContext ``` ```{autodoc2-docstring} arelle.formula.XPathContext :allowtitles: ``` ## Module Contents ### Classes ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`XPathContext ` - ```{autodoc2-docstring} arelle.formula.XPathContext.XPathContext :summary: ``` ```` ### Functions ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`create ` - ```{autodoc2-docstring} arelle.formula.XPathContext.create :summary: ``` ```` ### Data ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`_ ` - ```{autodoc2-docstring} arelle.formula.XPathContext._ :summary: ``` * - {py:obj}`ContextItem ` - ```{autodoc2-docstring} arelle.formula.XPathContext.ContextItem :summary: ``` * - {py:obj}`AtomizedValue ` - ```{autodoc2-docstring} arelle.formula.XPathContext.AtomizedValue :summary: ``` * - {py:obj}`RecursiveContextItem ` - ```{autodoc2-docstring} arelle.formula.XPathContext.RecursiveContextItem :summary: ``` * - {py:obj}`ResultStack ` - ```{autodoc2-docstring} arelle.formula.XPathContext.ResultStack :summary: ``` * - {py:obj}`boolean ` - ```{autodoc2-docstring} arelle.formula.XPathContext.boolean :summary: ``` * - {py:obj}`testTypeCompatibility ` - ```{autodoc2-docstring} arelle.formula.XPathContext.testTypeCompatibility :summary: ``` * - {py:obj}`Trace ` - ```{autodoc2-docstring} arelle.formula.XPathContext.Trace :summary: ``` * - {py:obj}`qnWild ` - ```{autodoc2-docstring} arelle.formula.XPathContext.qnWild :summary: ``` * - {py:obj}`VALUE_OPS ` - ```{autodoc2-docstring} arelle.formula.XPathContext.VALUE_OPS :summary: ``` * - {py:obj}`GENERALCOMPARISON_OPS ` - ```{autodoc2-docstring} arelle.formula.XPathContext.GENERALCOMPARISON_OPS :summary: ``` * - {py:obj}`NODECOMPARISON_OPS ` - ```{autodoc2-docstring} arelle.formula.XPathContext.NODECOMPARISON_OPS :summary: ``` * - {py:obj}`COMBINING_OPS ` - ```{autodoc2-docstring} arelle.formula.XPathContext.COMBINING_OPS :summary: ``` * - {py:obj}`LOGICAL_OPS ` - ```{autodoc2-docstring} arelle.formula.XPathContext.LOGICAL_OPS :summary: ``` * - {py:obj}`UNARY_OPS ` - ```{autodoc2-docstring} arelle.formula.XPathContext.UNARY_OPS :summary: ``` * - {py:obj}`FORSOMEEVERY_OPS ` - ```{autodoc2-docstring} arelle.formula.XPathContext.FORSOMEEVERY_OPS :summary: ``` * - {py:obj}`PATH_OPS ` - ```{autodoc2-docstring} arelle.formula.XPathContext.PATH_OPS :summary: ``` * - {py:obj}`SEQUENCE_TYPES ` - ```{autodoc2-docstring} arelle.formula.XPathContext.SEQUENCE_TYPES :summary: ``` * - {py:obj}`GREGORIAN_TYPES ` - ```{autodoc2-docstring} arelle.formula.XPathContext.GREGORIAN_TYPES :summary: ``` ```` ### API ````{py:data} _ :canonical: arelle.formula.XPathContext._ :type: arelle.typing.TypeGetText :value: > None ```{autodoc2-docstring} arelle.formula.XPathContext._ ``` ```` ````{py:data} ContextItem :canonical: arelle.formula.XPathContext.ContextItem :value: > None ```{autodoc2-docstring} arelle.formula.XPathContext.ContextItem ``` ```` ````{py:data} AtomizedValue :canonical: arelle.formula.XPathContext.AtomizedValue :value: > None ```{autodoc2-docstring} arelle.formula.XPathContext.AtomizedValue ``` ```` ````{py:data} RecursiveContextItem :canonical: arelle.formula.XPathContext.RecursiveContextItem :value: > None ```{autodoc2-docstring} arelle.formula.XPathContext.RecursiveContextItem ``` ```` ````{py:data} ResultStack :canonical: arelle.formula.XPathContext.ResultStack :value: > None ```{autodoc2-docstring} arelle.formula.XPathContext.ResultStack ``` ```` ````{py:data} boolean :canonical: arelle.formula.XPathContext.boolean :type: collections.abc.Callable[[arelle.formula.XPathContext.XPathContext, arelle.formula.XPathParser.FormulaToken | None, arelle.formula.XPathContext.ContextItem | None, arelle.formula.XPathContext.ResultStack], bool] | None :value: > None ```{autodoc2-docstring} arelle.formula.XPathContext.boolean ``` ```` ````{py:data} testTypeCompatibility :canonical: arelle.formula.XPathContext.testTypeCompatibility :type: collections.abc.Callable[[arelle.formula.XPathContext.XPathContext, arelle.formula.XPathParser.FormulaToken, str, arelle.formula.XPathContext.ContextItem, arelle.formula.XPathContext.ContextItem], None] | None :value: > None ```{autodoc2-docstring} arelle.formula.XPathContext.testTypeCompatibility ``` ```` ````{py:data} Trace :canonical: arelle.formula.XPathContext.Trace :type: type[arelle.ModelFormulaObject.Trace] | None :value: > None ```{autodoc2-docstring} arelle.formula.XPathContext.Trace ``` ```` ````{py:data} qnWild :canonical: arelle.formula.XPathContext.qnWild :value: > 'qname(...)' ```{autodoc2-docstring} arelle.formula.XPathContext.qnWild ``` ```` `````{py:exception} XPathException(progStep: arelle.formula.XPathParser.FormulaToken | None, code: arelle.ModelValue.QName | str, message: str) :canonical: arelle.formula.XPathContext.XPathException Bases: {py:obj}`Exception` ````{py:method} __repr__() -> str :canonical: arelle.formula.XPathContext.XPathException.__repr__ ```` ````{py:property} sourceErrorIndication :canonical: arelle.formula.XPathContext.XPathException.sourceErrorIndication :type: str ```{autodoc2-docstring} arelle.formula.XPathContext.XPathException.sourceErrorIndication ``` ```` ````` `````{py:exception} FunctionNumArgs(errCode: str = 'err:XPST0017', errText: str | None = None) :canonical: arelle.formula.XPathContext.FunctionNumArgs Bases: {py:obj}`Exception` ````{py:method} __repr__() -> str :canonical: arelle.formula.XPathContext.FunctionNumArgs.__repr__ ```` ````` `````{py:exception} FunctionArgType(argIndex: int | str, expectedType: str, foundObject: str | arelle.ModelValue.QName | collections.abc.Sequence[arelle.formula.XPathParser.FormulaToken] | None = '', errCode: str = 'err:XPTY0004', value: str | None = None) :canonical: arelle.formula.XPathContext.FunctionArgType Bases: {py:obj}`Exception` ````{py:method} __repr__() -> str :canonical: arelle.formula.XPathContext.FunctionArgType.__repr__ ```` ````` `````{py:exception} FunctionNotAvailable(name: str | None = None) :canonical: arelle.formula.XPathContext.FunctionNotAvailable Bases: {py:obj}`Exception` ````{py:method} __repr__() -> str :canonical: arelle.formula.XPathContext.FunctionNotAvailable.__repr__ ```` ````` `````{py:exception} RunTimeExceededException() :canonical: arelle.formula.XPathContext.RunTimeExceededException Bases: {py:obj}`Exception` ````{py:method} __repr__() -> str :canonical: arelle.formula.XPathContext.RunTimeExceededException.__repr__ ```` ````` ````{py:function} create(modelXbrl: arelle.ModelXbrl.ModelXbrl, inputXbrlInstance: arelle.ModelDocument.ModelDocument | None = None, sourceElement: arelle.ModelObject.ModelObject | None = None) -> XPathContext :canonical: arelle.formula.XPathContext.create ```{autodoc2-docstring} arelle.formula.XPathContext.create ``` ```` ````{py:data} VALUE_OPS :canonical: arelle.formula.XPathContext.VALUE_OPS :value: > None ```{autodoc2-docstring} arelle.formula.XPathContext.VALUE_OPS ``` ```` ````{py:data} GENERALCOMPARISON_OPS :canonical: arelle.formula.XPathContext.GENERALCOMPARISON_OPS :value: > None ```{autodoc2-docstring} arelle.formula.XPathContext.GENERALCOMPARISON_OPS ``` ```` ````{py:data} NODECOMPARISON_OPS :canonical: arelle.formula.XPathContext.NODECOMPARISON_OPS :value: > None ```{autodoc2-docstring} arelle.formula.XPathContext.NODECOMPARISON_OPS ``` ```` ````{py:data} COMBINING_OPS :canonical: arelle.formula.XPathContext.COMBINING_OPS :value: > None ```{autodoc2-docstring} arelle.formula.XPathContext.COMBINING_OPS ``` ```` ````{py:data} LOGICAL_OPS :canonical: arelle.formula.XPathContext.LOGICAL_OPS :value: > None ```{autodoc2-docstring} arelle.formula.XPathContext.LOGICAL_OPS ``` ```` ````{py:data} UNARY_OPS :canonical: arelle.formula.XPathContext.UNARY_OPS :value: > None ```{autodoc2-docstring} arelle.formula.XPathContext.UNARY_OPS ``` ```` ````{py:data} FORSOMEEVERY_OPS :canonical: arelle.formula.XPathContext.FORSOMEEVERY_OPS :value: > None ```{autodoc2-docstring} arelle.formula.XPathContext.FORSOMEEVERY_OPS ``` ```` ````{py:data} PATH_OPS :canonical: arelle.formula.XPathContext.PATH_OPS :value: > None ```{autodoc2-docstring} arelle.formula.XPathContext.PATH_OPS ``` ```` ````{py:data} SEQUENCE_TYPES :canonical: arelle.formula.XPathContext.SEQUENCE_TYPES :value: > () ```{autodoc2-docstring} arelle.formula.XPathContext.SEQUENCE_TYPES ``` ```` ````{py:data} GREGORIAN_TYPES :canonical: arelle.formula.XPathContext.GREGORIAN_TYPES :value: > () ```{autodoc2-docstring} arelle.formula.XPathContext.GREGORIAN_TYPES ``` ```` `````{py:class} XPathContext(modelXbrl: arelle.ModelXbrl.ModelXbrl, inputXbrlInstance: arelle.ModelDocument.ModelDocument, sourceElement: arelle.ModelObject.ModelObject | None, inScopeVars: dict[arelle.ModelValue.QName, arelle.ModelXbrl.ModelXbrl | arelle.ModelObject.ModelObject | int | str] | None = None, factAspectsCache: arelle.formula.FactAspectsCache.FactAspectsCache | None = None) :canonical: arelle.formula.XPathContext.XPathContext ```{autodoc2-docstring} arelle.formula.XPathContext.XPathContext ``` ```{rubric} Initialization ``` ```{autodoc2-docstring} arelle.formula.XPathContext.XPathContext.__init__ ``` ````{py:method} copy() -> arelle.formula.XPathContext.XPathContext :canonical: arelle.formula.XPathContext.XPathContext.copy ```{autodoc2-docstring} arelle.formula.XPathContext.XPathContext.copy ``` ```` ````{py:method} close() -> None :canonical: arelle.formula.XPathContext.XPathContext.close ```{autodoc2-docstring} arelle.formula.XPathContext.XPathContext.close ``` ```` ````{py:method} runTimeExceededCallback() -> None :canonical: arelle.formula.XPathContext.XPathContext.runTimeExceededCallback ```{autodoc2-docstring} arelle.formula.XPathContext.XPathContext.runTimeExceededCallback ``` ```` ````{py:property} formulaOptions :canonical: arelle.formula.XPathContext.XPathContext.formulaOptions :type: arelle.ModelFormulaObject.FormulaOptions ```{autodoc2-docstring} arelle.formula.XPathContext.XPathContext.formulaOptions ``` ```` ````{py:method} evaluate(exprStack: collections.abc.Iterable[arelle.formula.XPathParser.FormulaToken], contextItem: arelle.formula.XPathContext.ContextItem | None = None, resultStack: arelle.formula.XPathContext.ResultStack | None = None, parentOp: str | None = None) -> arelle.formula.XPathContext.ResultStack :canonical: arelle.formula.XPathContext.XPathContext.evaluate ```{autodoc2-docstring} arelle.formula.XPathContext.XPathContext.evaluate ``` ```` ````{py:method} evaluateBooleanValue(exprStack: collections.abc.Sequence[arelle.formula.XPathParser.FormulaToken], contextItem: arelle.formula.XPathContext.ContextItem | None = None) -> bool :canonical: arelle.formula.XPathContext.XPathContext.evaluateBooleanValue ```{autodoc2-docstring} arelle.formula.XPathContext.XPathContext.evaluateBooleanValue ``` ```` ````{py:method} evaluateAtomicValue(exprStack: collections.abc.Sequence[arelle.formula.XPathParser.FormulaToken], _type: arelle.ModelValue.QName | str | None, contextItem: arelle.formula.XPathContext.ContextItem | None = None, resultMayBeNode: bool = False) -> typing.Any :canonical: arelle.formula.XPathContext.XPathContext.evaluateAtomicValue ```{autodoc2-docstring} arelle.formula.XPathContext.XPathContext.evaluateAtomicValue ``` ```` ````{py:method} evaluateRangeVars(op: str, p: arelle.formula.XPathParser.FormulaToken, args: collections.abc.Sequence[arelle.formula.XPathParser.FormulaToken], contextItem: arelle.formula.XPathContext.ContextItem, result: typing.Any) -> None :canonical: arelle.formula.XPathContext.XPathContext.evaluateRangeVars ```{autodoc2-docstring} arelle.formula.XPathContext.XPathContext.evaluateRangeVars ``` ```` ````{py:method} isNodeSequence(x: collections.abc.Iterable[arelle.formula.XPathContext.ContextItem]) -> bool :canonical: arelle.formula.XPathContext.XPathContext.isNodeSequence ```{autodoc2-docstring} arelle.formula.XPathContext.XPathContext.isNodeSequence ``` ```` ````{py:method} stepAxis(op: str | None, p: arelle.formula.XPathParser.FormulaToken, sourceSequence: collections.abc.Iterable[arelle.formula.XPathContext.ContextItem]) -> collections.abc.Sequence[str | arelle.ModelObject.ModelAttribute | arelle.ModelObject.ModelObject] :canonical: arelle.formula.XPathContext.XPathContext.stepAxis ```{autodoc2-docstring} arelle.formula.XPathContext.XPathContext.stepAxis ``` ```` ````{py:method} predicate(p: arelle.formula.XPathParser.OperationDef, sourceSequence: collections.abc.Iterable[arelle.formula.XPathContext.ContextItem]) -> collections.abc.Sequence[arelle.formula.XPathContext.ContextItem] :canonical: arelle.formula.XPathContext.XPathContext.predicate ```{autodoc2-docstring} arelle.formula.XPathContext.XPathContext.predicate ``` ```` ````{py:method} atomize(p: arelle.formula.XPathParser.FormulaToken | None, x: arelle.formula.XPathContext.RecursiveContextItem | None) -> typing.Any :canonical: arelle.formula.XPathContext.XPathContext.atomize ```{autodoc2-docstring} arelle.formula.XPathContext.XPathContext.atomize ``` ```` ````{py:method} effectiveBooleanValue(p: arelle.formula.XPathParser.FormulaToken | None, x: arelle.formula.XPathContext.ResultStack | collections.abc.Sequence[arelle.formula.XPathContext.ContextItem] | None) -> bool :canonical: arelle.formula.XPathContext.XPathContext.effectiveBooleanValue ```{autodoc2-docstring} arelle.formula.XPathContext.XPathContext.effectiveBooleanValue ``` ```` ````{py:method} traceEffectiveVariableValue(elt: arelle.ModelObject.ModelObject, varname: str) -> str | None :canonical: arelle.formula.XPathContext.XPathContext.traceEffectiveVariableValue ```{autodoc2-docstring} arelle.formula.XPathContext.XPathContext.traceEffectiveVariableValue ``` ```` ````{py:method} flattenSequence(x: typing.Any, sequence: list[typing.Any] | None = None) -> list[typing.Any] :canonical: arelle.formula.XPathContext.XPathContext.flattenSequence ```{autodoc2-docstring} arelle.formula.XPathContext.XPathContext.flattenSequence ``` ```` ````{py:method} documentOrderedNodes(x: collections.abc.Iterable[arelle.formula.XPathContext.ContextItem]) -> collections.abc.Sequence[arelle.formula.XPathContext.ContextItem] :canonical: arelle.formula.XPathContext.XPathContext.documentOrderedNodes ```{autodoc2-docstring} arelle.formula.XPathContext.XPathContext.documentOrderedNodes ``` ```` ````{py:method} modelItem(x: arelle.ModelObject.ModelObject) -> arelle.ModelInstanceObject.ModelFact | None :canonical: arelle.formula.XPathContext.XPathContext.modelItem ```{autodoc2-docstring} arelle.formula.XPathContext.XPathContext.modelItem ``` ```` ````{py:method} modelInstance(x: arelle.ModelXbrl.ModelXbrl | arelle.ModelObject.ModelObject | None) -> arelle.ModelXbrl.ModelXbrl | None :canonical: arelle.formula.XPathContext.XPathContext.modelInstance ```{autodoc2-docstring} arelle.formula.XPathContext.XPathContext.modelInstance ``` ```` `````