
[_Sc        *  @   s
  d  Z  d d l m Z d e f d     YZ e d e d d d  d	 e d
 d d  d e d d d  d e d d d  d e d d d  d e d d d  d e d d d  d e d d d  d e d d d  d e d d d  d e d d d   d! e d" d# d#  d$ e d% d& d'  d( e d) d* d+  d, e d d d  d- e d. d/ d0  d1 e d d d2  d3 e d4 d5 d6  d7 e d d d  d8 e d d9 d:  d; e d d d  d< e d d d=  d> e d d= d=  d? e d& d@ dA  dB e dC dC dC  dD e d d4 d  dE e dC dC dC  dF e dG dH dI  dJ e d= d d=  dK e dL dI dM  dN e d dO d  dP e dQ dR dS  dT e d= d d  dU e dV dW dX  dY e dZ d[ dZ  d\ e d] d^ d=  d_ e dM d` d`  da e dM d` d`  db e d dc dd  de e df d dg  dh e d d9 di  dj e d dk d  dl e d/ d/ d/  dm e d/ d/ d/  dn e d0 do d  dp e dq dr dr  ds e d d
 d  dt e dr d= dr  du e d d d  dv e d d d  dw e d d d  dx e d d d  dy e dz d" d{  d| e d} d} d}  d~ e d d} d  d e d d dM  d e d} d} d}  d e d d d  d e d d/ d  d e d d d  d e d d d  d e d d d  d e d d dO  d e d d d
  d e d d d  d e d d d  d e d d
 d  d e d d d  d e d d} d}  d e d d d  d e d
 d
 d.  d e dg dg dg  d e do d do  d e dg dg dg  d e d d d  d e d d+ dX  d e d{ dq d  d e d' dc d
  d e d d dQ  d e d d dQ  d e d d d%  d e d d d  d e d d d  d e dR d dR  d e d
 d d  d e d d d  d e d} d d  d e d d d  d e d d d  d e d dL dg  d e di d d  d e d: d d  d e d d d  d e d d
 d  d e d] dd dS  d e d d d  d e d d d  d e d d d
  d e d d d  d e d d d  d e d d% d  d e d d d}  d e d d d  d e d} d} d  d e dI d d  d e d d" d  d e d d d  d e dz d d  d e d d d  d e d d d  d e d d d  d e d d di  d e d d d  d e d dz d  d e d d d  d e d d d  d e d d+ d  d e d d d  d e d} d d}  d e d d d  d e d[ dZ dZ  d e d d/ d  d e d= d d  d e d
 d} d  d e d d d  d e d d= d  d e d d d  d e d+ d d de d d d  de d' dc d  de ddd  de d d} do  de d d} do  d	e d d
 d
  d
e d d d  de dd d  de d. d dO  de d d} d}  de d dk d  de d dd de dd d de d d d  de d d% d  de d d d  de d d d  de d d d  de d d dR   Z dS(  s@    Color specifications using CSS2 (Cascading Style Sheet) syntax.i(   t   divisiont   Colorc           B   st   e  Z d  Z d   Z e d    Z e d    Z e d    Z e d    Z	 e d    Z
 d   Z d   Z RS(	   s   Color specifications using CSS2 (Cascading Style Sheet) syntax.
    
    http://www.w3.org/TR/REC-CSS2/syndata.html#color-units

    Usage:
    
    red = Color(255,0,0)
    red = Color(1., 0., 0.)
    red = Color.by_name("red")
    red = Color.from_rgb(1.,0.,0.)
    red = Color.from_rgb(255,0,0)
    red = Color.from_hsl(0.,1., 0.5)
    
    red = Color.from_string("red") 
    red = Color.from_string("RED") 
    red = Color.from_string("#F00") 
    red = Color.from_string("#FF0000") 
    red = Color.from_string("rgb(255, 0, 0)")
    red = Color.from_string("rgb(100%, 0%, 0%)")
    red = Color.from_string("hsl(0, 100%, 50%)")

    c         C   s   t  |  t  |  k o) t  |  k n s= t d   n  t | t  rY | d } n  t | t  ru | d } n  t | t  r | d } n  t d t | d   |  _ t d t | d   |  _ t d t | d   |  _ d  S(   Ns   Mixed floats and integers?g     o@g        g      ?(	   t   typet	   TypeErrort
   isinstancet   intt   maxt   mint   redt   greent   blue(   t   selfR   R	   R
   (    (    s:   /home/psgendb/BIRCHDEV/pkg/weblogo-3.4/weblogolib/color.pyt   __init__5   s    .c           C   s
   t  j   S(   s&   Return a list of standard color names.(   t   _std_colorst   keys(    (    (    s:   /home/psgendb/BIRCHDEV/pkg/weblogo-3.4/weblogolib/color.pyt   namesD   s    c         C   s   |  | | |  S(   N(    (   t   clst   rt   gt   b(    (    s:   /home/psgendb/BIRCHDEV/pkg/weblogo-3.4/weblogolib/color.pyt   from_rgbI   s    c         C   s  d   } | d d d d } | d k o4 | d k sJ t  d |   n  | d k o_ | d k su t  d |   n  | d k r |  j | | |  S| d k  r | d | } n | | | | } d	 | | } | | | | d  } | | | |  }	 | | | | d  }
 |  | |	 |
  S(   Nc         S   s   | d k  r | d 7} n  | d k r2 | d 8} n  | d d k  rV |  | |  d | S| d d k  rj | S| d d k  r |  | |  d | d S|  S(   Ng        g      ?g      @g       @g      @gUUUUUU?(    (   t   v1t   v2t   vH(    (    s:   /home/psgendb/BIRCHDEV/pkg/weblogo-3.4/weblogolib/color.pyt
   hue_to_rgbO   s         g     v@g        g      ?s   Out-of-range saturation %fs   Out-of-range lightness %fi    g      ?g       @g      @gUUUUUU?gUUUUUU?(   t
   ValueErrorR   (   R   t	   hue_anglet
   saturationt	   lightnessR   t   hueR   R   R   R   R   (    (    s:   /home/psgendb/BIRCHDEV/pkg/weblogo-3.4/weblogolib/color.pyt   from_hslM   s     	c         C   sR   |  j    j   j d d  } y t | SWn! t k
 rM t d |   n Xd  S(   Nt    t    s   Unknown color name: %s(   t   stript   lowert   replaceR   t   KeyErrorR   (   t   stringt   s(    (    s:   /home/psgendb/BIRCHDEV/pkg/weblogo-3.4/weblogolib/color.pyt   by_nameo   s
    c   	      C   sp  d   } | j    j   j d d  j d d  } | t k rG t | S| d d k rAt |  d k r t | d | d d	  } t | d
 | d
 d	  } t | d | d d	  } |  | | |  St |  d k r.t | d d !d	  } t | d d !d	  } t | d d !d	  } |  | | |  St d |   n  | d d !d k r| d d k r| d d !j d  } t |  d k rt d |   n  |  | | d  | | d  | | d
   S| d d !d k r\| d d k r\| d d !j d  } t |  d k r+t d |   n  |  j t | d  | | d  | | d
   St d |   d  S(   Nc         S   s7   |  d d k r% t  |  d d ! d St  |   d Sd  S(   Nit   %i    g      Y@g     o@(   t   float(   R%   (    (    s:   /home/psgendb/BIRCHDEV/pkg/weblogo-3.4/weblogolib/color.pyt   to_fracy   s    R   R    t   _i    t   #i   i   i   i   i   i   i   s   Cannot parse string: %ss   rgb(it   )t   ,s   Cannot parse string a: %ss   hsl((	   R!   R"   R#   R   t   lenR   R   t   splitR   (	   R   R%   R*   R&   R   R   R   t   rgbt   hsl(    (    s:   /home/psgendb/BIRCHDEV/pkg/weblogo-3.4/weblogolib/color.pyt   from_stringw   s6    	*#.#1c         C   s   t  | |  j  s t St d d |  j  t d d | j  k } t d d |  j  t d d | j  k } t d d |  j  t d d | j  k } | o | o | S(   Ng      ?g     o@(   R   t	   __class__t   FalseR   R   R
   R	   (   R   t   othert   reqt   beqt   geq(    (    s:   /home/psgendb/BIRCHDEV/pkg/weblogo-3.4/weblogolib/color.pyt   __eq__   s    ...c         C   s   d |  j  |  j |  j f S(   Ns   Color(%f,%f,%f)(   R   R	   R
   (   R   (    (    s:   /home/psgendb/BIRCHDEV/pkg/weblogo-3.4/weblogolib/color.pyt   __repr__   s    (   t   __name__t
   __module__t   __doc__R   t   staticmethodR   t   classmethodR   R   R'   R3   R:   R;   (    (    (    s:   /home/psgendb/BIRCHDEV/pkg/weblogo-3.4/weblogolib/color.pyR      s   	"*	t	   alicebluei   i   i   t   antiquewhitei   i   i   t   aquai    t
   aquamarinei   i   t   azuret   beigei   i   t   bisquei   i   t   blackt   blanchedalmondi   R
   t
   bluevioleti   i+   i   t   browni   i*   t	   burlywoodi   i   i   t	   cadetbluei_   i   i   t
   chartreuset	   chocolatei   ii   i   t   coraliP   t   cornflowerblueid   i   i   t   cornsilkt   crimsoni   i<   t   cyant   darkbluei   t   darkcyant   darkgoldenrodi   i   t   darkgrayi   t	   darkgreent   darkgreyt	   darkkhakii   i   ik   t   darkmagentat   darkolivegreeniU   i/   t
   darkorangei   t
   darkorchidi   i2   i   t   darkredt
   darksalmoni   i   iz   t   darkseagreeni   i   t   darkslateblueiH   i=   t   darkslategrayiO   t   darkslategreyt   darkturquoisei   i   t
   darkvioleti   i   t   deeppinki   t   deepskybluei   t   dimgrayt   dimgreyt
   dodgerbluei   t	   firebricki   i"   t   floralwhitet   forestgreent   fuchsiat	   gainsborot
   ghostwhitet   goldt	   goldenrodi   i    t   grayi   R	   t   greenyellowi   t   greyt   honeydewt   hotpinki   t	   indianredi\   t   indigoiK   i   t   ivoryt   khakii   t   lavendert   lavenderblusht	   lawngreeni|   i   t   lemonchiffont	   lightbluei   t
   lightcoralt	   lightcyani   t   lightgoldenrodyellowt	   lightgrayt
   lightgreeni   t	   lightgreyt	   lightpinki   i   t   lightsalmont   lightseagreeni   t   lightskybluet   lightslategrayiw   i   t   lightslategreyt   lightsteelbluei   t   lightyellowt   limet	   limegreent   linent   magentat   maroont   mediumaquamarineif   t
   mediumbluet   mediumorchidi   t   mediumpurpleip   i   t   mediumseagreeni   iq   t   mediumslatebluei{   ih   t   mediumspringgreeni   t   mediumturquoiset   mediumvioletredi   i   i   t   midnightbluei   t	   mintcreamt	   mistyrosei   t   moccasini   t   navajowhitet   navyt   oldlacei   t   olivet	   olivedrabi   i#   t   oranget	   orangerediE   t   orchidi   t   palegoldenrodi   t	   palegreeni   i   t   paleturquoisei   t   palevioletredt
   papayawhipi   i   t	   peachpuffi   t   perui?   t   pinki   i   t   plumi   t
   powderbluet   purpleR   t	   rosybrownt	   royalblueiA   t   saddlebrowni   t   salmonir   t
   sandybrowni   i   i`   t   seagreeni.   iW   t   seashellt   siennaiR   i-   t   silvert   skybluet	   slateblueij   iZ   t	   slategrayt	   slategreyt   snowt   springgreent	   steelblueiF   t   tant   tealt   thistlet   tomatoic   iG   t	   turquoisei@   i   t   violett   wheatt   whitet
   whitesmoket   yellowt   yellowgreenN(   R>   t
   __future__R    t   objectR   t   dictR   (    (    (    s:   /home/psgendb/BIRCHDEV/pkg/weblogo-3.4/weblogolib/color.pyt   <module>   s,  