code: def _process_stages(self, limit=None):
          
  
          if self.test_mode:
              graph = self.testgraph
          else:
              graph = self.graph
          model = Model(graph)
          LOG.info("Processing stages")
          line_counter = 0
          raw = '/'.join((self.rawdir, self.files['stage']['file']))
          with open(raw, 'r', encoding="iso-8859-1") as csvfile:
              filereader = csv.reader(csvfile, delimiter='\t', quotechar='\"')
              for row in filereader:
                  line_counter += 1
                  (stage_id, stage_obo_id, stage_name, begin_hours, end_hours
                   # ,empty  # till next time
                  ) = row
  
                  # Add the stage as a class, and it's obo equivalent
                  stage_id = 'ZFIN:' + stage_id.strip()
                  model.addClassToGraph(stage_id, stage_name)
                  model.addEquivalentClass(stage_id, stage_obo_id)
  
                  if not self.test_mode and limit is not None and line_counter > limit:
                      break
  
          LOG.info("Done with stages")
          return
docs: This table provides mappings between ZFIN stage IDs and ZFS terms,
          and includes the starting and ending hours for the developmental stage.
          Currently only processing the mapping from the ZFIN stage ID
          to the ZFS ID.
  
          :param limit:
          :return: