async def get_events(self, event_id=None, max_events=<NUM_LIT:50>):
if event_id is None:<EOL><INDENT>conv_events = self._events[-<NUM_LIT:1> * max_events:]<EOL><DEDENT>else:<EOL><INDENT>conv_event = self.get_event(event_id)<EOL>if self._events[<NUM_LIT:0>].id_ != event_id:<EOL><INDENT>conv_events = self._events[self._events.index(conv_event) + <NUM_LIT:1>:]<EOL><DEDENT>else:<EOL><INDENT>logger.info('<STR_LIT>'<EOL>.format(self.id_, conv_event.timestamp))<EOL>res = await self._client.get_conversation(<EOL>hangouts_pb2.GetConversationRequest(<EOL>request_header=self._client.get_request_header(),<EOL>conversation_spec=hangouts_pb2.ConversationSpec(<EOL>conversation_id=hangouts_pb2.ConversationId(<EOL>id=self.id_<EOL>)<EOL>),<EOL>include_event=True,<EOL>max_events_per_conversation=max_events,<EOL>event_continuation_token=self._event_cont_token<EOL>)<EOL>)<EOL>if res.conversation_state.HasField('<STR_LIT>'):<EOL><INDENT>self.update_conversation(<EOL>res.conversation_state.conversation<EOL>)<EOL><DEDENT>self._event_cont_token = (<EOL>res.conversation_state.event_continuation_token<EOL>)<EOL>conv_events = [self._wrap_event(event) for event<EOL>in res.conversation_state.event]<EOL>logger.info('<STR_LIT>'<EOL>.format(len(conv_events), self.id_))<EOL>for conv_event in reversed(conv_events):<EOL><INDENT>if conv_event.id_ not in self._events_dict:<EOL><INDENT>self._events.insert(<NUM_LIT:0>, conv_event)<EOL>self._events_dict[conv_event.id_] = conv_event<EOL><DEDENT>else:<EOL><INDENT>logger.info(<EOL>'<STR_LIT>',<EOL>self.id_, conv_event.id_<EOL>)<EOL><DEDENT><DEDENT><DEDENT><DEDENT>return conv_events<EOL>
Get events from this conversation.

        Makes a request to load historical events if necessary.

        Args:
            event_id (str): (optional) If provided, return events preceding
                this event, otherwise return the newest events.
            max_events (int): Maximum number of events to return. Defaults to
                50.

        Returns:
            List of :class:`.ConversationEvent` instances, ordered
            newest-first.

        Raises:
            KeyError: If ``event_id`` does not correspond to a known event.
            .NetworkError: If the events could not be requested.