code: def find_required_filehandlers(self, requirements, filename_info):
          
          req_fh = []
          filename_info = set(filename_info.items())
          if requirements:
              for requirement in requirements:
                  for fhd in self.file_handlers[requirement]:
                      if set(fhd.filename_info.items()).issubset(filename_info):
                          req_fh.append(fhd)
                          break
                  else:
                      raise RuntimeError("No matching requirement file of type "
                                         "{}".format(requirement))
                      # break everything and continue to next
                      # filetype!
          return req_fh
docs: Find the necessary file handlers for the given requirements.
  
          We assume here requirements are available.
  
          Raises:
              KeyError, if no handler for the given requirements is available.
              RuntimeError, if there is a handler for the given requirements,
              but it doesn't match the filename info.