ó
gbc           @   s]   d  e  f d „  ƒ  YZ d e  f d „  ƒ  YZ d „  Z d „  Z d „  Z d „  Z d „  Z d	 S(
   t
   NodeLayoutc           B   s   e  Z d  Z RS(   s0   
    Layout data associated to a tree node.
    (   t   __name__t
   __module__t   __doc__(    (    (    s3   lib/python2.7/site-packages/obitools/tree/layout.pyR       s   t
   TreeLayoutc           B   sV   e  Z d  Z d „  Z d „  Z d „  Z d d „ Z e d „ Z	 d „  Z
 e d „ Z RS(	   sC   
    Description of a phylogenetic tree layout
    
    @see: 
    c         C   s   t  ƒ  |  | <d  S(   N(   R    (   t   selft   node(    (    s3   lib/python2.7/site-packages/obitools/tree/layout.pyt   addNode   s    c         C   s   | |  | | <d  S(   N(    (   R   R   t   keyt   value(    (    s3   lib/python2.7/site-packages/obitools/tree/layout.pyt   setAttribute   s    c         C   s   | |  | k S(   N(    (   R   R   R   (    (    s3   lib/python2.7/site-packages/obitools/tree/layout.pyt   hasAttribute   s    c         C   s   |  | j  | | ƒ S(   N(   t   get(   R   R   R   t   default(    (    s3   lib/python2.7/site-packages/obitools/tree/layout.pyt   getAttribute   s    c         C   ss   xl |  D]d } t  t ƒ r( t | ƒ } n t } | r t  | ƒ rO | | ƒ } n | } |  j | d | ƒ q q Wd S(   sn   
        
        @param color:
        @type color:
        @param predicat:
        @type predicat:
        t   colorN(   t   callablet   predicatR
   (   R   R   t	   predicateR   t   changet   c(    (    s3   lib/python2.7/site-packages/obitools/tree/layout.pyt   setNodesColor   s    c         C   se   x^ |  D]V } t  | ƒ r( | | ƒ } n | } | rJ |  j | d d ƒ q |  j | d d ƒ q Wd  S(   Nt   shapet   circlet   square(   R   R
   (   R   t   iscircularpredicatR   R   (    (    s3   lib/python2.7/site-packages/obitools/tree/layout.pyt   setCircular/   s    c         C   ss   xl |  D]d } t  t ƒ r( t | ƒ } n t } | r t  | ƒ rO | | ƒ } n | } |  j | d | ƒ q q Wd  S(   Nt   radius(   R   R   R
   (   R   R   R   R   R   t   r(    (    s3   lib/python2.7/site-packages/obitools/tree/layout.pyt	   setRadius;   s    N(   R   R   R   R   R
   R   t   NoneR   t   TrueR   R   R   (    (    (    s3   lib/python2.7/site-packages/obitools/tree/layout.pyR      s   				c            s   ‡  ‡ f d †  } | S(   Nc            s/   |  j  } | d  k	 o. ˆ  | k o. | ˆ  ˆ k S(   N(   t   _infoR   (   R   t   data(   t   infoR	   (    s3   lib/python2.7/site-packages/obitools/tree/layout.pyt   isInfoEqualJ   s    	(    (   R"   R	   R#   (    (   R"   R	   s3   lib/python2.7/site-packages/obitools/tree/layout.pyt   predicatGeneratorIsInfoEqualI   s    c         C   s   |  j  S(   N(   t   _isterminal(   R   (    (    s3   lib/python2.7/site-packages/obitools/tree/layout.pyt   isTerminalNodeP   s    c            s   ‡  f d †  } | S(   Nc            s   ˆ  S(   N(    (   R   (   R   (    s3   lib/python2.7/site-packages/obitools/tree/layout.pyt
   colorMakerT   s    (    (   R   R'   (    (   R   s3   lib/python2.7/site-packages/obitools/tree/layout.pyt   constantColorGeneratorS   s    c            s   ‡  f d †  } | S(   Nc            s   ˆ  S(   N(    (   R   (   R   (    s3   lib/python2.7/site-packages/obitools/tree/layout.pyR'   Z   s    (    (   R   R'   (    (   R   s3   lib/python2.7/site-packages/obitools/tree/layout.pyR(   Y   s    c         C   s   d „  } | S(   Nc         S   s   t  |  ƒ S(   N(   R   (   t   x(    (    s3   lib/python2.7/site-packages/obitools/tree/layout.pyt   notpred`   s    (    (   R   R*   (    (    s3   lib/python2.7/site-packages/obitools/tree/layout.pyt   notPredicatGenerator_   s    	N(   t   dictR    R   R$   R&   R(   R+   (    (    (    s3   lib/python2.7/site-packages/obitools/tree/layout.pyt   <module>   s   A				