# {py:mod}`arelle.utils.Equivalence` ```{py:module} arelle.utils.Equivalence ``` ```{autodoc2-docstring} arelle.utils.Equivalence :allowtitles: ``` ## Module Contents ### Functions ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`partitionIntoEquivalenceClasses ` - ```{autodoc2-docstring} arelle.utils.Equivalence.partitionIntoEquivalenceClasses :summary: ``` ```` ### Data ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`T ` - ```{autodoc2-docstring} arelle.utils.Equivalence.T :summary: ``` * - {py:obj}`K ` - ```{autodoc2-docstring} arelle.utils.Equivalence.K :summary: ``` ```` ### API ````{py:data} T :canonical: arelle.utils.Equivalence.T :value: > 'TypeVar(...)' ```{autodoc2-docstring} arelle.utils.Equivalence.T ``` ```` ````{py:data} K :canonical: arelle.utils.Equivalence.K :value: > 'TypeVar(...)' ```{autodoc2-docstring} arelle.utils.Equivalence.K ``` ```` ````{py:function} partitionIntoEquivalenceClasses(items: collections.abc.Iterable[arelle.utils.Equivalence.T], key: typing.Callable[[arelle.utils.Equivalence.T], arelle.utils.Equivalence.K]) -> dict[arelle.utils.Equivalence.K, tuple[arelle.utils.Equivalence.T, ...]] :canonical: arelle.utils.Equivalence.partitionIntoEquivalenceClasses ```{autodoc2-docstring} arelle.utils.Equivalence.partitionIntoEquivalenceClasses ``` ````