code: def _parse_species_references(self, name):
          
          for species in self._root.iterfind('./{}/{}'.format(
                  self._reader._sbml_tag(name),
                  self._reader._sbml_tag('speciesReference'))):
  
              species_id = species.get('species')
  
              if self._reader._level == 1:
                  # In SBML level 1 only positive integers are allowed for
                  # stoichiometry but a positive integer denominator can be
                  # specified.
                  try:
                      value = int(species.get('stoichiometry', 1))
                      denom = int(species.get('denominator', 1))
                      species_value = Fraction(value, denom)
                  except ValueError:
                      message = ('Non-integer stoichiometry is not allowed in'
                                 ' SBML level 1 (reaction {})'.format(self.id))
                      if self._reader._strict:
                          raise ParseError(message)
                      else:
                          logger.warning(message)
                      species_value = Decimal(species.get('stoichiometry', 1))
              elif self._reader._level == 2:
                  # Stoichiometric value is a double but can alternatively be
                  # specified using math (not implemented).
                  value_str = species.get('stoichiometry', None)
                  if value_str is None:
                      if 'stoichiometryMath' in species:
                          raise ParseError('stoichiometryMath in '
                                           'speciesReference is not implemented')
                      species_value = 1
                  else:
                      species_value = Decimal(value_str)
              elif self._reader._level == 3:
                  # Stoichiometric value is a double but can alternatively be
                  # specified using initial assignment (not implemented).
                  value_str = species.get('stoichiometry', None)
                  if value_str is None:
                      raise ParseError('Missing stoichiometry in'
                                       ' speciesReference is not implemented')
                  species_value = Decimal(value_str)
  
              if species_value % 1 == 0:
                  species_value = int(species_value)
  
              yield species_id, species_value
docs: Yield species id and parsed value for a speciesReference list