ó
'![c        !   @   s…  d  Z  i dw d 6dx d 6dy d6 6dz d; 6d{ d? 6d| dC 6d} dH 6Z i dI dJ 6dI dK 6e d6 dL 6e d6 dM 6e d6 dN 6dO dP 6dO dQ 6dO dR 6e d? dS 6e d; dT 6dO dU 6dO dV 6e d dW 6dO dX 6dO dY 6dO dZ 6dO d[ 6e d d\ 6e d d] 6e d d^ 6e d d_ 6e d d` 6e d da 6e d db 6e d dc 6e d dd 6e d de 6e d df 6Z i dI dJ 6dI dK 6e d6 dL 6e d6 dM 6e d6 dN 6dO dP 6dO dQ 6dO dR 6e d? dS 6e d; dT 6dO dU 6dO dV 6dO dX 6dO dY 6Z i dI dg 6dI dh 6dI dK 6e dH di 6dO dj 6dI dk 6e d6 dL 6e d6 dM 6e d6 dl 6e d6 dm 6dO dn 6dO do 6e dC dp 6e dC dq 6e d? dS 6dO dr 6dO ds 6dO dY 6Z dt e f du „  ƒ  YZ dv S(~   sG  Functions to generate files readable with Georg Sander's vcg
(Visualization of Compiler Graphs).

You can download vcg at http://rw4.cs.uni-sb.de/~sander/html/gshome.html
Note that vcg exists as a debian package.

See vcg's documentation for explanation about the different values that
maybe used for the functions parameters.
t   dfst   treet   minbackwardt   left_to_rightt   right_to_leftt   top_to_bottomt   bottom_to_topt   maxdeptht   maxdepthslowt   mindeptht   mindepthslowt	   mindegreet   minindegreet   minoutdegreet	   maxdegreet   maxindegreet   maxoutdegreet   algost   yest   not   booleanst   blackt   whitet   bluet   redt   greent   yellowt   magentat	   lightgreyt   cyant   darkgreyt   darkbluet   darkredt	   darkgreent
   darkyellowt   darkmagentat   darkcyant   goldt	   lightbluet   lightredt
   lightgreent   lightyellowt   lightmagentat	   lightcyant   lilact	   turquoiset
   aquamarinet   khakit   purplet   yellowgreent   pinkt   oranget   orchidt   colorst   boxt   ellipset   rhombt   trianglet   shapest   centert   left_justifyt   right_justifyt	   textmodest   solidt   linet   nonet   arrowstylest
   continuoust   dashedt   dottedt	   invisiblet
   linestylesi    t   titlet   labelt   colort	   textcolort   bordercolori   t   widtht   heightt   borderwidtht   textmodet   shapet   shrinkt   stretcht   orientationt   vertical_ordert   horizontal_ordert   xspacet   yspacet   layoutalgorithmt   late_edge_labelst   display_edge_labelst   dirty_edge_labelst
   finetuningt   manhattan_edgest   smanhattan_edgest   port_sharingt   edgest   nodest   splinest
   sourcenamet
   targetnamet	   linestylet   classt	   thicknesst
   arrowcolort   backarrowcolort	   arrowsizet   backarrowsizet
   arrowstylet   backarrowstylet   priorityt   anchort
   VCGPrinterc           B   sY   e  Z d  Z d „  Z d „  Z d „  Z d „  Z d d „ Z d „  Z d „  Z	 d	 „  Z
 RS(
   s   A vcg graph writer.
    c         C   s   | |  _  d |  _ d  S(   Nt    (   t   _streamt   _indent(   t   selft   output_stream(    (    s8   lib/python2.7/site-packages/pylint/pyreverse/vcgutils.pyt   __init__v   s    	c         K   s5   |  j  j d |  j ƒ |  j ƒ  |  j t |  d S(   s   open a vcg graph
        s
   %sgraph:{
N(   Rs   t   writeRt   t   _inc_indentt   _write_attributest   GRAPH_ATTRS(   Ru   t   args(    (    s8   lib/python2.7/site-packages/pylint/pyreverse/vcgutils.pyt
   open_graphz   s    
c         C   s%   |  j  ƒ  |  j j d |  j ƒ d S(   s   close a vcg graph
        s   %s}
N(   t   _dec_indentRs   Rx   Rt   (   Ru   (    (    s8   lib/python2.7/site-packages/pylint/pyreverse/vcgutils.pyt   close_graph   s    
c         K   sA   |  j  j d |  j | f ƒ |  j t |  |  j  j d ƒ d S(   s   draw a node
        s   %snode: {title:"%s"s   }
N(   Rs   Rx   Rt   Rz   t
   NODE_ATTRS(   Ru   RH   R|   (    (    s8   lib/python2.7/site-packages/pylint/pyreverse/vcgutils.pyt   nodeˆ   s    Rr   c         K   sG   |  j  j d |  j | | | f ƒ |  j t |  |  j  j d ƒ d S(   s-   draw an edge from a node to another.
        s*   %s%sedge: {sourcename:"%s" targetname:"%s"s   }
N(   Rs   Rx   Rt   Rz   t
   EDGE_ATTRS(   Ru   t	   from_nodet   to_nodet	   edge_typeR|   (    (    s8   lib/python2.7/site-packages/pylint/pyreverse/vcgutils.pyt   edge   s
    	c         K   s  xþ | j  ƒ  D]ð \ } } y | | } Wn- t k
 rV t d | | j ƒ  f ƒ ‚ n X| s€ |  j j d |  j | | f ƒ q | d k rµ |  j j d |  j | t | ƒ f ƒ q | | k rä |  j j d |  j | | f ƒ q t d | | | f ƒ ‚ q Wd S(   s-   write graph, node or edge attributes
        s/   no such attribute %s
possible attributes are %ss
   %s%s:"%s"
i   s   %s%s:%s
s=   value %s isn't correct for attribute %s
correct values are %sN(   t   itemst   KeyErrort	   Exceptiont   keysRs   Rx   Rt   t   int(   Ru   t   attributes_dictR|   t   keyt   valuet   _type(    (    s8   lib/python2.7/site-packages/pylint/pyreverse/vcgutils.pyRz   œ   s    ##c         C   s   d |  j  |  _  d S(   s   increment indentation
        s     %sN(   Rt   (   Ru   (    (    s8   lib/python2.7/site-packages/pylint/pyreverse/vcgutils.pyRy   ±   s    c         C   s   |  j  d  |  _  d S(   s   decrement indentation
        iþÿÿÿN(   Rt   (   Ru   (    (    s8   lib/python2.7/site-packages/pylint/pyreverse/vcgutils.pyR~   ¶   s    (   t   __name__t
   __module__t   __doc__Rw   R}   R   R   R†   Rz   Ry   R~   (    (    (    s8   lib/python2.7/site-packages/pylint/pyreverse/vcgutils.pyRq   r   s   						N(   R    R   R   R   R   R   R   R   R   R	   R
   R   R   R   R   R   R   (   R   R   (    R   R   R   R   R   R   R   R   R   R   R   R    R!   R"   R#   R$   R%   R&   R'   R(   R)   R*   R+   R,   R-   R.   R/   R0   R1   R2   R3   R4   (   R6   R7   R8   R9   (   R;   R<   R=   (   R?   R@   RA   (   RC   RD   RE   RF   (   R’   t	   ATTRS_VALR{   R€   R‚   t   objectRq   (    (    (    s8   lib/python2.7/site-packages/pylint/pyreverse/vcgutils.pyt   <module>   s¨               


