docs: def read_source_models(fnames, converter, monitor):
      """
      :param fnames:
          list of source model files
      :param converter:
          a SourceConverter instance
      :param monitor:
          a :class:`openquake.performance.Monitor` instance
      :yields:
          SourceModel instances
      """
      for fname in fnames:
          if fname.endswith(('.xml', '.nrml')):
              sm = to_python(fname, converter)
          elif fname.endswith('.hdf5'):
              sm = sourceconverter.to_python(fname, converter)
          else:
              raise ValueError('Unrecognized extension in %s' % fname)
          sm.fname = fname
          yield sm