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]
def sibling_of ( self , tax_id ) : 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 ]
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.