# {py:mod}`arelle.FunctionXfi` ```{py:module} arelle.FunctionXfi ``` ```{autodoc2-docstring} arelle.FunctionXfi :allowtitles: ``` ## Module Contents ### Functions ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`call ` - ```{autodoc2-docstring} arelle.FunctionXfi.call :summary: ``` * - {py:obj}`instance ` - ```{autodoc2-docstring} arelle.FunctionXfi.instance :summary: ``` * - {py:obj}`item ` - ```{autodoc2-docstring} arelle.FunctionXfi.item :summary: ``` * - {py:obj}`xbrlTuple ` - ```{autodoc2-docstring} arelle.FunctionXfi.xbrlTuple :summary: ``` * - {py:obj}`item_context ` - ```{autodoc2-docstring} arelle.FunctionXfi.item_context :summary: ``` * - {py:obj}`item_context_element ` - ```{autodoc2-docstring} arelle.FunctionXfi.item_context_element :summary: ``` * - {py:obj}`context ` - ```{autodoc2-docstring} arelle.FunctionXfi.context :summary: ``` * - {py:obj}`unit ` - ```{autodoc2-docstring} arelle.FunctionXfi.unit :summary: ``` * - {py:obj}`unit_numerator ` - ```{autodoc2-docstring} arelle.FunctionXfi.unit_numerator :summary: ``` * - {py:obj}`unit_denominator ` - ```{autodoc2-docstring} arelle.FunctionXfi.unit_denominator :summary: ``` * - {py:obj}`measure_name ` - ```{autodoc2-docstring} arelle.FunctionXfi.measure_name :summary: ``` * - {py:obj}`period ` - ```{autodoc2-docstring} arelle.FunctionXfi.period :summary: ``` * - {py:obj}`context_period ` - ```{autodoc2-docstring} arelle.FunctionXfi.context_period :summary: ``` * - {py:obj}`parent_child ` - ```{autodoc2-docstring} arelle.FunctionXfi.parent_child :summary: ``` * - {py:obj}`is_start_end_period ` - ```{autodoc2-docstring} arelle.FunctionXfi.is_start_end_period :summary: ``` * - {py:obj}`is_forever_period ` - ```{autodoc2-docstring} arelle.FunctionXfi.is_forever_period :summary: ``` * - {py:obj}`is_duration_period ` - ```{autodoc2-docstring} arelle.FunctionXfi.is_duration_period :summary: ``` * - {py:obj}`is_instant_period ` - ```{autodoc2-docstring} arelle.FunctionXfi.is_instant_period :summary: ``` * - {py:obj}`is_period_type ` - ```{autodoc2-docstring} arelle.FunctionXfi.is_period_type :summary: ``` * - {py:obj}`period_start ` - ```{autodoc2-docstring} arelle.FunctionXfi.period_start :summary: ``` * - {py:obj}`period_end ` - ```{autodoc2-docstring} arelle.FunctionXfi.period_end :summary: ``` * - {py:obj}`period_instant ` - ```{autodoc2-docstring} arelle.FunctionXfi.period_instant :summary: ``` * - {py:obj}`period_datetime ` - ```{autodoc2-docstring} arelle.FunctionXfi.period_datetime :summary: ``` * - {py:obj}`entity ` - ```{autodoc2-docstring} arelle.FunctionXfi.entity :summary: ``` * - {py:obj}`context_entity ` - ```{autodoc2-docstring} arelle.FunctionXfi.context_entity :summary: ``` * - {py:obj}`identifier ` - ```{autodoc2-docstring} arelle.FunctionXfi.identifier :summary: ``` * - {py:obj}`context_identifier ` - ```{autodoc2-docstring} arelle.FunctionXfi.context_identifier :summary: ``` * - {py:obj}`entity_identifier ` - ```{autodoc2-docstring} arelle.FunctionXfi.entity_identifier :summary: ``` * - {py:obj}`identifier_value ` - ```{autodoc2-docstring} arelle.FunctionXfi.identifier_value :summary: ``` * - {py:obj}`identifier_scheme ` - ```{autodoc2-docstring} arelle.FunctionXfi.identifier_scheme :summary: ``` * - {py:obj}`fact_identifier_value ` - ```{autodoc2-docstring} arelle.FunctionXfi.fact_identifier_value :summary: ``` * - {py:obj}`fact_identifier_scheme ` - ```{autodoc2-docstring} arelle.FunctionXfi.fact_identifier_scheme :summary: ``` * - {py:obj}`segment ` - ```{autodoc2-docstring} arelle.FunctionXfi.segment :summary: ``` * - {py:obj}`entity_segment ` - ```{autodoc2-docstring} arelle.FunctionXfi.entity_segment :summary: ``` * - {py:obj}`context_segment ` - ```{autodoc2-docstring} arelle.FunctionXfi.context_segment :summary: ``` * - {py:obj}`scenario ` - ```{autodoc2-docstring} arelle.FunctionXfi.scenario :summary: ``` * - {py:obj}`context_scenario ` - ```{autodoc2-docstring} arelle.FunctionXfi.context_scenario :summary: ``` * - {py:obj}`precision ` - ```{autodoc2-docstring} arelle.FunctionXfi.precision :summary: ``` * - {py:obj}`decimals ` - ```{autodoc2-docstring} arelle.FunctionXfi.decimals :summary: ``` * - {py:obj}`infer_precision_decimals ` - ```{autodoc2-docstring} arelle.FunctionXfi.infer_precision_decimals :summary: ``` * - {py:obj}`numeric ` - ```{autodoc2-docstring} arelle.FunctionXfi.numeric :summary: ``` * - {py:obj}`non_numeric ` - ```{autodoc2-docstring} arelle.FunctionXfi.non_numeric :summary: ``` * - {py:obj}`fraction ` - ```{autodoc2-docstring} arelle.FunctionXfi.fraction :summary: ``` * - {py:obj}`conceptProperty ` - ```{autodoc2-docstring} arelle.FunctionXfi.conceptProperty :summary: ``` * - {py:obj}`checkXffFunctionUse ` - ```{autodoc2-docstring} arelle.FunctionXfi.checkXffFunctionUse :summary: ``` * - {py:obj}`uncovered_aspect ` - ```{autodoc2-docstring} arelle.FunctionXfi.uncovered_aspect :summary: ``` * - {py:obj}`has_fallback_value ` - ```{autodoc2-docstring} arelle.FunctionXfi.has_fallback_value :summary: ``` * - {py:obj}`uncovered_non_dimensional_aspects ` - ```{autodoc2-docstring} arelle.FunctionXfi.uncovered_non_dimensional_aspects :summary: ``` * - {py:obj}`uncovered_dimensional_aspects ` - ```{autodoc2-docstring} arelle.FunctionXfi.uncovered_dimensional_aspects :summary: ``` * - {py:obj}`uncovered_aspects ` - ```{autodoc2-docstring} arelle.FunctionXfi.uncovered_aspects :summary: ``` * - {py:obj}`nodesEqual ` - ```{autodoc2-docstring} arelle.FunctionXfi.nodesEqual :summary: ``` * - {py:obj}`setsEqual ` - ```{autodoc2-docstring} arelle.FunctionXfi.setsEqual :summary: ``` * - {py:obj}`identical_nodes ` - ```{autodoc2-docstring} arelle.FunctionXfi.identical_nodes :summary: ``` * - {py:obj}`identical_nodes_test ` - ```{autodoc2-docstring} arelle.FunctionXfi.identical_nodes_test :summary: ``` * - {py:obj}`s_equal ` - ```{autodoc2-docstring} arelle.FunctionXfi.s_equal :summary: ``` * - {py:obj}`s_equal_test ` - ```{autodoc2-docstring} arelle.FunctionXfi.s_equal_test :summary: ``` * - {py:obj}`u_equal ` - ```{autodoc2-docstring} arelle.FunctionXfi.u_equal :summary: ``` * - {py:obj}`u_equal_test ` - ```{autodoc2-docstring} arelle.FunctionXfi.u_equal_test :summary: ``` * - {py:obj}`v_equal ` - ```{autodoc2-docstring} arelle.FunctionXfi.v_equal :summary: ``` * - {py:obj}`v_equal_test ` - ```{autodoc2-docstring} arelle.FunctionXfi.v_equal_test :summary: ``` * - {py:obj}`c_equal ` - ```{autodoc2-docstring} arelle.FunctionXfi.c_equal :summary: ``` * - {py:obj}`c_equal_test ` - ```{autodoc2-docstring} arelle.FunctionXfi.c_equal_test :summary: ``` * - {py:obj}`identical_node_set ` - ```{autodoc2-docstring} arelle.FunctionXfi.identical_node_set :summary: ``` * - {py:obj}`s_equal_set ` - ```{autodoc2-docstring} arelle.FunctionXfi.s_equal_set :summary: ``` * - {py:obj}`v_equal_set ` - ```{autodoc2-docstring} arelle.FunctionXfi.v_equal_set :summary: ``` * - {py:obj}`c_equal_set ` - ```{autodoc2-docstring} arelle.FunctionXfi.c_equal_set :summary: ``` * - {py:obj}`u_equal_set ` - ```{autodoc2-docstring} arelle.FunctionXfi.u_equal_set :summary: ``` * - {py:obj}`x_equal ` - ```{autodoc2-docstring} arelle.FunctionXfi.x_equal :summary: ``` * - {py:obj}`x_equal_test ` - ```{autodoc2-docstring} arelle.FunctionXfi.x_equal_test :summary: ``` * - {py:obj}`duplicate_item ` - ```{autodoc2-docstring} arelle.FunctionXfi.duplicate_item :summary: ``` * - {py:obj}`duplicate_tuple ` - ```{autodoc2-docstring} arelle.FunctionXfi.duplicate_tuple :summary: ``` * - {py:obj}`duplicate_tuple_test ` - ```{autodoc2-docstring} arelle.FunctionXfi.duplicate_tuple_test :summary: ``` * - {py:obj}`p_equal ` - ```{autodoc2-docstring} arelle.FunctionXfi.p_equal :summary: ``` * - {py:obj}`p_equal_test ` - ```{autodoc2-docstring} arelle.FunctionXfi.p_equal_test :summary: ``` * - {py:obj}`cu_equal ` - ```{autodoc2-docstring} arelle.FunctionXfi.cu_equal :summary: ``` * - {py:obj}`cu_equal_test ` - ```{autodoc2-docstring} arelle.FunctionXfi.cu_equal_test :summary: ``` * - {py:obj}`pc_equal ` - ```{autodoc2-docstring} arelle.FunctionXfi.pc_equal :summary: ``` * - {py:obj}`pc_equal_test ` - ```{autodoc2-docstring} arelle.FunctionXfi.pc_equal_test :summary: ``` * - {py:obj}`pcu_equal ` - ```{autodoc2-docstring} arelle.FunctionXfi.pcu_equal :summary: ``` * - {py:obj}`pcu_equal_test ` - ```{autodoc2-docstring} arelle.FunctionXfi.pcu_equal_test :summary: ``` * - {py:obj}`start_equal ` - ```{autodoc2-docstring} arelle.FunctionXfi.start_equal :summary: ``` * - {py:obj}`end_equal ` - ```{autodoc2-docstring} arelle.FunctionXfi.end_equal :summary: ``` * - {py:obj}`taxonomy_refs ` - ```{autodoc2-docstring} arelle.FunctionXfi.taxonomy_refs :summary: ``` * - {py:obj}`date_equal_test ` - ```{autodoc2-docstring} arelle.FunctionXfi.date_equal_test :summary: ``` * - {py:obj}`nodes_correspond ` - ```{autodoc2-docstring} arelle.FunctionXfi.nodes_correspond :summary: ``` * - {py:obj}`facts_in_instance ` - ```{autodoc2-docstring} arelle.FunctionXfi.facts_in_instance :summary: ``` * - {py:obj}`items_in_instance ` - ```{autodoc2-docstring} arelle.FunctionXfi.items_in_instance :summary: ``` * - {py:obj}`tuples_in_instance ` - ```{autodoc2-docstring} arelle.FunctionXfi.tuples_in_instance :summary: ``` * - {py:obj}`items_in_tuple ` - ```{autodoc2-docstring} arelle.FunctionXfi.items_in_tuple :summary: ``` * - {py:obj}`tuples_in_tuple ` - ```{autodoc2-docstring} arelle.FunctionXfi.tuples_in_tuple :summary: ``` * - {py:obj}`non_nil_facts_in_instance ` - ```{autodoc2-docstring} arelle.FunctionXfi.non_nil_facts_in_instance :summary: ``` * - {py:obj}`concept ` - ```{autodoc2-docstring} arelle.FunctionXfi.concept :summary: ``` * - {py:obj}`concept_balance ` - ```{autodoc2-docstring} arelle.FunctionXfi.concept_balance :summary: ``` * - {py:obj}`concept_period_type ` - ```{autodoc2-docstring} arelle.FunctionXfi.concept_period_type :summary: ``` * - {py:obj}`concept_custom_attribute ` - ```{autodoc2-docstring} arelle.FunctionXfi.concept_custom_attribute :summary: ``` * - {py:obj}`concept_data_type ` - ```{autodoc2-docstring} arelle.FunctionXfi.concept_data_type :summary: ``` * - {py:obj}`concept_data_type_derived_from ` - ```{autodoc2-docstring} arelle.FunctionXfi.concept_data_type_derived_from :summary: ``` * - {py:obj}`concept_substitutions ` - ```{autodoc2-docstring} arelle.FunctionXfi.concept_substitutions :summary: ``` * - {py:obj}`concepts_from_local_name ` - ```{autodoc2-docstring} arelle.FunctionXfi.concepts_from_local_name :summary: ``` * - {py:obj}`concepts_from_local_name_pattern ` - ```{autodoc2-docstring} arelle.FunctionXfi.concepts_from_local_name_pattern :summary: ``` * - {py:obj}`filter_member_network_selection ` - ```{autodoc2-docstring} arelle.FunctionXfi.filter_member_network_selection :summary: ``` * - {py:obj}`filter_member_network_members ` - ```{autodoc2-docstring} arelle.FunctionXfi.filter_member_network_members :summary: ``` * - {py:obj}`filter_member_DRS_selection ` - ```{autodoc2-docstring} arelle.FunctionXfi.filter_member_DRS_selection :summary: ``` * - {py:obj}`filter_member_DRS_members ` - ```{autodoc2-docstring} arelle.FunctionXfi.filter_member_DRS_members :summary: ``` * - {py:obj}`dimension_default ` - ```{autodoc2-docstring} arelle.FunctionXfi.dimension_default :summary: ``` * - {py:obj}`fact_segment_remainder ` - ```{autodoc2-docstring} arelle.FunctionXfi.fact_segment_remainder :summary: ``` * - {py:obj}`fact_scenario_remainder ` - ```{autodoc2-docstring} arelle.FunctionXfi.fact_scenario_remainder :summary: ``` * - {py:obj}`fact_dim_value ` - ```{autodoc2-docstring} arelle.FunctionXfi.fact_dim_value :summary: ``` * - {py:obj}`fact_has_explicit_dimension ` - ```{autodoc2-docstring} arelle.FunctionXfi.fact_has_explicit_dimension :summary: ``` * - {py:obj}`fact_has_typed_dimension ` - ```{autodoc2-docstring} arelle.FunctionXfi.fact_has_typed_dimension :summary: ``` * - {py:obj}`fact_explicit_dimension_value_value ` - ```{autodoc2-docstring} arelle.FunctionXfi.fact_explicit_dimension_value_value :summary: ``` * - {py:obj}`fact_has_explicit_dimension_value ` - ```{autodoc2-docstring} arelle.FunctionXfi.fact_has_explicit_dimension_value :summary: ``` * - {py:obj}`fact_explicit_dimension_value ` - ```{autodoc2-docstring} arelle.FunctionXfi.fact_explicit_dimension_value :summary: ``` * - {py:obj}`fact_typed_dimension_value ` - ```{autodoc2-docstring} arelle.FunctionXfi.fact_typed_dimension_value :summary: ``` * - {py:obj}`fact_typed_dimension_simple_value ` - ```{autodoc2-docstring} arelle.FunctionXfi.fact_typed_dimension_simple_value :summary: ``` * - {py:obj}`fact_explicit_dimensions ` - ```{autodoc2-docstring} arelle.FunctionXfi.fact_explicit_dimensions :summary: ``` * - {py:obj}`fact_typed_dimensions ` - ```{autodoc2-docstring} arelle.FunctionXfi.fact_typed_dimensions :summary: ``` * - {py:obj}`fact_dimension_s_equal2 ` - ```{autodoc2-docstring} arelle.FunctionXfi.fact_dimension_s_equal2 :summary: ``` * - {py:obj}`linkbase_link_roles ` - ```{autodoc2-docstring} arelle.FunctionXfi.linkbase_link_roles :summary: ``` * - {py:obj}`navigate_relationships ` - ```{autodoc2-docstring} arelle.FunctionXfi.navigate_relationships :summary: ``` * - {py:obj}`concept_label ` - ```{autodoc2-docstring} arelle.FunctionXfi.concept_label :summary: ``` * - {py:obj}`arcrole_definition ` - ```{autodoc2-docstring} arelle.FunctionXfi.arcrole_definition :summary: ``` * - {py:obj}`role_definition ` - ```{autodoc2-docstring} arelle.FunctionXfi.role_definition :summary: ``` * - {py:obj}`fact_footnotes ` - ```{autodoc2-docstring} arelle.FunctionXfi.fact_footnotes :summary: ``` * - {py:obj}`concept_relationships ` - ```{autodoc2-docstring} arelle.FunctionXfi.concept_relationships :summary: ``` * - {py:obj}`concept_relationships_step ` - ```{autodoc2-docstring} arelle.FunctionXfi.concept_relationships_step :summary: ``` * - {py:obj}`relationship_from_concept ` - ```{autodoc2-docstring} arelle.FunctionXfi.relationship_from_concept :summary: ``` * - {py:obj}`relationship_to_concept ` - ```{autodoc2-docstring} arelle.FunctionXfi.relationship_to_concept :summary: ``` * - {py:obj}`distinct_nonAbstract_parent_concepts ` - ```{autodoc2-docstring} arelle.FunctionXfi.distinct_nonAbstract_parent_concepts :summary: ``` * - {py:obj}`relationship_element_attribute ` - ```{autodoc2-docstring} arelle.FunctionXfi.relationship_element_attribute :summary: ``` * - {py:obj}`element_attribute ` - ```{autodoc2-docstring} arelle.FunctionXfi.element_attribute :summary: ``` * - {py:obj}`relationship_attribute ` - ```{autodoc2-docstring} arelle.FunctionXfi.relationship_attribute :summary: ``` * - {py:obj}`relationship_link_attribute ` - ```{autodoc2-docstring} arelle.FunctionXfi.relationship_link_attribute :summary: ``` * - {py:obj}`element_name ` - ```{autodoc2-docstring} arelle.FunctionXfi.element_name :summary: ``` * - {py:obj}`relationship_name ` - ```{autodoc2-docstring} arelle.FunctionXfi.relationship_name :summary: ``` * - {py:obj}`relationship_link_name ` - ```{autodoc2-docstring} arelle.FunctionXfi.relationship_link_name :summary: ``` * - {py:obj}`xbrl_instance ` - ```{autodoc2-docstring} arelle.FunctionXfi.xbrl_instance :summary: ``` * - {py:obj}`format_number ` - ```{autodoc2-docstring} arelle.FunctionXfi.format_number :summary: ``` * - {py:obj}`create_element ` - ```{autodoc2-docstring} arelle.FunctionXfi.create_element :summary: ``` * - {py:obj}`any_identifier ` - ```{autodoc2-docstring} arelle.FunctionXfi.any_identifier :summary: ``` * - {py:obj}`unique_identifiers ` - ```{autodoc2-docstring} arelle.FunctionXfi.unique_identifiers :summary: ``` * - {py:obj}`single_unique_identifier ` - ```{autodoc2-docstring} arelle.FunctionXfi.single_unique_identifier :summary: ``` * - {py:obj}`any_start_date ` - ```{autodoc2-docstring} arelle.FunctionXfi.any_start_date :summary: ``` * - {py:obj}`unique_start_dates ` - ```{autodoc2-docstring} arelle.FunctionXfi.unique_start_dates :summary: ``` * - {py:obj}`single_unique_start_date ` - ```{autodoc2-docstring} arelle.FunctionXfi.single_unique_start_date :summary: ``` * - {py:obj}`any_end_date ` - ```{autodoc2-docstring} arelle.FunctionXfi.any_end_date :summary: ``` * - {py:obj}`unique_end_dates ` - ```{autodoc2-docstring} arelle.FunctionXfi.unique_end_dates :summary: ``` * - {py:obj}`single_unique_end_date ` - ```{autodoc2-docstring} arelle.FunctionXfi.single_unique_end_date :summary: ``` * - {py:obj}`any_instant_date ` - ```{autodoc2-docstring} arelle.FunctionXfi.any_instant_date :summary: ``` * - {py:obj}`unique_instant_dates ` - ```{autodoc2-docstring} arelle.FunctionXfi.unique_instant_dates :summary: ``` * - {py:obj}`single_unique_instant_date ` - ```{autodoc2-docstring} arelle.FunctionXfi.single_unique_instant_date :summary: ``` * - {py:obj}`filingIndicatorValues ` - ```{autodoc2-docstring} arelle.FunctionXfi.filingIndicatorValues :summary: ``` * - {py:obj}`positive_filing_indicators ` - ```{autodoc2-docstring} arelle.FunctionXfi.positive_filing_indicators :summary: ``` * - {py:obj}`positive_filing_indicator ` - ```{autodoc2-docstring} arelle.FunctionXfi.positive_filing_indicator :summary: ``` * - {py:obj}`negative_filing_indicators ` - ```{autodoc2-docstring} arelle.FunctionXfi.negative_filing_indicators :summary: ``` * - {py:obj}`negative_filing_indicator ` - ```{autodoc2-docstring} arelle.FunctionXfi.negative_filing_indicator :summary: ``` ```` ### Data ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`_ ` - ```{autodoc2-docstring} arelle.FunctionXfi._ :summary: ``` * - {py:obj}`xfiFunctions ` - ```{autodoc2-docstring} arelle.FunctionXfi.xfiFunctions :summary: ``` ```` ### API ````{py:data} _ :canonical: arelle.FunctionXfi._ :type: arelle.typing.TypeGetText :value: > None ```{autodoc2-docstring} arelle.FunctionXfi._ ``` ```` `````{py:exception} xfiFunctionNotAvailable() :canonical: arelle.FunctionXfi.xfiFunctionNotAvailable Bases: {py:obj}`Exception` ````{py:method} __repr__() -> str :canonical: arelle.FunctionXfi.xfiFunctionNotAvailable.__repr__ ```` ````` ````{py:function} call(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, localname: str, args: arelle.formula.XPathContext.ResultStack) -> arelle.formula.XPathContext.RecursiveContextItem :canonical: arelle.FunctionXfi.call ```{autodoc2-docstring} arelle.FunctionXfi.call ``` ```` ````{py:function} instance(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack, i: int = 0) -> arelle.ModelXbrl.ModelXbrl | None :canonical: arelle.FunctionXfi.instance ```{autodoc2-docstring} arelle.FunctionXfi.instance ``` ```` ````{py:function} item(xc: arelle.formula.XPathContext.XPathContext, args: arelle.formula.XPathContext.ResultStack, i: int = 0) -> arelle.ModelInstanceObject.ModelFact | arelle.ModelInstanceObject.ModelInlineFact :canonical: arelle.FunctionXfi.item ```{autodoc2-docstring} arelle.FunctionXfi.item ``` ```` ````{py:function} xbrlTuple(xc: arelle.formula.XPathContext.XPathContext, args: arelle.formula.XPathContext.ResultStack, i: int = 0) -> arelle.ModelInstanceObject.ModelFact | arelle.ModelInstanceObject.ModelInlineFact :canonical: arelle.FunctionXfi.xbrlTuple ```{autodoc2-docstring} arelle.FunctionXfi.xbrlTuple ``` ```` ````{py:function} item_context(xc: arelle.formula.XPathContext.XPathContext, args: arelle.formula.XPathContext.ResultStack, i: int = 0) -> arelle.ModelInstanceObject.ModelContext | None :canonical: arelle.FunctionXfi.item_context ```{autodoc2-docstring} arelle.FunctionXfi.item_context ``` ```` ````{py:function} item_context_element(xc: arelle.formula.XPathContext.XPathContext, args: arelle.formula.XPathContext.ResultStack, name: str) -> arelle.ModelObject.ModelObject | arelle.PrototypeDtsObject.PrototypeObject | None :canonical: arelle.FunctionXfi.item_context_element ```{autodoc2-docstring} arelle.FunctionXfi.item_context_element ``` ```` ````{py:function} context(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack) -> arelle.ModelInstanceObject.ModelContext | None :canonical: arelle.FunctionXfi.context ```{autodoc2-docstring} arelle.FunctionXfi.context ``` ```` ````{py:function} unit(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack) -> arelle.ModelInstanceObject.ModelUnit | list[typing.Any] | None :canonical: arelle.FunctionXfi.unit ```{autodoc2-docstring} arelle.FunctionXfi.unit ``` ```` ````{py:function} unit_numerator(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack) -> collections.abc.Sequence[arelle.ModelObject.ModelObject | arelle.PrototypeDtsObject.PrototypeObject] :canonical: arelle.FunctionXfi.unit_numerator ```{autodoc2-docstring} arelle.FunctionXfi.unit_numerator ``` ```` ````{py:function} unit_denominator(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack) -> list[typing.Any] | collections.abc.Sequence[arelle.ModelObject.ModelObject | arelle.PrototypeDtsObject.PrototypeObject] :canonical: arelle.FunctionXfi.unit_denominator ```{autodoc2-docstring} arelle.FunctionXfi.unit_denominator ``` ```` ````{py:function} measure_name(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack) -> arelle.ModelValue.QName | None :canonical: arelle.FunctionXfi.measure_name ```{autodoc2-docstring} arelle.FunctionXfi.measure_name ``` ```` ````{py:function} period(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack) -> arelle.ModelObject.ModelObject | arelle.PrototypeDtsObject.PrototypeObject | None :canonical: arelle.FunctionXfi.period ```{autodoc2-docstring} arelle.FunctionXfi.period ``` ```` ````{py:function} context_period(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack) -> typing.Any :canonical: arelle.FunctionXfi.context_period ```{autodoc2-docstring} arelle.FunctionXfi.context_period ``` ```` ````{py:function} parent_child(args: arelle.formula.XPathContext.ResultStack, parentName: str, childName: str, findDescendant: bool = False) -> typing.Any :canonical: arelle.FunctionXfi.parent_child ```{autodoc2-docstring} arelle.FunctionXfi.parent_child ``` ```` ````{py:function} is_start_end_period(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack) -> bool :canonical: arelle.FunctionXfi.is_start_end_period ```{autodoc2-docstring} arelle.FunctionXfi.is_start_end_period ``` ```` ````{py:function} is_forever_period(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack) -> bool :canonical: arelle.FunctionXfi.is_forever_period ```{autodoc2-docstring} arelle.FunctionXfi.is_forever_period ``` ```` ````{py:function} is_duration_period(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack) -> bool :canonical: arelle.FunctionXfi.is_duration_period ```{autodoc2-docstring} arelle.FunctionXfi.is_duration_period ``` ```` ````{py:function} is_instant_period(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack) -> bool :canonical: arelle.FunctionXfi.is_instant_period ```{autodoc2-docstring} arelle.FunctionXfi.is_instant_period ``` ```` ````{py:function} is_period_type(args: arelle.formula.XPathContext.ResultStack, periodElement: str | tuple[str, ...]) -> bool :canonical: arelle.FunctionXfi.is_period_type ```{autodoc2-docstring} arelle.FunctionXfi.is_period_type ``` ```` ````{py:function} period_start(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack) -> arelle.ModelValue.DateTime | None :canonical: arelle.FunctionXfi.period_start ```{autodoc2-docstring} arelle.FunctionXfi.period_start ``` ```` ````{py:function} period_end(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack) -> arelle.ModelValue.DateTime | None :canonical: arelle.FunctionXfi.period_end ```{autodoc2-docstring} arelle.FunctionXfi.period_end ``` ```` ````{py:function} period_instant(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack) -> arelle.ModelValue.DateTime | None :canonical: arelle.FunctionXfi.period_instant ```{autodoc2-docstring} arelle.FunctionXfi.period_instant ``` ```` ````{py:function} period_datetime(p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack, periodElement: str | tuple[str, ...]) -> arelle.ModelValue.DateTime | None :canonical: arelle.FunctionXfi.period_datetime ```{autodoc2-docstring} arelle.FunctionXfi.period_datetime ``` ```` ````{py:function} entity(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack) -> arelle.ModelObject.ModelObject | arelle.PrototypeDtsObject.PrototypeObject | None :canonical: arelle.FunctionXfi.entity ```{autodoc2-docstring} arelle.FunctionXfi.entity ``` ```` ````{py:function} context_entity(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack) -> typing.Any :canonical: arelle.FunctionXfi.context_entity ```{autodoc2-docstring} arelle.FunctionXfi.context_entity ``` ```` ````{py:function} identifier(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack) -> arelle.ModelObject.ModelObject | arelle.PrototypeDtsObject.PrototypeObject | None :canonical: arelle.FunctionXfi.identifier ```{autodoc2-docstring} arelle.FunctionXfi.identifier ``` ```` ````{py:function} context_identifier(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack) -> typing.Any :canonical: arelle.FunctionXfi.context_identifier ```{autodoc2-docstring} arelle.FunctionXfi.context_identifier ``` ```` ````{py:function} entity_identifier(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack) -> typing.Any :canonical: arelle.FunctionXfi.entity_identifier ```{autodoc2-docstring} arelle.FunctionXfi.entity_identifier ``` ```` ````{py:function} identifier_value(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack) -> typing.Any :canonical: arelle.FunctionXfi.identifier_value ```{autodoc2-docstring} arelle.FunctionXfi.identifier_value ``` ```` ````{py:function} identifier_scheme(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack) -> arelle.ModelValue.AnyURI | None :canonical: arelle.FunctionXfi.identifier_scheme ```{autodoc2-docstring} arelle.FunctionXfi.identifier_scheme ``` ```` ````{py:function} fact_identifier_value(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack) -> str :canonical: arelle.FunctionXfi.fact_identifier_value ```{autodoc2-docstring} arelle.FunctionXfi.fact_identifier_value ``` ```` ````{py:function} fact_identifier_scheme(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack) -> arelle.ModelValue.AnyURI | None :canonical: arelle.FunctionXfi.fact_identifier_scheme ```{autodoc2-docstring} arelle.FunctionXfi.fact_identifier_scheme ``` ```` ````{py:function} segment(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack) -> arelle.ModelObject.ModelObject | arelle.PrototypeDtsObject.PrototypeObject | tuple[] :canonical: arelle.FunctionXfi.segment ```{autodoc2-docstring} arelle.FunctionXfi.segment ``` ```` ````{py:function} entity_segment(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack) -> typing.Any :canonical: arelle.FunctionXfi.entity_segment ```{autodoc2-docstring} arelle.FunctionXfi.entity_segment ``` ```` ````{py:function} context_segment(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack) -> typing.Any :canonical: arelle.FunctionXfi.context_segment ```{autodoc2-docstring} arelle.FunctionXfi.context_segment ``` ```` ````{py:function} scenario(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack) -> arelle.ModelObject.ModelObject | arelle.PrototypeDtsObject.PrototypeObject | tuple[] :canonical: arelle.FunctionXfi.scenario ```{autodoc2-docstring} arelle.FunctionXfi.scenario ``` ```` ````{py:function} context_scenario(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack) -> typing.Any :canonical: arelle.FunctionXfi.context_scenario ```{autodoc2-docstring} arelle.FunctionXfi.context_scenario ``` ```` ````{py:function} precision(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack) -> str | float | int :canonical: arelle.FunctionXfi.precision ```{autodoc2-docstring} arelle.FunctionXfi.precision ``` ```` ````{py:function} decimals(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack) -> str | float | int :canonical: arelle.FunctionXfi.decimals ```{autodoc2-docstring} arelle.FunctionXfi.decimals ``` ```` ````{py:function} infer_precision_decimals(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack, attrName: str) -> str | float | int :canonical: arelle.FunctionXfi.infer_precision_decimals ```{autodoc2-docstring} arelle.FunctionXfi.infer_precision_decimals ``` ```` ````{py:function} numeric(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack) -> bool :canonical: arelle.FunctionXfi.numeric ```{autodoc2-docstring} arelle.FunctionXfi.numeric ``` ```` ````{py:function} non_numeric(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack) -> bool :canonical: arelle.FunctionXfi.non_numeric ```{autodoc2-docstring} arelle.FunctionXfi.non_numeric ``` ```` ````{py:function} fraction(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack) -> bool :canonical: arelle.FunctionXfi.fraction ```{autodoc2-docstring} arelle.FunctionXfi.fraction ``` ```` ````{py:function} conceptProperty(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack, property: str) -> bool :canonical: arelle.FunctionXfi.conceptProperty ```{autodoc2-docstring} arelle.FunctionXfi.conceptProperty ``` ```` ````{py:function} checkXffFunctionUse(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, functionName: str) -> None :canonical: arelle.FunctionXfi.checkXffFunctionUse ```{autodoc2-docstring} arelle.FunctionXfi.checkXffFunctionUse ``` ```` ````{py:function} uncovered_aspect(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack) -> typing.Any :canonical: arelle.FunctionXfi.uncovered_aspect ```{autodoc2-docstring} arelle.FunctionXfi.uncovered_aspect ``` ```` ````{py:function} has_fallback_value(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack) -> typing.Any :canonical: arelle.FunctionXfi.has_fallback_value ```{autodoc2-docstring} arelle.FunctionXfi.has_fallback_value ``` ```` ````{py:function} uncovered_non_dimensional_aspects(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack) -> list[typing.Any] :canonical: arelle.FunctionXfi.uncovered_non_dimensional_aspects ```{autodoc2-docstring} arelle.FunctionXfi.uncovered_non_dimensional_aspects ``` ```` ````{py:function} uncovered_dimensional_aspects(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack) -> list[typing.Any] :canonical: arelle.FunctionXfi.uncovered_dimensional_aspects ```{autodoc2-docstring} arelle.FunctionXfi.uncovered_dimensional_aspects ``` ```` ````{py:function} uncovered_aspects(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack, dimensionAspects: bool = False) -> list[typing.Any] :canonical: arelle.FunctionXfi.uncovered_aspects ```{autodoc2-docstring} arelle.FunctionXfi.uncovered_aspects ``` ```` ````{py:function} nodesEqual(xc: arelle.formula.XPathContext.XPathContext, args: arelle.formula.XPathContext.ResultStack, test: collections.abc.Callable[[typing.Any, typing.Any], bool], mustBeItems: bool = False, nonItemErrCode: str | None = None) -> bool :canonical: arelle.FunctionXfi.nodesEqual ```{autodoc2-docstring} arelle.FunctionXfi.nodesEqual ``` ```` ````{py:function} setsEqual(xc: arelle.formula.XPathContext.XPathContext, args: arelle.formula.XPathContext.ResultStack, test: collections.abc.Callable[[typing.Any, typing.Any], bool], mustBeItems: bool = False) -> bool :canonical: arelle.FunctionXfi.setsEqual ```{autodoc2-docstring} arelle.FunctionXfi.setsEqual ``` ```` ````{py:function} identical_nodes(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack) -> bool :canonical: arelle.FunctionXfi.identical_nodes ```{autodoc2-docstring} arelle.FunctionXfi.identical_nodes ``` ```` ````{py:function} identical_nodes_test(node1: arelle.ModelObject.ModelObject | arelle.ModelObject.ModelAttribute, node2: arelle.ModelObject.ModelObject | arelle.ModelObject.ModelAttribute) -> bool :canonical: arelle.FunctionXfi.identical_nodes_test ```{autodoc2-docstring} arelle.FunctionXfi.identical_nodes_test ``` ```` ````{py:function} s_equal(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack) -> bool :canonical: arelle.FunctionXfi.s_equal ```{autodoc2-docstring} arelle.FunctionXfi.s_equal ``` ```` ````{py:function} s_equal_test(node1: arelle.ModelObject.ModelObject | arelle.ModelObject.ModelAttribute, node2: arelle.ModelObject.ModelObject | arelle.ModelObject.ModelAttribute) -> bool :canonical: arelle.FunctionXfi.s_equal_test ```{autodoc2-docstring} arelle.FunctionXfi.s_equal_test ``` ```` ````{py:function} u_equal(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack) -> bool :canonical: arelle.FunctionXfi.u_equal ```{autodoc2-docstring} arelle.FunctionXfi.u_equal ``` ```` ````{py:function} u_equal_test(modelItem1: arelle.ModelInstanceObject.ModelFact, modelItem2: arelle.ModelInstanceObject.ModelFact) -> bool :canonical: arelle.FunctionXfi.u_equal_test ```{autodoc2-docstring} arelle.FunctionXfi.u_equal_test ``` ```` ````{py:function} v_equal(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack) -> bool :canonical: arelle.FunctionXfi.v_equal ```{autodoc2-docstring} arelle.FunctionXfi.v_equal ``` ```` ````{py:function} v_equal_test(modelItem1: arelle.ModelInstanceObject.ModelFact, modelItem2: arelle.ModelInstanceObject.ModelFact) -> bool :canonical: arelle.FunctionXfi.v_equal_test ```{autodoc2-docstring} arelle.FunctionXfi.v_equal_test ``` ```` ````{py:function} c_equal(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack) -> bool :canonical: arelle.FunctionXfi.c_equal ```{autodoc2-docstring} arelle.FunctionXfi.c_equal ``` ```` ````{py:function} c_equal_test(modelItem1: arelle.ModelInstanceObject.ModelFact, modelItem2: arelle.ModelInstanceObject.ModelFact) -> bool :canonical: arelle.FunctionXfi.c_equal_test ```{autodoc2-docstring} arelle.FunctionXfi.c_equal_test ``` ```` ````{py:function} identical_node_set(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack) -> bool :canonical: arelle.FunctionXfi.identical_node_set ```{autodoc2-docstring} arelle.FunctionXfi.identical_node_set ``` ```` ````{py:function} s_equal_set(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack) -> bool :canonical: arelle.FunctionXfi.s_equal_set ```{autodoc2-docstring} arelle.FunctionXfi.s_equal_set ``` ```` ````{py:function} v_equal_set(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack) -> bool :canonical: arelle.FunctionXfi.v_equal_set ```{autodoc2-docstring} arelle.FunctionXfi.v_equal_set ``` ```` ````{py:function} c_equal_set(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack) -> bool :canonical: arelle.FunctionXfi.c_equal_set ```{autodoc2-docstring} arelle.FunctionXfi.c_equal_set ``` ```` ````{py:function} u_equal_set(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack) -> bool :canonical: arelle.FunctionXfi.u_equal_set ```{autodoc2-docstring} arelle.FunctionXfi.u_equal_set ``` ```` ````{py:function} x_equal(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack) -> bool :canonical: arelle.FunctionXfi.x_equal ```{autodoc2-docstring} arelle.FunctionXfi.x_equal ``` ```` ````{py:function} x_equal_test(node1: arelle.ModelObject.ModelObject | arelle.ModelObject.ModelAttribute, node2: arelle.ModelObject.ModelObject | arelle.ModelObject.ModelAttribute) -> bool :canonical: arelle.FunctionXfi.x_equal_test ```{autodoc2-docstring} arelle.FunctionXfi.x_equal_test ``` ```` ````{py:function} duplicate_item(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack) -> bool :canonical: arelle.FunctionXfi.duplicate_item ```{autodoc2-docstring} arelle.FunctionXfi.duplicate_item ``` ```` ````{py:function} duplicate_tuple(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack) -> bool :canonical: arelle.FunctionXfi.duplicate_tuple ```{autodoc2-docstring} arelle.FunctionXfi.duplicate_tuple ``` ```` ````{py:function} duplicate_tuple_test(node1: arelle.ModelInstanceObject.ModelFact | arelle.ModelInstanceObject.ModelInlineFact, node2: arelle.ModelInstanceObject.ModelFact | arelle.ModelInstanceObject.ModelInlineFact, topLevel: bool = True) -> bool :canonical: arelle.FunctionXfi.duplicate_tuple_test ```{autodoc2-docstring} arelle.FunctionXfi.duplicate_tuple_test ``` ```` ````{py:function} p_equal(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack) -> bool :canonical: arelle.FunctionXfi.p_equal ```{autodoc2-docstring} arelle.FunctionXfi.p_equal ``` ```` ````{py:function} p_equal_test(node1: typing.Any, node2: typing.Any) -> bool :canonical: arelle.FunctionXfi.p_equal_test ```{autodoc2-docstring} arelle.FunctionXfi.p_equal_test ``` ```` ````{py:function} cu_equal(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack) -> bool :canonical: arelle.FunctionXfi.cu_equal ```{autodoc2-docstring} arelle.FunctionXfi.cu_equal ``` ```` ````{py:function} cu_equal_test(modelItem1: typing.Any, modelItem2: typing.Any) -> bool :canonical: arelle.FunctionXfi.cu_equal_test ```{autodoc2-docstring} arelle.FunctionXfi.cu_equal_test ``` ```` ````{py:function} pc_equal(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack) -> bool :canonical: arelle.FunctionXfi.pc_equal ```{autodoc2-docstring} arelle.FunctionXfi.pc_equal ``` ```` ````{py:function} pc_equal_test(modelItem1: typing.Any, modelItem2: typing.Any) -> bool :canonical: arelle.FunctionXfi.pc_equal_test ```{autodoc2-docstring} arelle.FunctionXfi.pc_equal_test ``` ```` ````{py:function} pcu_equal(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack) -> bool :canonical: arelle.FunctionXfi.pcu_equal ```{autodoc2-docstring} arelle.FunctionXfi.pcu_equal ``` ```` ````{py:function} pcu_equal_test(modelItem1: typing.Any, modelItem2: typing.Any) -> bool :canonical: arelle.FunctionXfi.pcu_equal_test ```{autodoc2-docstring} arelle.FunctionXfi.pcu_equal_test ``` ```` ````{py:function} start_equal(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack) -> bool :canonical: arelle.FunctionXfi.start_equal ```{autodoc2-docstring} arelle.FunctionXfi.start_equal ``` ```` ````{py:function} end_equal(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack) -> bool :canonical: arelle.FunctionXfi.end_equal ```{autodoc2-docstring} arelle.FunctionXfi.end_equal ``` ```` ````{py:function} taxonomy_refs(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack) -> list[typing.Any] :canonical: arelle.FunctionXfi.taxonomy_refs ```{autodoc2-docstring} arelle.FunctionXfi.taxonomy_refs ``` ```` ````{py:function} date_equal_test(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack, instantEndDate: bool) -> bool :canonical: arelle.FunctionXfi.date_equal_test ```{autodoc2-docstring} arelle.FunctionXfi.date_equal_test ``` ```` ````{py:function} nodes_correspond(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack) -> bool :canonical: arelle.FunctionXfi.nodes_correspond ```{autodoc2-docstring} arelle.FunctionXfi.nodes_correspond ``` ```` ````{py:function} facts_in_instance(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack) -> typing.Any :canonical: arelle.FunctionXfi.facts_in_instance ```{autodoc2-docstring} arelle.FunctionXfi.facts_in_instance ``` ```` ````{py:function} items_in_instance(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack) -> list[typing.Any] :canonical: arelle.FunctionXfi.items_in_instance ```{autodoc2-docstring} arelle.FunctionXfi.items_in_instance ``` ```` ````{py:function} tuples_in_instance(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack) -> list[typing.Any] :canonical: arelle.FunctionXfi.tuples_in_instance ```{autodoc2-docstring} arelle.FunctionXfi.tuples_in_instance ``` ```` ````{py:function} items_in_tuple(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack) -> list[typing.Any] :canonical: arelle.FunctionXfi.items_in_tuple ```{autodoc2-docstring} arelle.FunctionXfi.items_in_tuple ``` ```` ````{py:function} tuples_in_tuple(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack) -> list[typing.Any] :canonical: arelle.FunctionXfi.tuples_in_tuple ```{autodoc2-docstring} arelle.FunctionXfi.tuples_in_tuple ``` ```` ````{py:function} non_nil_facts_in_instance(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack) -> list[typing.Any] :canonical: arelle.FunctionXfi.non_nil_facts_in_instance ```{autodoc2-docstring} arelle.FunctionXfi.non_nil_facts_in_instance ``` ```` ````{py:function} concept(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack) -> arelle.ModelDtsObject.ModelConcept :canonical: arelle.FunctionXfi.concept ```{autodoc2-docstring} arelle.FunctionXfi.concept ``` ```` ````{py:function} concept_balance(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack) -> str :canonical: arelle.FunctionXfi.concept_balance ```{autodoc2-docstring} arelle.FunctionXfi.concept_balance ``` ```` ````{py:function} concept_period_type(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack) -> str | None :canonical: arelle.FunctionXfi.concept_period_type ```{autodoc2-docstring} arelle.FunctionXfi.concept_period_type ``` ```` ````{py:function} concept_custom_attribute(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack) -> typing.Any :canonical: arelle.FunctionXfi.concept_custom_attribute ```{autodoc2-docstring} arelle.FunctionXfi.concept_custom_attribute ``` ```` ````{py:function} concept_data_type(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack) -> arelle.ModelValue.QName | tuple[] :canonical: arelle.FunctionXfi.concept_data_type ```{autodoc2-docstring} arelle.FunctionXfi.concept_data_type ``` ```` ````{py:function} concept_data_type_derived_from(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack) -> typing.Any :canonical: arelle.FunctionXfi.concept_data_type_derived_from ```{autodoc2-docstring} arelle.FunctionXfi.concept_data_type_derived_from ``` ```` ````{py:function} concept_substitutions(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack) -> typing.Any :canonical: arelle.FunctionXfi.concept_substitutions ```{autodoc2-docstring} arelle.FunctionXfi.concept_substitutions ``` ```` ````{py:function} concepts_from_local_name(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack) -> list[arelle.ModelValue.QName] :canonical: arelle.FunctionXfi.concepts_from_local_name ```{autodoc2-docstring} arelle.FunctionXfi.concepts_from_local_name ``` ```` ````{py:function} concepts_from_local_name_pattern(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack) -> list[arelle.ModelValue.QName] :canonical: arelle.FunctionXfi.concepts_from_local_name_pattern ```{autodoc2-docstring} arelle.FunctionXfi.concepts_from_local_name_pattern ``` ```` ````{py:function} filter_member_network_selection(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack) -> set[typing.Any] | tuple[] :canonical: arelle.FunctionXfi.filter_member_network_selection ```{autodoc2-docstring} arelle.FunctionXfi.filter_member_network_selection ``` ```` ````{py:function} filter_member_network_members(relationshipSet: typing.Any, fromRels: typing.Any, recurse: bool, members: set[typing.Any] | None = None, relationships: set[typing.Any] | None = None, linkQnames: set[typing.Any] | None = None, arcQnames: set[typing.Any] | None = None) -> None :canonical: arelle.FunctionXfi.filter_member_network_members ```{autodoc2-docstring} arelle.FunctionXfi.filter_member_network_members ``` ```` ````{py:function} filter_member_DRS_selection(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack) -> set[typing.Any] | tuple[] :canonical: arelle.FunctionXfi.filter_member_DRS_selection ```{autodoc2-docstring} arelle.FunctionXfi.filter_member_DRS_selection ``` ```` ````{py:function} filter_member_DRS_members(xc: arelle.formula.XPathContext.XPathContext, fromRels: typing.Any, axis: str, memConcept: arelle.ModelDtsObject.ModelConcept, inSelection: bool, visited: set[typing.Any], memSelectionQnames: set[typing.Any]) -> None :canonical: arelle.FunctionXfi.filter_member_DRS_members ```{autodoc2-docstring} arelle.FunctionXfi.filter_member_DRS_members ``` ```` ````{py:function} dimension_default(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack) -> list[arelle.ModelValue.QName] :canonical: arelle.FunctionXfi.dimension_default ```{autodoc2-docstring} arelle.FunctionXfi.dimension_default ``` ```` ````{py:function} fact_segment_remainder(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack) -> typing.Any :canonical: arelle.FunctionXfi.fact_segment_remainder ```{autodoc2-docstring} arelle.FunctionXfi.fact_segment_remainder ``` ```` ````{py:function} fact_scenario_remainder(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack) -> typing.Any :canonical: arelle.FunctionXfi.fact_scenario_remainder ```{autodoc2-docstring} arelle.FunctionXfi.fact_scenario_remainder ``` ```` ````{py:function} fact_dim_value(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack, dimType: str) -> typing.Any :canonical: arelle.FunctionXfi.fact_dim_value ```{autodoc2-docstring} arelle.FunctionXfi.fact_dim_value ``` ```` ````{py:function} fact_has_explicit_dimension(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack) -> bool :canonical: arelle.FunctionXfi.fact_has_explicit_dimension ```{autodoc2-docstring} arelle.FunctionXfi.fact_has_explicit_dimension ``` ```` ````{py:function} fact_has_typed_dimension(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack) -> bool :canonical: arelle.FunctionXfi.fact_has_typed_dimension ```{autodoc2-docstring} arelle.FunctionXfi.fact_has_typed_dimension ``` ```` ````{py:function} fact_explicit_dimension_value_value(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack) -> arelle.ModelValue.QName :canonical: arelle.FunctionXfi.fact_explicit_dimension_value_value ```{autodoc2-docstring} arelle.FunctionXfi.fact_explicit_dimension_value_value ``` ```` ````{py:function} fact_has_explicit_dimension_value(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack) -> bool :canonical: arelle.FunctionXfi.fact_has_explicit_dimension_value ```{autodoc2-docstring} arelle.FunctionXfi.fact_has_explicit_dimension_value ``` ```` ````{py:function} fact_explicit_dimension_value(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack) -> typing.Any :canonical: arelle.FunctionXfi.fact_explicit_dimension_value ```{autodoc2-docstring} arelle.FunctionXfi.fact_explicit_dimension_value ``` ```` ````{py:function} fact_typed_dimension_value(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack) -> typing.Any :canonical: arelle.FunctionXfi.fact_typed_dimension_value ```{autodoc2-docstring} arelle.FunctionXfi.fact_typed_dimension_value ``` ```` ````{py:function} fact_typed_dimension_simple_value(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack) -> typing.Any :canonical: arelle.FunctionXfi.fact_typed_dimension_simple_value ```{autodoc2-docstring} arelle.FunctionXfi.fact_typed_dimension_simple_value ``` ```` ````{py:function} fact_explicit_dimensions(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack) -> set[typing.Any] :canonical: arelle.FunctionXfi.fact_explicit_dimensions ```{autodoc2-docstring} arelle.FunctionXfi.fact_explicit_dimensions ``` ```` ````{py:function} fact_typed_dimensions(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack) -> set[typing.Any] :canonical: arelle.FunctionXfi.fact_typed_dimensions ```{autodoc2-docstring} arelle.FunctionXfi.fact_typed_dimensions ``` ```` ````{py:function} fact_dimension_s_equal2(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack) -> bool :canonical: arelle.FunctionXfi.fact_dimension_s_equal2 ```{autodoc2-docstring} arelle.FunctionXfi.fact_dimension_s_equal2 ``` ```` ````{py:function} linkbase_link_roles(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack) -> list[typing.Any] | tuple[] :canonical: arelle.FunctionXfi.linkbase_link_roles ```{autodoc2-docstring} arelle.FunctionXfi.linkbase_link_roles ``` ```` ````{py:function} navigate_relationships(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack) -> typing.Any :canonical: arelle.FunctionXfi.navigate_relationships ```{autodoc2-docstring} arelle.FunctionXfi.navigate_relationships ``` ```` ````{py:function} concept_label(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack) -> str | arelle.ModelObject.ModelObject | list[str] | list[arelle.ModelObject.ModelObject] :canonical: arelle.FunctionXfi.concept_label ```{autodoc2-docstring} arelle.FunctionXfi.concept_label ``` ```` ````{py:function} arcrole_definition(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack) -> typing.Any :canonical: arelle.FunctionXfi.arcrole_definition ```{autodoc2-docstring} arelle.FunctionXfi.arcrole_definition ``` ```` ````{py:function} role_definition(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack) -> typing.Any :canonical: arelle.FunctionXfi.role_definition ```{autodoc2-docstring} arelle.FunctionXfi.role_definition ``` ```` ````{py:function} fact_footnotes(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack) -> typing.Any :canonical: arelle.FunctionXfi.fact_footnotes ```{autodoc2-docstring} arelle.FunctionXfi.fact_footnotes ``` ```` ````{py:function} concept_relationships(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack, nestResults: bool = False, targetRole: bool = False) -> typing.Any :canonical: arelle.FunctionXfi.concept_relationships ```{autodoc2-docstring} arelle.FunctionXfi.concept_relationships ``` ```` ````{py:function} concept_relationships_step(xc: arelle.formula.XPathContext.XPathContext, inst: arelle.ModelXbrl.ModelXbrl, relationshipSet: typing.Any, rels: typing.Any, axis: str, generations: typing.Any, result: list[typing.Any], visited: set[typing.Any], nestResults: bool, targetRole: bool) -> None :canonical: arelle.FunctionXfi.concept_relationships_step ```{autodoc2-docstring} arelle.FunctionXfi.concept_relationships_step ``` ```` ````{py:function} relationship_from_concept(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack) -> arelle.ModelValue.QName :canonical: arelle.FunctionXfi.relationship_from_concept ```{autodoc2-docstring} arelle.FunctionXfi.relationship_from_concept ``` ```` ````{py:function} relationship_to_concept(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack) -> arelle.ModelValue.QName :canonical: arelle.FunctionXfi.relationship_to_concept ```{autodoc2-docstring} arelle.FunctionXfi.relationship_to_concept ``` ```` ````{py:function} distinct_nonAbstract_parent_concepts(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack) -> set[arelle.ModelValue.QName] :canonical: arelle.FunctionXfi.distinct_nonAbstract_parent_concepts ```{autodoc2-docstring} arelle.FunctionXfi.distinct_nonAbstract_parent_concepts ``` ```` ````{py:function} relationship_element_attribute(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack, elementParent: bool = False) -> typing.Any :canonical: arelle.FunctionXfi.relationship_element_attribute ```{autodoc2-docstring} arelle.FunctionXfi.relationship_element_attribute ``` ```` ````{py:function} element_attribute(element: arelle.ModelObject.ModelObject, attrQname: arelle.ModelValue.QName) -> typing.Any :canonical: arelle.FunctionXfi.element_attribute ```{autodoc2-docstring} arelle.FunctionXfi.element_attribute ``` ```` ````{py:function} relationship_attribute(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack) -> typing.Any :canonical: arelle.FunctionXfi.relationship_attribute ```{autodoc2-docstring} arelle.FunctionXfi.relationship_attribute ``` ```` ````{py:function} relationship_link_attribute(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack) -> typing.Any :canonical: arelle.FunctionXfi.relationship_link_attribute ```{autodoc2-docstring} arelle.FunctionXfi.relationship_link_attribute ``` ```` ````{py:function} element_name(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack, elementParent: bool = False) -> arelle.ModelValue.QName | None :canonical: arelle.FunctionXfi.element_name ```{autodoc2-docstring} arelle.FunctionXfi.element_name ``` ```` ````{py:function} relationship_name(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack) -> arelle.ModelValue.QName | None :canonical: arelle.FunctionXfi.relationship_name ```{autodoc2-docstring} arelle.FunctionXfi.relationship_name ``` ```` ````{py:function} relationship_link_name(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack) -> arelle.ModelValue.QName | None :canonical: arelle.FunctionXfi.relationship_link_name ```{autodoc2-docstring} arelle.FunctionXfi.relationship_link_name ``` ```` ````{py:function} xbrl_instance(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack) -> typing.Any :canonical: arelle.FunctionXfi.xbrl_instance ```{autodoc2-docstring} arelle.FunctionXfi.xbrl_instance ``` ```` ````{py:function} format_number(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack) -> str :canonical: arelle.FunctionXfi.format_number ```{autodoc2-docstring} arelle.FunctionXfi.format_number ``` ```` ````{py:function} create_element(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack) -> arelle.ModelObject.ModelObject :canonical: arelle.FunctionXfi.create_element ```{autodoc2-docstring} arelle.FunctionXfi.create_element ``` ```` ````{py:function} any_identifier(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack) -> typing.Any :canonical: arelle.FunctionXfi.any_identifier ```{autodoc2-docstring} arelle.FunctionXfi.any_identifier ``` ```` ````{py:function} unique_identifiers(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack) -> list[typing.Any] :canonical: arelle.FunctionXfi.unique_identifiers ```{autodoc2-docstring} arelle.FunctionXfi.unique_identifiers ``` ```` ````{py:function} single_unique_identifier(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack) -> bool :canonical: arelle.FunctionXfi.single_unique_identifier ```{autodoc2-docstring} arelle.FunctionXfi.single_unique_identifier ``` ```` ````{py:function} any_start_date(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack) -> typing.Any :canonical: arelle.FunctionXfi.any_start_date ```{autodoc2-docstring} arelle.FunctionXfi.any_start_date ``` ```` ````{py:function} unique_start_dates(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack) -> list[typing.Any] :canonical: arelle.FunctionXfi.unique_start_dates ```{autodoc2-docstring} arelle.FunctionXfi.unique_start_dates ``` ```` ````{py:function} single_unique_start_date(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack) -> bool :canonical: arelle.FunctionXfi.single_unique_start_date ```{autodoc2-docstring} arelle.FunctionXfi.single_unique_start_date ``` ```` ````{py:function} any_end_date(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack) -> typing.Any :canonical: arelle.FunctionXfi.any_end_date ```{autodoc2-docstring} arelle.FunctionXfi.any_end_date ``` ```` ````{py:function} unique_end_dates(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack) -> list[typing.Any] :canonical: arelle.FunctionXfi.unique_end_dates ```{autodoc2-docstring} arelle.FunctionXfi.unique_end_dates ``` ```` ````{py:function} single_unique_end_date(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack) -> bool :canonical: arelle.FunctionXfi.single_unique_end_date ```{autodoc2-docstring} arelle.FunctionXfi.single_unique_end_date ``` ```` ````{py:function} any_instant_date(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack) -> typing.Any :canonical: arelle.FunctionXfi.any_instant_date ```{autodoc2-docstring} arelle.FunctionXfi.any_instant_date ``` ```` ````{py:function} unique_instant_dates(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack) -> list[typing.Any] :canonical: arelle.FunctionXfi.unique_instant_dates ```{autodoc2-docstring} arelle.FunctionXfi.unique_instant_dates ``` ```` ````{py:function} single_unique_instant_date(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack) -> bool :canonical: arelle.FunctionXfi.single_unique_instant_date ```{autodoc2-docstring} arelle.FunctionXfi.single_unique_instant_date ``` ```` ````{py:function} filingIndicatorValues(inst: arelle.ModelXbrl.ModelXbrl, filedValue: str) -> set[str] :canonical: arelle.FunctionXfi.filingIndicatorValues ```{autodoc2-docstring} arelle.FunctionXfi.filingIndicatorValues ``` ```` ````{py:function} positive_filing_indicators(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack) -> list[str] :canonical: arelle.FunctionXfi.positive_filing_indicators ```{autodoc2-docstring} arelle.FunctionXfi.positive_filing_indicators ``` ```` ````{py:function} positive_filing_indicator(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack) -> bool :canonical: arelle.FunctionXfi.positive_filing_indicator ```{autodoc2-docstring} arelle.FunctionXfi.positive_filing_indicator ``` ```` ````{py:function} negative_filing_indicators(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack) -> list[str] :canonical: arelle.FunctionXfi.negative_filing_indicators ```{autodoc2-docstring} arelle.FunctionXfi.negative_filing_indicators ``` ```` ````{py:function} negative_filing_indicator(xc: arelle.formula.XPathContext.XPathContext, p: arelle.formula.XPathParser.OperationDef, args: arelle.formula.XPathContext.ResultStack) -> bool :canonical: arelle.FunctionXfi.negative_filing_indicator ```{autodoc2-docstring} arelle.FunctionXfi.negative_filing_indicator ``` ```` ````{py:data} xfiFunctions :canonical: arelle.FunctionXfi.xfiFunctions :type: dict[str, collections.abc.Callable[[arelle.formula.XPathContext.XPathContext, arelle.formula.XPathParser.OperationDef, arelle.formula.XPathContext.ResultStack], typing.Any]] :value: > None ```{autodoc2-docstring} arelle.FunctionXfi.xfiFunctions ``` ````