docs: def _try_parse_gene_association(self, reaction_id, s):
          """Try to parse the given gene association rule.
  
          Logs a warning if the association rule could not be parsed and returns
          the original string. Otherwise, returns the boolean.Expression object.
          """
          s = s.strip()
          if s == '':
              return None
  
          try:
              return boolean.Expression(s)
          except boolean.ParseError as e:
              msg = 'Failed to parse gene association for {}: {}'.format(
                  reaction_id, text_type(e))
              if e.indicator is not None:
                  msg += '\n{}\n{}'.format(s, e.indicator)
              logger.warning(msg)
  
          return s