def _PackArguments(self, method_name, args, set_type_attrs=False):
    """Properly pack input dictionaries for zeep.

    Pack a list of python dictionaries into XML objects. Dictionaries which
    contain an 'xsi_type' entry are converted into that type instead of the
    argument default. This allows creation of complex objects which include
    inherited types.

    Args:
      method_name: The name of the method that will be called.
      args: A list of dictionaries containing arguments to the method.
      set_type_attrs: A boolean indicating whether or not attributes that end
        in .Type should be set. This is only necessary for batch job service.

    Returns:
      A list of XML objects that can be passed to zeep.
    """
    # Get the params for the method to find the initial types to instantiate.
    op_params = self.zeep_client.get_element(
        '{%s}%s' % (self._GetBindingNamespace(), method_name)).type.elements
    result = [self._PackArgumentsHelper(param, param_data, set_type_attrs)
              for ((_, param), param_data) in izip(op_params, args)]
    return result
Properly pack input dictionaries for zeep.

    Pack a list of python dictionaries into XML objects. Dictionaries which
    contain an 'xsi_type' entry are converted into that type instead of the
    argument default. This allows creation of complex objects which include
    inherited types.

    Args:
      method_name: The name of the method that will be called.
      args: A list of dictionaries containing arguments to the method.
      set_type_attrs: A boolean indicating whether or not attributes that end
        in .Type should be set. This is only necessary for batch job service.

    Returns:
      A list of XML objects that can be passed to zeep.