@staticmethod<EOL><INDENT>def from_overlays(overlays):<DEDENT>
jc = JobConfig()<EOL>jc.comment = overlays.get('<STR_LIT>')<EOL>if '<STR_LIT>' in overlays:<EOL><INDENT>if len(overlays['<STR_LIT>']) >= <NUM_LIT:1>:<EOL><INDENT>jco = copy.deepcopy(overlays['<STR_LIT>'][<NUM_LIT:0>])<EOL>if '<STR_LIT>' in jco:<EOL><INDENT>_jc = jco['<STR_LIT>']<EOL>jc.job_name = _jc.pop('<STR_LIT>', None)<EOL>jc.job_group = _jc.pop('<STR_LIT>', None)<EOL>jc.preload = _jc.pop('<STR_LIT>', False)<EOL>jc.data_directory = _jc.pop('<STR_LIT>', None)<EOL>jc.tracing = _jc.pop('<STR_LIT>', None)<EOL>for sp in _jc.pop('<STR_LIT>', []):<EOL><INDENT>jc.submission_parameters[sp['<STR_LIT:name>']] = sp['<STR_LIT:value>']<EOL><DEDENT>if not _jc:<EOL><INDENT>del jco['<STR_LIT>']<EOL><DEDENT><DEDENT>if '<STR_LIT>' in jco:<EOL><INDENT>_dc = jco['<STR_LIT>']<EOL>if '<STR_LIT>' == _dc.get('<STR_LIT>'):<EOL><INDENT>if '<STR_LIT>' in _dc:<EOL><INDENT>jc.target_pe_count = _dc.pop('<STR_LIT>')<EOL><DEDENT>if len(_dc) == <NUM_LIT:1>:<EOL><INDENT>del jco['<STR_LIT>']<EOL><DEDENT><DEDENT><DEDENT>if jco:<EOL><INDENT>jc.raw_overlay = jco<EOL><DEDENT><DEDENT><DEDENT>return jc<EOL>
Create a `JobConfig` instance from a full job configuration
        overlays object.

        All logical items, such as ``comment`` and ``job_name``, are
        extracted from `overlays`. The remaining information in the
        single job config overlay in ``overlays`` is set as ``raw_overlay``.

        Args:
            overlays(dict): Full job configuration overlays object.

        Returns:
            JobConfig: Instance representing logical view of `overlays`.

        .. versionadded:: 1.9