@classmethod<EOL><INDENT>def read(cls, source, names=None, format=None, **kwargs):<DEDENT>
on_missing = kwargs.pop('<STR_LIT>', '<STR_LIT:error>')<EOL>coalesce = kwargs.pop('<STR_LIT>', False)<EOL>if '<STR_LIT>' in kwargs:  <EOL><INDENT>warnings.warn('<STR_LIT>'<EOL>'<STR_LIT>')<EOL>names = kwargs.pop('<STR_LIT>')<EOL><DEDENT>def combiner(inputs):<EOL><INDENT>out = cls()<EOL>required = set(names or [])<EOL>found = set(name for dqdict in inputs for name in dqdict)<EOL>for name in required - found:  <EOL><INDENT>msg = '<STR_LIT>'.format(name)<EOL>if on_missing == '<STR_LIT:ignore>':<EOL><INDENT>continue<EOL><DEDENT>if on_missing == '<STR_LIT>':<EOL><INDENT>warnings.warn(msg)<EOL><DEDENT>else:<EOL><INDENT>raise ValueError(msg)<EOL><DEDENT><DEDENT>for dqdict in inputs:<EOL><INDENT>for flag in dqdict:<EOL><INDENT>try:  <EOL><INDENT>out[flag].known.extend(dqdict[flag].known)<EOL>out[flag].active.extend(dqdict[flag].active)<EOL><DEDENT>except KeyError:  <EOL><INDENT>out[flag] = dqdict[flag]<EOL><DEDENT><DEDENT><DEDENT>if coalesce:<EOL><INDENT>return out.coalesce()<EOL><DEDENT>return out<EOL><DEDENT>return io_read_multi(combiner, cls, source, names=names,<EOL>format=format, on_missing='<STR_LIT:ignore>', **kwargs)<EOL>
Read segments from file into a `DataQualityDict`

        Parameters
        ----------
        source : `str`
            path of file to read

        format : `str`, optional
            source format identifier. If not given, the format will be
            detected if possible. See below for list of acceptable
            formats.

        names : `list`, optional, default: read all names found
            list of names to read, by default all names are read separately.

        coalesce : `bool`, optional
            if `True` coalesce the all segment lists before returning,
            otherwise return exactly as contained in file(s).

        nproc : `int`, optional, default: 1
            number of CPUs to use for parallel reading of multiple files

        verbose : `bool`, optional, default: `False`
            print a progress bar showing read status

        Returns
        -------
        flagdict : `DataQualityDict`
            a new `DataQualityDict` of `DataQualityFlag` entries with
            ``active`` and ``known`` segments seeded from the XML tables
            in the given file.

        Notes
        -----