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
:param fnames:
        list of source model files
    :param converter:
        a SourceConverter instance
    :param monitor:
        a :class:`openquake.performance.Monitor` instance
    :yields:
        SourceModel instances