docs: def get_event_data(self, read_number=None, time_in_seconds=False):
          """ Get event data for the specified (or only) read.
          
          :param read_number: The read number to grab event data for. If this
              is None, and there is only one read, it will grab event data for
              that read.
          :param time_in_seconds: If True, this will convert (if necessary) the
              start and length fields from samples to seconds. If they are already
              in seconds, this option has no effect.
          :return: A tuple containing the event data, and the read attributes.
          """
          read_info = self.handle.status.read_info
          if read_number is None:
              if len(read_info) != 1:
                  raise Exception('Must specify a read number if there is not exactly 1 read.')
              read_number = read_info[0].read_number
          else:
              read_numbers = [info.read_number for info in read_info]
              if read_number not in read_numbers:
                  raise Exception('Specified read does not exist.')
          group = '{}/Reads/Read_{}'.format(self.group_name, read_number)
          attrs = self.handle.get_analysis_attributes(group)
          dataset = self.handle.get_analysis_dataset(group, 'Events', proxy=True)
          if dataset is None:
              raise Exception('Read number {} has no event data.'.format(read_number))
          if time_in_seconds and dataset['start'].dtype.kind in ['i', 'u']:
              channel_info = self.handle.get_channel_info()
              sample_size = 1.0 / channel_info['sampling_rate']
              descr = [(x[0], 'float64') if x[0] in ('start', 'length') else x
                       for x in dataset.dtype.descr]
              with dataset.astype(np.dtype(descr)):
                  data = dataset[()]
              data['start'] *= sample_size
              data['length'] *= sample_size
          else:
              data = dataset[()]
          return data, attrs