def parse_exchange(self):
if '<STR_LIT>' in self._model:<EOL><INDENT>if '<STR_LIT>' in self._model:<EOL><INDENT>raise ParseError('<STR_LIT>')<EOL><DEDENT>logger.warning(<EOL>'<STR_LIT>'<EOL>'<STR_LIT>')<EOL>exchange_list = self._model['<STR_LIT>']<EOL><DEDENT>else:<EOL><INDENT>exchange_list = self._model.get('<STR_LIT>')<EOL><DEDENT>extracellular = self.extracellular_compartment<EOL>if exchange_list is not None:<EOL><INDENT>if not isinstance(exchange_list, list):<EOL><INDENT>raise ParseError('<STR_LIT>')<EOL><DEDENT>for exchange_compound in parse_exchange_list(<EOL>self._context, exchange_list, extracellular):<EOL><INDENT>compound, reaction_id, lower, upper = exchange_compound<EOL>if compound.compartment is None:<EOL><INDENT>compound = compound.in_compartment(extracellular)<EOL><DEDENT>yield compound, reaction_id, lower, upper<EOL><DEDENT><DEDENT>
Yield tuples of exchange compounds.

        Each exchange compound is a tuple of compound, reaction ID, lower and
        upper flux limits.