code: def set_attributes(self, doc, fields,  # pylint: disable=arguments-differ
              parent_type=None, catch_all_field=None):
          
          if parent_type:
              assert isinstance(parent_type, Union)
  
          super(Union, self).set_attributes(doc, fields, parent_type)
  
          self.catch_all_field = catch_all_field
          self.parent_type = parent_type
docs: :param UnionField catch_all_field: The field designated as the
              catch-all. This field should be a member of the list of fields.
  
          See :meth:`Composite.set_attributes` for parameter definitions.