docs: def get_past_events(self):
          """
          Get past PythonKC meetup events.
  
          Returns
          -------
          List of ``pythonkc_meetups.types.MeetupEvent``, ordered by event time,
          descending.
  
          Exceptions
          ----------
          * PythonKCMeetupsBadJson
          * PythonKCMeetupsBadResponse
          * PythonKCMeetupsMeetupDown
          * PythonKCMeetupsNotJson
          * PythonKCMeetupsRateLimitExceeded
  
          """
  
          def get_attendees(event):
              return [attendee for event_id, attendee in events_attendees
                      if event_id == event['id']]
  
          def get_photos(event):
              return [photo for event_id, photo in events_photos
                      if event_id == event['id']]
  
          params = {'key': self._api_key,
                    'group_urlname': GROUP_URLNAME,
                    'status': 'past',
                    'desc': 'true'}
          if self._num_past_events:
              params['page'] = str(self._num_past_events)
          query = urllib.urlencode(params)
          url = '{0}?{1}'.format(EVENTS_URL, query)
          data = self._http_get_json(url)
  
          events = data['results']
          event_ids = [event['id'] for event in events]
  
          events_attendees = self.get_events_attendees(event_ids)
          events_photos = self.get_events_photos(event_ids)
  
          return [parse_event(event, get_attendees(event), get_photos(event))
                  for event in events]