def _merge_configuration(self, parent_config, child_options):
<EOL>error_codes = copy.deepcopy(parent_config.checked_codes)<EOL>if self._has_exclusive_option(child_options):<EOL><INDENT>error_codes = self._get_exclusive_error_codes(child_options)<EOL><DEDENT>self._set_add_options(error_codes, child_options)<EOL>kwargs = dict(checked_codes=error_codes)<EOL>for key in ('<STR_LIT>', '<STR_LIT>', '<STR_LIT>'):<EOL><INDENT>kwargs[key] =getattr(child_options, key) or getattr(parent_config, key)<EOL><DEDENT>return CheckConfiguration(**kwargs)<EOL>
Merge parent config into the child options.

        The migration process requires an `options` object for the child in
        order to distinguish between mutually exclusive codes, add-select and
        add-ignore error codes.