docs: def process_species(self, limit):
          """
          Loop through the xml file and process the species.
          We add elements to the graph, and store the
          id-to-label in the label_hash dict.
          :param limit:
          :return:
          """
          myfile = '/'.join((self.rawdir, self.files['data']['file']))
          fh = gzip.open(myfile, 'rb')
          filereader = io.TextIOWrapper(fh, newline="")
          filereader.readline()  # remove the xml declaration line
          for event, elem in ET.iterparse(filereader):  # iterparse is not deprecated
              # Species ids are == NCBITaxon ids
              self.process_xml_table(
                  elem, 'Species_gb', self._process_species_table_row, limit)
          fh.close()
          return