code: def get_capabilities_for_ext(self, ext, strict_type_matching: bool = False) -> Dict[Type, Dict[str, Parser]]:
          
          r = dict()
          # List all types that can be parsed from this extension.
          for typ in self.get_all_supported_types_for_ext(ext):
              # Use the query to fill
              matching = self.find_all_matching_parsers(strict_type_matching, desired_type=typ, required_ext=ext)[0]
              # matching_list = matching[0] + matching[1] + matching[2]
              # insert_element_to_dict_of_dicts_of_list(res, ext, typ, list(reversed(matching_list)))
              r[typ] = dict()
              exact = list(reversed(matching[2]))
              if len(exact) > 0:
                  r[typ]['1_exact_match'] = exact
  
              approx = list(reversed(matching[1]))
              if len(approx) > 0:
                  r[typ]['2_approx_match'] = approx
  
              generic = list(reversed(matching[0]))
              if len(generic) > 0:
                  r[typ]['3_generic'] = generic
  
              # insert_element_to_dict_of_dicts(res, ext, typ, matching_dict)
          return r
docs: Utility method to return, for a given file extension, all known ways to parse a file with this extension,
          organized by target object type.
  
          :param ext:
          :param strict_type_matching:
          :return: