code: def do_python_eval(self):
          
          annopath = os.path.join(self.data_path, 'Annotations', '{:s}.xml')
          imageset_file = os.path.join(self.data_path, 'ImageSets', 'Main', self.image_set + '.txt')
          cache_dir = os.path.join(self.cache_path, self.name)
          aps = []
          # The PASCAL VOC metric changed in 2010
          use_07_metric = True if int(self.year) < 2010 else False
          print('VOC07 metric? ' + ('Y' if use_07_metric else 'No'))
          for cls_ind, cls in enumerate(self.classes):
              filename = self.get_result_file_template().format(cls)
              rec, prec, ap = voc_eval(filename, annopath, imageset_file, cls, cache_dir,
                                       ovthresh=0.5, use_07_metric=use_07_metric)
              aps += [ap]
              print('AP for {} = {:.4f}'.format(cls, ap))
          print('Mean AP = {:.4f}'.format(np.mean(aps)))
docs: python evaluation wrapper
  
          Returns:
          ----------
          None