<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _get_optional_args(args, opts, err_on_missing=False, **kwargs):
 """Convenience function to retrieve arguments from an argparse namespace. Parameters args : list of str List of arguments to retreive. opts : argparse.namespace Namespace to retreive arguments for. err_on_missing : bool, optional If an argument is not found in the namespace, raise an AttributeError. Otherwise, just pass. Default is False. \**kwargs : All other keyword arguments are added to the return dictionary. Any keyword argument that is the same as an argument in ``args`` will override what was retrieved from ``opts``. Returns ------- dict : Dictionary mapping arguments to values retrieved from ``opts``. If keyword arguments were provided, these will also be included in the dictionary. """

        parsed = {}
        for arg in args:
            try:
                parsed[arg] = getattr(opts, arg)
            except AttributeError as e:
                if err_on_missing:
                    raise AttributeError(e)
                else:
                    continue
        parsed.update(kwargs)
        return parsed