# {py:mod}`arelle.ValidateXbrlCalcs` ```{py:module} arelle.ValidateXbrlCalcs ``` ```{autodoc2-docstring} arelle.ValidateXbrlCalcs :allowtitles: ``` ## Module Contents ### Classes ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`ValidateCalcsMode ` - ```{autodoc2-docstring} arelle.ValidateXbrlCalcs.ValidateCalcsMode :summary: ``` * - {py:obj}`ValidateXbrlCalcs ` - ```{autodoc2-docstring} arelle.ValidateXbrlCalcs.ValidateXbrlCalcs :summary: ``` ```` ### Functions ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`init ` - ```{autodoc2-docstring} arelle.ValidateXbrlCalcs.init :summary: ``` * - {py:obj}`rangeToStr ` - ```{autodoc2-docstring} arelle.ValidateXbrlCalcs.rangeToStr :summary: ``` * - {py:obj}`validate ` - ```{autodoc2-docstring} arelle.ValidateXbrlCalcs.validate :summary: ``` * - {py:obj}`roundFact ` - ```{autodoc2-docstring} arelle.ValidateXbrlCalcs.roundFact :summary: ``` * - {py:obj}`decimalRound ` - ```{autodoc2-docstring} arelle.ValidateXbrlCalcs.decimalRound :summary: ``` * - {py:obj}`inferredPrecision ` - ```{autodoc2-docstring} arelle.ValidateXbrlCalcs.inferredPrecision :summary: ``` * - {py:obj}`inferredDecimals ` - ```{autodoc2-docstring} arelle.ValidateXbrlCalcs.inferredDecimals :summary: ``` * - {py:obj}`roundValue ` - ```{autodoc2-docstring} arelle.ValidateXbrlCalcs.roundValue :summary: ``` * - {py:obj}`rangeValue ` - ```{autodoc2-docstring} arelle.ValidateXbrlCalcs.rangeValue :summary: ``` * - {py:obj}`insignificantDigits ` - ```{autodoc2-docstring} arelle.ValidateXbrlCalcs.insignificantDigits :summary: ``` * - {py:obj}`wrappedFactWithWeight ` - ```{autodoc2-docstring} arelle.ValidateXbrlCalcs.wrappedFactWithWeight :summary: ``` * - {py:obj}`wrappedSummationAndItems ` - ```{autodoc2-docstring} arelle.ValidateXbrlCalcs.wrappedSummationAndItems :summary: ``` ```` ### Data ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`oimXbrlxeBlockingErrorCodes ` - ```{autodoc2-docstring} arelle.ValidateXbrlCalcs.oimXbrlxeBlockingErrorCodes :summary: ``` * - {py:obj}`numberPattern ` - ```{autodoc2-docstring} arelle.ValidateXbrlCalcs.numberPattern :summary: ``` * - {py:obj}`ZERO ` - ```{autodoc2-docstring} arelle.ValidateXbrlCalcs.ZERO :summary: ``` * - {py:obj}`ONE ` - ```{autodoc2-docstring} arelle.ValidateXbrlCalcs.ONE :summary: ``` * - {py:obj}`TWO ` - ```{autodoc2-docstring} arelle.ValidateXbrlCalcs.TWO :summary: ``` * - {py:obj}`TEN ` - ```{autodoc2-docstring} arelle.ValidateXbrlCalcs.TEN :summary: ``` * - {py:obj}`NaN ` - ```{autodoc2-docstring} arelle.ValidateXbrlCalcs.NaN :summary: ``` * - {py:obj}`floatNaN ` - ```{autodoc2-docstring} arelle.ValidateXbrlCalcs.floatNaN :summary: ``` * - {py:obj}`floatINF ` - ```{autodoc2-docstring} arelle.ValidateXbrlCalcs.floatINF :summary: ``` * - {py:obj}`INCONSISTENT ` - ```{autodoc2-docstring} arelle.ValidateXbrlCalcs.INCONSISTENT :summary: ``` * - {py:obj}`NIL_FACT_SET ` - ```{autodoc2-docstring} arelle.ValidateXbrlCalcs.NIL_FACT_SET :summary: ``` * - {py:obj}`ZERO_RANGE ` - ```{autodoc2-docstring} arelle.ValidateXbrlCalcs.ZERO_RANGE :summary: ``` * - {py:obj}`EMPTY_SET ` - ```{autodoc2-docstring} arelle.ValidateXbrlCalcs.EMPTY_SET :summary: ``` ```` ### API ````{py:function} init() :canonical: arelle.ValidateXbrlCalcs.init ```{autodoc2-docstring} arelle.ValidateXbrlCalcs.init ``` ```` `````{py:class} ValidateCalcsMode :canonical: arelle.ValidateXbrlCalcs.ValidateCalcsMode ```{autodoc2-docstring} arelle.ValidateXbrlCalcs.ValidateCalcsMode ``` ````{py:attribute} NONE :canonical: arelle.ValidateXbrlCalcs.ValidateCalcsMode.NONE :value: > 0 ```{autodoc2-docstring} arelle.ValidateXbrlCalcs.ValidateCalcsMode.NONE ``` ```` ````{py:attribute} XBRL_v2_1_INFER_PRECISION :canonical: arelle.ValidateXbrlCalcs.ValidateCalcsMode.XBRL_v2_1_INFER_PRECISION :value: > 1 ```{autodoc2-docstring} arelle.ValidateXbrlCalcs.ValidateCalcsMode.XBRL_v2_1_INFER_PRECISION ``` ```` ````{py:attribute} XBRL_v2_1 :canonical: arelle.ValidateXbrlCalcs.ValidateCalcsMode.XBRL_v2_1 :value: > 2 ```{autodoc2-docstring} arelle.ValidateXbrlCalcs.ValidateCalcsMode.XBRL_v2_1 ``` ```` ````{py:attribute} XBRL_v2_1_DEDUPLICATE :canonical: arelle.ValidateXbrlCalcs.ValidateCalcsMode.XBRL_v2_1_DEDUPLICATE :value: > 3 ```{autodoc2-docstring} arelle.ValidateXbrlCalcs.ValidateCalcsMode.XBRL_v2_1_DEDUPLICATE ``` ```` ````{py:attribute} ROUND_TO_NEAREST :canonical: arelle.ValidateXbrlCalcs.ValidateCalcsMode.ROUND_TO_NEAREST :value: > 4 ```{autodoc2-docstring} arelle.ValidateXbrlCalcs.ValidateCalcsMode.ROUND_TO_NEAREST ``` ```` ````{py:attribute} TRUNCATION :canonical: arelle.ValidateXbrlCalcs.ValidateCalcsMode.TRUNCATION :value: > 5 ```{autodoc2-docstring} arelle.ValidateXbrlCalcs.ValidateCalcsMode.TRUNCATION ``` ```` ````{py:method} label(enum) :canonical: arelle.ValidateXbrlCalcs.ValidateCalcsMode.label :staticmethod: ```{autodoc2-docstring} arelle.ValidateXbrlCalcs.ValidateCalcsMode.label ``` ```` ````{py:method} menu() :canonical: arelle.ValidateXbrlCalcs.ValidateCalcsMode.menu :staticmethod: ```{autodoc2-docstring} arelle.ValidateXbrlCalcs.ValidateCalcsMode.menu ``` ```` ````` ````{py:data} oimXbrlxeBlockingErrorCodes :canonical: arelle.ValidateXbrlCalcs.oimXbrlxeBlockingErrorCodes :value: > None ```{autodoc2-docstring} arelle.ValidateXbrlCalcs.oimXbrlxeBlockingErrorCodes ``` ```` ````{py:data} numberPattern :canonical: arelle.ValidateXbrlCalcs.numberPattern :value: > 're_compile(...)' ```{autodoc2-docstring} arelle.ValidateXbrlCalcs.numberPattern ``` ```` ````{py:data} ZERO :canonical: arelle.ValidateXbrlCalcs.ZERO :value: > 'Decimal(...)' ```{autodoc2-docstring} arelle.ValidateXbrlCalcs.ZERO ``` ```` ````{py:data} ONE :canonical: arelle.ValidateXbrlCalcs.ONE :value: > 'Decimal(...)' ```{autodoc2-docstring} arelle.ValidateXbrlCalcs.ONE ``` ```` ````{py:data} TWO :canonical: arelle.ValidateXbrlCalcs.TWO :value: > 'Decimal(...)' ```{autodoc2-docstring} arelle.ValidateXbrlCalcs.TWO ``` ```` ````{py:data} TEN :canonical: arelle.ValidateXbrlCalcs.TEN :value: > 'Decimal(...)' ```{autodoc2-docstring} arelle.ValidateXbrlCalcs.TEN ``` ```` ````{py:data} NaN :canonical: arelle.ValidateXbrlCalcs.NaN :value: > 'Decimal(...)' ```{autodoc2-docstring} arelle.ValidateXbrlCalcs.NaN ``` ```` ````{py:data} floatNaN :canonical: arelle.ValidateXbrlCalcs.floatNaN :value: > 'float(...)' ```{autodoc2-docstring} arelle.ValidateXbrlCalcs.floatNaN ``` ```` ````{py:data} floatINF :canonical: arelle.ValidateXbrlCalcs.floatINF :value: > 'float(...)' ```{autodoc2-docstring} arelle.ValidateXbrlCalcs.floatINF ``` ```` ````{py:data} INCONSISTENT :canonical: arelle.ValidateXbrlCalcs.INCONSISTENT :value: > '*inconsistent*' ```{autodoc2-docstring} arelle.ValidateXbrlCalcs.INCONSISTENT ``` ```` ````{py:data} NIL_FACT_SET :canonical: arelle.ValidateXbrlCalcs.NIL_FACT_SET :value: > '*nilFactSet*' ```{autodoc2-docstring} arelle.ValidateXbrlCalcs.NIL_FACT_SET ``` ```` ````{py:data} ZERO_RANGE :canonical: arelle.ValidateXbrlCalcs.ZERO_RANGE :value: > (0, 0, True, True) ```{autodoc2-docstring} arelle.ValidateXbrlCalcs.ZERO_RANGE ``` ```` ````{py:data} EMPTY_SET :canonical: arelle.ValidateXbrlCalcs.EMPTY_SET :value: > 'set(...)' ```{autodoc2-docstring} arelle.ValidateXbrlCalcs.EMPTY_SET ``` ```` ````{py:function} rangeToStr(a, b, inclA, inclB) -> str :canonical: arelle.ValidateXbrlCalcs.rangeToStr ```{autodoc2-docstring} arelle.ValidateXbrlCalcs.rangeToStr ``` ```` ````{py:function} validate(modelXbrl, validateCalcs) -> None :canonical: arelle.ValidateXbrlCalcs.validate ```{autodoc2-docstring} arelle.ValidateXbrlCalcs.validate ``` ```` `````{py:class} ValidateXbrlCalcs(modelXbrl, validateCalcs) :canonical: arelle.ValidateXbrlCalcs.ValidateXbrlCalcs ```{autodoc2-docstring} arelle.ValidateXbrlCalcs.ValidateXbrlCalcs ``` ```{rubric} Initialization ``` ```{autodoc2-docstring} arelle.ValidateXbrlCalcs.ValidateXbrlCalcs.__init__ ``` ````{py:method} validate() :canonical: arelle.ValidateXbrlCalcs.ValidateXbrlCalcs.validate ```{autodoc2-docstring} arelle.ValidateXbrlCalcs.ValidateXbrlCalcs.validate ``` ```` ````{py:method} bindFacts(facts, ancestors) :canonical: arelle.ValidateXbrlCalcs.ValidateXbrlCalcs.bindFacts ```{autodoc2-docstring} arelle.ValidateXbrlCalcs.ValidateXbrlCalcs.bindFacts ``` ```` ````{py:method} consistentFactValueInterval(fList, truncate=False) -> tuple[decimal.Decimal | str, decimal.Decimal | str, bool, bool] :canonical: arelle.ValidateXbrlCalcs.ValidateXbrlCalcs.consistentFactValueInterval ```{autodoc2-docstring} arelle.ValidateXbrlCalcs.ValidateXbrlCalcs.consistentFactValueInterval ``` ```` ````` ````{py:function} roundFact(fact, inferDecimals=False, vDecimal=None) :canonical: arelle.ValidateXbrlCalcs.roundFact ```{autodoc2-docstring} arelle.ValidateXbrlCalcs.roundFact ``` ```` ````{py:function} decimalRound(x, d, rounding) :canonical: arelle.ValidateXbrlCalcs.decimalRound ```{autodoc2-docstring} arelle.ValidateXbrlCalcs.decimalRound ``` ```` ````{py:function} inferredPrecision(fact) :canonical: arelle.ValidateXbrlCalcs.inferredPrecision ```{autodoc2-docstring} arelle.ValidateXbrlCalcs.inferredPrecision ``` ```` ````{py:function} inferredDecimals(fact: arelle.ModelInstanceObject.ModelFact) -> float | int :canonical: arelle.ValidateXbrlCalcs.inferredDecimals ```{autodoc2-docstring} arelle.ValidateXbrlCalcs.inferredDecimals ``` ```` ````{py:function} roundValue(value, precision=None, decimals=None, scale=None) :canonical: arelle.ValidateXbrlCalcs.roundValue ```{autodoc2-docstring} arelle.ValidateXbrlCalcs.roundValue ``` ```` ````{py:function} rangeValue(value, decimals=None, truncate=False) -> tuple[decimal.Decimal, decimal.Decimal, bool, bool] :canonical: arelle.ValidateXbrlCalcs.rangeValue ```{autodoc2-docstring} arelle.ValidateXbrlCalcs.rangeValue ``` ```` ````{py:function} insignificantDigits(value: arelle.ModelValue.TypeXValue, decimals: int | float | _decimal.Decimal | str) -> tuple[_decimal.Decimal, _decimal.Decimal] | None :canonical: arelle.ValidateXbrlCalcs.insignificantDigits ```{autodoc2-docstring} arelle.ValidateXbrlCalcs.insignificantDigits ``` ```` ````{py:function} wrappedFactWithWeight(fact, weight, roundedValue) :canonical: arelle.ValidateXbrlCalcs.wrappedFactWithWeight ```{autodoc2-docstring} arelle.ValidateXbrlCalcs.wrappedFactWithWeight ``` ```` ````{py:function} wrappedSummationAndItems(fact, roundedSum, boundSummationItems) :canonical: arelle.ValidateXbrlCalcs.wrappedSummationAndItems ```{autodoc2-docstring} arelle.ValidateXbrlCalcs.wrappedSummationAndItems ``` ````