def get_all_conversion_chains(self, from_type: Type[Any] = JOKER, to_type: Type[Any] = JOKER)-> Tuple[List[Converter], List[Converter], List[Converter]]:
if from_type is JOKER and to_type is JOKER:<EOL><INDENT>matching_dest_generic = self._generic_nonstrict_conversion_chains.copy() +self._generic_conversion_chains.copy()<EOL>matching_dest_approx = []<EOL>matching_dest_exact = self._specific_non_strict_conversion_chains.copy() +self._specific_conversion_chains.copy()<EOL><DEDENT>else:<EOL><INDENT>matching_dest_generic, matching_dest_approx, matching_dest_exact = [], [], []<EOL>to_type = get_validated_type(to_type, '<STR_LIT>', enforce_not_joker=False)<EOL>for c in (self._generic_nonstrict_conversion_chains + self._generic_conversion_chains):<EOL><INDENT>match, source_exact, dest_exact = c.is_able_to_convert_detailed(strict=self.strict,<EOL>from_type=from_type,<EOL>to_type=to_type)<EOL>if match:<EOL><INDENT>if is_any_type(to_type):<EOL><INDENT>matching_dest_exact.append(c)<EOL><DEDENT>else:<EOL><INDENT>matching_dest_generic.append(c)<EOL><DEDENT><DEDENT><DEDENT>for c in (self._specific_non_strict_conversion_chains + self._specific_conversion_chains):<EOL><INDENT>match, source_exact, dest_exact = c.is_able_to_convert_detailed(strict=self.strict,<EOL>from_type=from_type,<EOL>to_type=to_type)<EOL>if match:<EOL><INDENT>if not is_any_type(to_type):<EOL><INDENT>if dest_exact:<EOL><INDENT>matching_dest_exact.append(c)<EOL><DEDENT>else:<EOL><INDENT>matching_dest_approx.append(c)<EOL><DEDENT><DEDENT>else:<EOL><INDENT>pass<EOL><DEDENT><DEDENT><DEDENT><DEDENT>return matching_dest_generic, matching_dest_approx, matching_dest_exact<EOL>
Utility method to find matching converters or conversion chains.

:param from_type: a required type of input object, or JOKER for 'wildcard'(*) .
WARNING: "from_type=AnyObject/object/Any" means
"all converters able to source from anything", which is different from "from_type=JOKER" which means "all
converters whatever their source type".
:param to_type: a required type of output object, or JOKER for 'wildcard'(*) .
WARNING: "to_type=AnyObject/object/Any" means "all
converters able to produce any type of object", which is different from "to_type=JOKER" which means "all
converters whatever type they are able to produce".
:return: a tuple of lists of matching converters, by type of *dest_type* match : generic, approximate, exact.
The order of each list is from *less relevant* to *most relevant*