def add(self, attendees):
if attendees:<EOL><INDENT>if isinstance(attendees, str):<EOL><INDENT>self.__attendees.append(<EOL>Attendee(address=attendees, event=self._event))<EOL>self._track_changes()<EOL><DEDENT>elif isinstance(attendees, Attendee):<EOL><INDENT>self.__attendees.append(attendees)<EOL>self._track_changes()<EOL><DEDENT>elif isinstance(attendees, tuple):<EOL><INDENT>name, address = attendees<EOL>if address:<EOL><INDENT>self.__attendees.append(<EOL>Attendee(address=address, name=name, event=self._event))<EOL>self._track_changes()<EOL><DEDENT><DEDENT>elif isinstance(attendees, list):<EOL><INDENT>for attendee in attendees:<EOL><INDENT>self.add(attendee)<EOL><DEDENT><DEDENT>elif isinstance(attendees,<EOL>dict) and self._cloud_data_key in attendees:<EOL><INDENT>attendees = attendees.get(self._cloud_data_key)<EOL>for attendee in attendees:<EOL><INDENT>email = attendee.get(self._cc('<STR_LIT>'), {})<EOL>address = email.get(self._cc('<STR_LIT:address>'), None)<EOL>if address:<EOL><INDENT>name = email.get(self._cc('<STR_LIT:name>'), None)<EOL>attendee_type = attendee.get(self._cc('<STR_LIT:type>'),<EOL>'<STR_LIT>')<EOL>self.__attendees.append(<EOL>Attendee(address=address, name=name,<EOL>attendee_type=attendee_type,<EOL>event=self._event,<EOL>response_status=<EOL>ResponseStatus(parent=self,<EOL>response_status=<EOL>attendee.get(<EOL>self._cc('<STR_LIT:status>'),<EOL>{}))))<EOL><DEDENT><DEDENT><DEDENT>else:<EOL><INDENT>raise ValueError('<STR_LIT>'<EOL>'<STR_LIT>'<EOL>'<STR_LIT>')<EOL><DEDENT><DEDENT>
Add attendees to the parent event

        :param attendees: list of attendees to add
        :type attendees: str or tuple(str, str) or Attendee or list[str] or
         list[tuple(str,str)] or list[Attendee]