ó
ÄCõRc           @   so  d  Z  d d l j Z d d l m Z d e f d „  ƒ  YZ d e f d „  ƒ  YZ d e f d	 „  ƒ  YZ d
 e f d „  ƒ  YZ	 d e f d „  ƒ  YZ
 e
 Z d e f d „  ƒ  YZ d e f d „  ƒ  YZ d e f d „  ƒ  YZ d e f d „  ƒ  YZ d e f d „  ƒ  YZ d e f d „  ƒ  YZ d e f d „  ƒ  YZ d d „ Z d e f d „  ƒ  YZ d e f d  „  ƒ  YZ d S(!   s�  
provides a classes of simple units that will be used with AxesDivider
class (or others) to determine the size of each axes. The unit
classes define `get_size` method that returns a tuple of two floats,
meaning relative and absolute sizes, respectively.

Note that this class is nothing more than a simple tuple of two
floats. Take a look at the Divider class to see how these two
values are used.

iÿÿÿÿN(   t   Axest   _Basec           B   s    e  Z d  Z d „  Z d „  Z RS(   s
   Base classc         C   s   t  | ƒ t | |  ƒ S(   N(   t   floatt   Fraction(   t   selft   other(    (    s[   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axes_grid1/axes_size.pyt   __rmul__   s    
c         C   sC   t  | t ƒ r t |  | ƒ St | ƒ t | ƒ } t |  | ƒ Sd  S(   N(   t
   isinstanceR   t   AddR   t   Fixed(   R   R   (    (    s[   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axes_grid1/axes_size.pyt   __add__   s
    
(   t   __name__t
   __module__t   __doc__R   R
   (    (    (    s[   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axes_grid1/axes_size.pyR      s   	R   c           B   s   e  Z d  „  Z d „  Z RS(   c         C   s   | |  _  | |  _ d  S(   N(   t   _at   _b(   R   t   at   b(    (    s[   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axes_grid1/axes_size.pyt   __init__"   s    	c         C   sB   |  j  j | ƒ \ } } |  j j | ƒ \ } } | | | | f S(   N(   R   t   get_sizeR   (   R   t   renderert
   a_rel_sizet
   a_abs_sizet
   b_rel_sizet
   b_abs_size(    (    s[   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axes_grid1/axes_size.pyR   &   s    (   R   R   R   R   (    (    (    s[   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axes_grid1/axes_size.pyR   !   s   	t   AddListc           B   s   e  Z d  „  Z d „  Z RS(   c         C   s   | |  _  d  S(   N(   t   _list(   R   t   add_list(    (    s[   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axes_grid1/axes_size.pyR   ,   s    c         C   sh   t  g  |  j D] } | j | ƒ d ^ q ƒ } t  g  |  j D] } | j | ƒ d ^ q< ƒ } | | f S(   Ni    i   (   t   sumR   R   (   R   R   R   t   sum_rel_sizet   sum_abs_size(    (    s[   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axes_grid1/axes_size.pyR   /   s    //(   R   R   R   R   (    (    (    s[   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axes_grid1/axes_size.pyR   +   s   	R	   c           B   s    e  Z d  Z d „  Z d „  Z RS(   sJ   Simple fixed size  with absolute part = *fixed_size* and relative part = 0c         C   s   | |  _  d  S(   N(   t
   fixed_size(   R   R   (    (    s[   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axes_grid1/axes_size.pyR   7   s    c         C   s   d } |  j  } | | f S(   Ng        (   R   (   R   R   t   rel_sizet   abs_size(    (    s[   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axes_grid1/axes_size.pyR   :   s    	(   R   R   R   R   R   (    (    (    s[   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axes_grid1/axes_size.pyR	   5   s   	t   Scaledc           B   s    e  Z d  Z d „  Z d „  Z RS(   sP   Simple scaled(?) size with absolute part = 0 and relative part = *scalable_size*c         C   s   | |  _  d  S(   N(   t   _scalable_size(   R   t   scalable_size(    (    s[   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axes_grid1/axes_size.pyR   B   s    c         C   s   |  j  } d } | | f S(   Ng        (   R#   (   R   R   R    R!   (    (    s[   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axes_grid1/axes_size.pyR   E   s    	(   R   R   R   R   R   (    (    (    s[   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axes_grid1/axes_size.pyR"   @   s   	t   AxesXc           B   s#   e  Z d  Z d d „ Z d „  Z RS(   su   
    Scaled size whose relative part corresponds to the data width
    of the *axes* multiplied by the *aspect*.
    g      ð?c         C   s   | |  _  | |  _ d  S(   N(   t   _axest   _aspect(   R   t   axest   aspect(    (    s[   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axes_grid1/axes_size.pyR   R   s    	c         C   s<   |  j  j ƒ  \ } } t | | ƒ |  j } d } | | f S(   Ng        (   R&   t   get_xlimt   absR'   (   R   R   t   l1t   l2R    R!   (    (    s[   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axes_grid1/axes_size.pyR   V   s    (   R   R   R   R   R   (    (    (    s[   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axes_grid1/axes_size.pyR%   M   s   t   AxesYc           B   s#   e  Z d  Z d d „ Z d „  Z RS(   sv   
    Scaled size whose relative part corresponds to the data height
    of the *axes* multiplied by the *aspect*.
    g      ð?c         C   s   | |  _  | |  _ d  S(   N(   R&   R'   (   R   R(   R)   (    (    s[   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axes_grid1/axes_size.pyR   a   s    	c         C   s<   |  j  j ƒ  \ } } t | | ƒ |  j } d } | | f S(   Ng        (   R&   t   get_ylimR+   R'   (   R   R   R,   R-   R    R!   (    (    s[   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axes_grid1/axes_size.pyR   e   s    (   R   R   R   R   R   (    (    (    s[   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axes_grid1/axes_size.pyR.   \   s   t	   MaxExtentc           B   s)   e  Z d  Z d „  Z d „  Z d „  Z RS(   sc   
    Size whose absolute part is the largest width (or height) of
    the given *artist_list*.
    c         C   s.   | |  _  | d k r! t ƒ  ‚ n  | |  _ d  S(   Nt   widtht   height(   s   widths   height(   t   _artist_listt
   ValueErrort   _w_or_h(   R   t   artist_listt   w_or_h(    (    s[   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axes_grid1/axes_size.pyR   q   s    	c         C   s   |  j  j | ƒ d  S(   N(   R3   t   append(   R   R   (    (    s[   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axes_grid1/axes_size.pyt
   add_artisty   s    c   	      C   s¶   d } g  g  } } x@ |  j  D]5 } | j | ƒ } | j | j ƒ | j | j ƒ q W| j ƒ  j ƒ  } |  j d k rŠ t | ƒ | } n" |  j d k r¬ t | ƒ | } n  | | f S(   Ng        R1   R2   (	   R3   t   get_window_extentR8   R1   R2   t
   get_figuret   get_dpiR5   t   max(	   R   R   R    t   w_listt   h_listR   t   bbt   dpiR!   (    (    s[   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axes_grid1/axes_size.pyR   |   s    (   R   R   R   R   R9   R   (    (    (    s[   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axes_grid1/axes_size.pyR0   l   s   		t   MaxWidthc           B   s)   e  Z d  Z d „  Z d „  Z d „  Z RS(   sW   
    Size whose absolute part is the largest width of
    the given *artist_list*.
    c         C   s   | |  _  d  S(   N(   R3   (   R   R6   (    (    s[   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axes_grid1/axes_size.pyR   ‘   s    c         C   s   |  j  j | ƒ d  S(   N(   R3   R8   (   R   R   (    (    s[   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axes_grid1/axes_size.pyR9   ”   s    c         C   sk   d } g  } x0 |  j  D]% } | j | ƒ } | j | j ƒ q W| j ƒ  j ƒ  } t | ƒ | } | | f S(   Ng        (   R3   R:   R8   R1   R;   R<   R=   (   R   R   R    R>   R   R@   RA   R!   (    (    s[   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axes_grid1/axes_size.pyR   —   s    (   R   R   R   R   R9   R   (    (    (    s[   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axes_grid1/axes_size.pyRB   Œ   s   		t	   MaxHeightc           B   s)   e  Z d  Z d „  Z d „  Z d „  Z RS(   sX   
    Size whose absolute part is the largest height of
    the given *artist_list*.
    c         C   s   | |  _  d  S(   N(   R3   (   R   R6   (    (    s[   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axes_grid1/axes_size.pyR   ©   s    c         C   s   |  j  j | ƒ d  S(   N(   R3   R8   (   R   R   (    (    s[   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axes_grid1/axes_size.pyR9   ¬   s    c         C   sk   d } g  } x0 |  j  D]% } | j | ƒ } | j | j ƒ q W| j ƒ  j ƒ  } t | ƒ | } | | f S(   Ng        (   R3   R:   R8   R2   R;   R<   R=   (   R   R   R    R?   R   R@   RA   R!   (    (    s[   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axes_grid1/axes_size.pyR   ¯   s    (   R   R   R   R   R9   R   (    (    (    s[   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axes_grid1/axes_size.pyRC   ¤   s   		R   c           B   s    e  Z d  Z d „  Z d „  Z RS(   ss   
    An instance whose size is a *fraction* of the *ref_size*.
    ::

      >>> s = Fraction(0.3, AxesX(ax))

    c         C   s   | |  _  | |  _ d  S(   N(   t   _fraction_reft	   _fraction(   R   t   fractiont   ref_size(    (    s[   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axes_grid1/axes_size.pyR   Ã   s    	c         C   s\   |  j  d  k r |  j d f S|  j  j | ƒ \ } } | |  j } | |  j } | | f Sd  S(   Ng        (   RD   t   NoneRE   R   (   R   R   t   rR   R    R!   (    (    s[   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axes_grid1/axes_size.pyR   Ç   s    (   R   R   R   R   R   (    (    (    s[   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axes_grid1/axes_size.pyR   »   s   	t   Paddedc           B   s    e  Z d  Z d „  Z d „  Z RS(   se   
    Return a instance where the absolute part of *size* is
    increase by the amount of *pad*.
    c         C   s   | |  _  | |  _ d  S(   N(   t   _sizet   _pad(   R   t   sizet   pad(    (    s[   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axes_grid1/axes_size.pyR   Õ   s    	c         C   s5   |  j  j | ƒ \ } } | } | |  j } | | f S(   N(   RK   R   RL   (   R   R   RI   R   R    R!   (    (    s[   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axes_grid1/axes_size.pyR   Ù   s    (   R   R   R   R   R   (    (    (    s[   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axes_grid1/axes_size.pyRJ   Ð   s   	c         C   sf   t  j |  ƒ r t |  ƒ St  j |  ƒ rV |  d d k rV t t |  d  ƒ d | ƒ Sn  t d ƒ ‚ d S(   s>  
    Creates Fixed unit when the first argument is a float, or a
    Fraction unit if that is a string that ends with %. The second
    argument is only meaningful when Fraction unit is created.::

      >>> a = Size.from_any(1.2) # => Size.Fixed(1.2)
      >>> Size.from_any("50%", a) # => Size.Fraction(0.5, a)

    iÿÿÿÿt   %g      Y@s   Unknown formatN(   t   cbookt
   is_numlikeR	   t   is_string_likeR   R   R4   (   RM   t   fraction_ref(    (    s[   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axes_grid1/axes_size.pyt   from_anyß   s    

t   SizeFromFuncc           B   s   e  Z d  „  Z d „  Z RS(   c         C   s   | |  _  d  S(   N(   t   _func(   R   t   func(    (    s[   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axes_grid1/axes_size.pyR   ó   s    c         C   s8   d } |  j  | ƒ } | j d ƒ } | | } | | f S(   Ng        g      R@(   RV   t   points_to_pixels(   R   R   R    R@   RA   R!   (    (    s[   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axes_grid1/axes_size.pyR   ö   s
    
(   R   R   R   R   (    (    (    s[   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axes_grid1/axes_size.pyRU   ò   s   	t   GetExtentHelperc        	   B   sk   e  Z d  „  Z d „  Z d „  Z d „  Z e d e d e d e d e ƒ Z [ [ [ [ d „  Z d	 „  Z	 RS(
   c         C   s   | j  |  j  S(   N(   t   xmin(   t
   tight_bboxt	   axes_bbox(    (    s[   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axes_grid1/axes_size.pyt	   _get_left   s    c         C   s   |  j  | j  S(   N(   t   xmax(   R[   R\   (    (    s[   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axes_grid1/axes_size.pyt
   _get_right  s    c         C   s   | j  |  j  S(   N(   t   ymin(   R[   R\   (    (    s[   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axes_grid1/axes_size.pyt   _get_bottom  s    c         C   s   |  j  | j  S(   N(   t   ymax(   R[   R\   (    (    s[   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axes_grid1/axes_size.pyt   _get_top	  s    t   leftt   rightt   bottomt   topc         C   s_   t  | t ƒ r | g |  _ n	 | |  _ y |  j | |  _ Wn t k
 rZ t d ƒ ‚ n Xd  S(   Ns1   direction must be one of left, right, bottom, top(   R   R    t   _ax_listt   _get_func_mapt	   _get_funct   KeyError(   R   t   axt	   direction(    (    s[   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axes_grid1/axes_size.pyR     s    	c         C   sA   g  |  j  D]' } |  j | j | t ƒ | j ƒ ^ q
 } t | ƒ S(   N(   Rh   Rj   t   get_tightbboxt   Falset   bboxR=   (   R   R   Rl   t   vl(    (    s[   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axes_grid1/axes_size.pyt   __call__  s    4(
   R   R   R]   R_   Ra   Rc   t   dictRi   R   Rr   (    (    (    s[   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axes_grid1/axes_size.pyRY   ÿ   s   						(   R   t   matplotlib.cbookRP   t   matplotlib.axesR    t   objectR   R   R   R	   R"   t   ScalableR%   R.   R0   RB   RC   R   RJ   RH   RT   RU   RY   (    (    (    s[   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axes_grid1/axes_size.pyt   <module>   s$   


 