docs: def sibling_of(self, tax_id):
          """Return None or a tax_id of a sibling of *tax_id*.
  
          If ``tax_id`` is None, then always returns None. Otherwise,
          returns None if there is no sibling.
          """
          if tax_id is None:
              return None
          parent_id, rank = self._node(tax_id)
          s = select([self.nodes.c.tax_id],
                     and_(self.nodes.c.parent_id == parent_id,
                          self.nodes.c.tax_id != tax_id,
                          self.nodes.c.rank == rank))
          res = s.execute()
          output = res.fetchone()
          if not output:
              msg = 'No sibling of tax_id {} with rank {} found in taxonomy'
              msg = msg.format(tax_id, rank)
              log.warning(msg)
              return None
          else:
              return output[0]