code: def _get_optional_args(args, opts, err_on_missing=False, **kwargs):
          
          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
docs: 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.