ó
ÄCõRc           @   sZ  d  d l  m Z d  d l Z d  d l Z d  d l Z d  d l Z d  d l Z d  d l Z d  d l Z d  d l	 Z	 d  d l
 Z
 d  d l Z d  d l m Z m Z m Z m Z d  d l m Z d  d l m Z d  d l m Z d  d l m Z d  d l m Z m Z d  d	 l m Z d  d
 l m Z d  d l m  Z  m! Z! d  d l" m# Z# d  d l$ m% Z% g  Z& xN e j' ƒ  D]@ Z( y  e& j) e e* e( ƒ ƒ j+ ƒ Wn e, k
 r¢n n XqiWd „  Z- d „  Z. d „  Z/ d d Z0 d e0 Z1 d d Z2 d e2 Z3 d Z4 e j5 e4 d ƒ Z6 e j5 e4 d ƒ Z7 d „  Z8 e j5 e4 d ƒ Z9 d „  Z: d „  Z; d „  Z< d „  Z= d „  Z> d e? f d „  ƒ  YZ@ d  f  d! „  ƒ  YZA d" f  d# „  ƒ  YZB d$ f  d% „  ƒ  YZC d& e f d' „  ƒ  YZD d( e f d) „  ƒ  YZE d* „  ZF d+ „  ZG d, „  ZH d- f  d. „  ƒ  YZI d/ e f d0 „  ƒ  YZJ d1 e f d2 „  ƒ  YZK eK ZL d3 „  ZM e	 jN eM ƒ d S(4   iÿÿÿÿ(   t   divisionN(   t   RendererBaset   GraphicsContextBaset   FigureManagerBaset   FigureCanvasBase(   t   MixedModeRenderer(   t   Figure(   t   Text(   t   Path(   t   _pngt   rcParams(   t   font_manager(   t   FT2Font(   t   is_string_liket   is_writable_file_like(   t
   subprocess(   t   check_outputc          C   s5   d d d g }  t  j d d ƒ } | |  k r1 | Sd S(   s   Get chosen TeX system from rc.t   xelatext   lualatext   pdflatexs   pgf.texsystem(   R
   t   get(   t   texsystem_optionst	   texsystem(    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_pgf.pyt   get_texcommand)   s    c          C   sâ   g  }  t  ƒ  } | d k r+ |  j d ƒ n  | d k rÕ t j d t ƒ rÕ d d d g } d d d	 g } xk t | | ƒ D]W \ } } g  t d
 | D] } | t k r’ | ^ q’ } | rw |  j | | d ƒ qw qw Wn  d j |  ƒ S(   s    Build fontspec preamble from rc.R   s   \usepackage{fontspec}s   pgf.rcfontst   serifs
   sans-serift	   monospaces   \setmainfont{%s}s   \setsansfont{%s}s   \setmonofont{%s}s   font.i    s   
(   R   t   appendR
   R   t   Truet   zipt   system_fontst   join(   t   latex_fontspect
   texcommandt   familiest	   fontspecst   familyt   fontspect   ft   matches(    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_pgf.pyt   get_fontspec0   s    		c          C   s:   t  j d d ƒ }  t |  ƒ t k r6 d j |  ƒ }  n  |  S(   s   Get LaTeX preamble from rc.s   pgf.preamblet    s   
(   R
   R   t   typet   listR   (   t   latex_preamble(    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_pgf.pyt   get_preambleH   s    g      ð?gáz®GR@g      R@s   (?<!\\)(?:\\\\)*s   \$s   ([_^$%])c         C   s   d |  j  d ƒ S(   Ns   \i   (   t   group(   t   m(    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_pgf.pyt   <lambda>_   s    s   (\\mathdefault)c         C   s!   |  j  d ƒ t |  j  d ƒ ƒ  S(   Ni    i   (   R-   t   len(   R.   (    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_pgf.pyR/   a   s    c         C   s~   t  j t |  ƒ }  t j |  ƒ } xM t | ƒ D]? \ } } | d sY t j t | ƒ } n
 d | } | | | <q. Wd j | ƒ S(   sh   
    Do some necessary and/or useful substitutions for texts to be included in
    LaTeX documents.
    i   s   \(\displaystyle %s\)R(   (	   t   re_mathdefaultt   subt   repl_mathdefaultt
   re_mathsept   splitt	   enumeratet   re_escapetextt   repl_escapetextR   (   t   textt   partst   it   s(    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_pgf.pyt   common_texificationd   s    

c         C   s   |  j  | ƒ |  j  d ƒ d  S(   Ns   %
(   t   write(   t   fht   line(    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_pgf.pyt   writeln|   s    c         C   s7  g  } i d d 6d d 6d d 6d d 6} |  j  ƒ  d } | | k rX | j | | ƒ n/ | t k r‡ t ƒ  d	 k r‡ | j d
 | ƒ n  |  j ƒ  } | j d | | d f ƒ i d d 6d d 6d d 6} | j | |  j ƒ  ƒ d d d d d d d g } |  j ƒ  | k r| j d ƒ n  | j d ƒ d j | ƒ S(   Ns	   \rmfamilyR   s	   \sffamilyt   sanss
   sans-serifs	   \ttfamilyR   i    R   s   \setmainfont{%s}\rmfamilys   \fontsize{%f}{%f}g333333ó?R(   t   normals   \itshapet   italics   \slshapet   obliquet   semiboldt   demiboldt   demit   boldt   heavys
   extra boldt   blacks	   \bfseriess   \selectfont(   t
   get_familyR   R   R   t   get_size_in_pointst	   get_stylet
   get_weightR   (   t   propt   commandsR!   R#   t   sizet   stylest
   boldstyles(    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_pgf.pyt   _font_properties_strƒ   s$    c             sÑ   g  }  y* t  d d g d t j ƒ|  j d ƒ Wn n XyE t j d k rR d n d ‰  t  ˆ  d g d t j ƒ|  j d ƒ Wn n Xd |  k r¢ d „  } | Sd |  k rÁ ‡  f d †  } | St d	 ƒ ‚ d
 S(   sD   
    Returns a function that converts a pdf file to a png file.
    t
   pdftocairos   -vt   stderrt   win32t   gst   gswin32cc         S   sR   d d d d | |  t  j j | ƒ d g } t d j | ƒ d t d t j ƒd  S(	   NRV   s   -singlefiles   -pngs   -r %di    t    t   shellRW   (   t   ost   patht   splitextR   R   R   R   t   STDOUT(   t   pdffilet   pngfilet   dpit   cmd(    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_pgf.pyt   cairo_convert¶   s    	#c            sO   ˆ  d d d d d d d d d	 d
 d | d | |  g } t  | d t j ƒd  S(   Ns   -dQUIETs   -dSAFERs   -dBATCHs	   -dNOPAUSEs
   -dNOPROMPTs   -sDEVICE=png16ms   -dUseCIEColors   -dTextAlphaBits=4s   -dGraphicsAlphaBits=4s   -dDOINTERPOLATEs   -sOutputFile=%ss   -r%dRW   (   R   R   R`   (   Ra   Rb   Rc   Rd   (   RY   (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_pgf.pyt
   gs_convert½   s
    	s&   No suitable pdf to png renderer found.N(   R   R   R`   R   t   syst   platformt   RuntimeError(   t   tools_availableRe   Rf   (    (   RY   sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_pgf.pyt   make_pdf_to_png_converter    s&    	t
   LatexErrorc           B   s   e  Z d  d „ Z RS(   R(   c         C   s   t  j |  | ƒ | |  _ d  S(   N(   t	   Exceptiont   __init__t   latex_output(   t   selft   messageRo   (    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_pgf.pyRn   É   s    (   t   __name__t
   __module__Rn   (    (    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_pgf.pyRl   È   s   t   LatexManagerFactoryc           B   s   e  Z d Z e d  „  ƒ Z RS(   c          C   s”   t  ƒ  }  t j ƒ  } t j } | r` | j | k r` | j |  k r` t j d t	 ƒ r\ d GHn  | St j d t	 ƒ rz d GHn  t ƒ  } | t _ | Sd  S(   Ns	   pgf.debugs   reusing LatexManagers   creating LatexManager(
   R   t   LatexManagert   _build_latex_headerRt   t   previous_instancet   latex_headerR    R
   R   t   False(   R    Rx   t   prevt   new_inst(    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_pgf.pyt   get_latex_managerÑ   s    		$		N(   Rr   Rs   t   NoneRw   t   staticmethodR|   (    (    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_pgf.pyRt   Î   s   t   WeakSetc           B   s,   e  Z d  „  Z d „  Z d „  Z d „  Z RS(   c         C   s   t  j ƒ  |  _ d  S(   N(   t   weakreft   WeakKeyDictionaryt   weak_key_dict(   Rp   (    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_pgf.pyRn   ç   s    c         C   s   d  |  j | <d  S(   N(   R}   R‚   (   Rp   t   item(    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_pgf.pyt   addê   s    c         C   s    | |  j  k r |  j  | =n  d  S(   N(   R‚   (   Rp   Rƒ   (    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_pgf.pyt   discardí   s    c         C   s   |  j  j ƒ  S(   N(   R‚   t   iterkeys(   Rp   (    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_pgf.pyt   __iter__ñ   s    (   Rr   Rs   Rn   R„   R…   R‡   (    (    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_pgf.pyR   ã   s   			Ru   c           B   st   e  Z d  Z e ƒ  Z e d „  ƒ Z e d „  ƒ Z d „  Z d „  Z	 d „  Z
 d „  Z d „  Z d „  Z d	 „  Z RS(
   sá   
    The LatexManager opens an instance of the LaTeX application for
    determining the metrics of text elements. The LaTeX environment can be
    modified by setting fonts and/or a custem preamble in the rc parameters.
    c          C   s7   t  ƒ  }  t ƒ  } d |  | d d d g } d j | ƒ S(   Ns   \documentclass{minimal}s   \begin{document}s   text $math \mu$s!   \typeout{pgf_backend_query_start}s   
(   R,   R'   R   (   R+   R   Rx   (    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_pgf.pyRv   ý   s    			c          C   s.   t  t j ƒ }  x |  D] } | j ƒ  q Wd  S(   N(   R*   Ru   t   _unclean_instancest   _cleanup(   t   unclean_instancest   latex_manager(    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_pgf.pyt   _cleanup_remaining_instances  s    c         C   s1   |  j  j | ƒ |  j  j d ƒ |  j  j ƒ  d  S(   Ns   
(   t   latex_stdin_utf8R>   t   flush(   Rp   R<   (    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_pgf.pyt   _stdin_writeln  s    c         C   s“   | j  d ƒ } t ƒ  } xk t r… |  j j j d ƒ } | | 7} | t | ƒ | k r[ Pn  t | ƒ s t d | j d ƒ ƒ ‚ q q W| j d ƒ S(   Nt   utf8i   s   LaTeX process halted(	   t   encodet	   bytearrayR   t   latext   stdoutt   readR0   Rl   t   decode(   Rp   R<   t   expt   buft   b(    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_pgf.pyt   _expect  s    		
c         C   s   |  j  d ƒ S(   Ns   
*(   Rš   (   Rp   (    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_pgf.pyt   _expect_prompt#  s    c         C   sW  t  j d d ƒ |  _ t j j |  ƒ t ƒ  |  _ t j ƒ  |  _	 d } t
 j |  j d g d t
 j d t
 j d |  j ƒ} |  j	 | } | j | j d ƒ ƒ \ } } | j d	 k rÆ t d
 | ƒ ‚ n  t
 j |  j d g d t
 j d t
 j d |  j ƒ} | |  _ t j d ƒ |  j j ƒ |  _ |  j |  j ƒ  ƒ |  j d ƒ |  j ƒ  i  |  _ d  S(   Nt   prefixt   mpl_pgf_lm_s   
\makeatletter
\@@end
s   -halt-on-errort   stdinR”   t   cwds   utf-8i    sG   LaTeX returned an error, probably missing font or error in preamble:
%sR�   s   *pgf_backend_query_start(   t   tempfilet   mkdtempt   tmpdirRu   Rˆ   R„   R   R    Rv   Rx   R   t   Popent   PIPEt   communicateR‘   t
   returncodeRl   R“   t   codecst	   getwriterRž   R�   R�   Rš   R›   t	   str_cache(   Rp   t	   latex_endR“   t
   test_inputR”   RW   (    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_pgf.pyRn   &  s*    	
c         C   s—   t  j j |  j ƒ s d  Sy+ |  j j ƒ  |  j j ƒ  |  j j ƒ  Wn n Xy$ t	 j
 |  j ƒ t j j |  ƒ Wn t j j d |  j ƒ n Xd  S(   Ns    error deleting tmp directory %s
(   R]   R^   t   isdirR¢   R�   t   closeR“   R¥   t   waitt   shutilt   rmtreeRu   Rˆ   R…   Rg   RW   R>   (   Rp   (    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_pgf.pyR‰   F  s    c         C   s(   t  j d t ƒ r d GHn  |  j ƒ  d  S(   Ns	   pgf.debugs   deleting LatexManager(   R
   R   Ry   R‰   (   Rp   (    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_pgf.pyt   __del__U  s    c         C   s�  t  | ƒ } d | | f } | |  j k r6 |  j | S|  j | ƒ y |  j ƒ  Wn2 t k
 r… } d } t | | | j f ƒ ‚ n X|  j d ƒ y |  j ƒ  } Wn2 t k
 r× } d } t | | | j f ƒ ‚ n Xy& | j ƒ  d j d ƒ \ } }	 }
 Wn# d | | f } t | ƒ ‚ n Xt	 | d  ƒ t	 |	 d  ƒ t	 |
 d  ƒ } } } | | | | f |  j | <| | | | f S(   sy   
        Get the width, total height and descent for a text typesetted by the
        current LaTeX environment.
        s   \sbox0{%s %s}s&   Error processing '%s'
LaTeX Output:
%ss$   \typeout{\the\wd0,\the\ht0,\the\dp0}i    t   ,iþÿÿÿ(
   RU   R©   R�   R›   Rl   t
   ValueErrorRo   t
   splitlinesR5   t   float(   Rp   R9   RP   t	   prop_cmdst   textboxt   et   msgt   answert   widtht   heightt   offsett   wt   ht   o(    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_pgf.pyt   get_width_height_descentZ  s0    &2(   Rr   Rs   t   __doc__R   Rˆ   R~   Rv   RŒ   R�   Rš   R›   Rn   R‰   R±   RÁ   (    (    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_pgf.pyRu   õ   s   					 		t   RendererPgfc           B   sª   e  Z e d  „ Z d d „ Z d d „ Z d „  Z d „  Z d „  Z	 e
 e d „ Z d „  Z d d d	 „ Z e d d
 „ Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   c         C   s’   t  j |  ƒ | j |  _ | |  _ | |  _ d |  _ t j ƒ  |  _ | rŽ d „  } x9 t	 j
 j ƒ  D]% } | j d ƒ rb | |  j
 | <qb qb Wn  d S(   sI  
        Creates a new PGF renderer that translates any drawing instruction
        into text commands to be interpreted in a latex pgfpicture environment.

        Attributes:
        * figure: Matplotlib figure to initialize height, width and dpi from.
        * fh: File handle for the output of the drawing commands.
        i    c          _   s   d  S(   N(   R}   (   t   argst   kwargs(    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_pgf.pyR/   �  s    t   draw_N(   R   Rn   Rc   R?   t   figuret   image_counterRt   R|   t   latexManagerRÃ   t   __dict__t   keyst
   startswith(   Rp   RÇ   R?   t   dummyt   nopR.   (    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_pgf.pyRn   ‰  s    					c         C   s‡  t  |  j d ƒ d |  j } |  j | ƒ |  j | | ƒ | j | ƒ j ƒ  \ } }	 | d | | d | |	 d | |	 d | f }
 t  |  j d |
 ƒ |  j d  | | ƒ |  j	 d | j
 ƒ  d k d | d  k	 ƒ t  |  j d	 ƒ xŠ | j | d
 t ƒD]s \ } } | d | | d | } } t  |  j d ƒ t  |  j d | | f ƒ t  |  j d ƒ t  |  j d ƒ qü Wt  |  j d ƒ d  S(   Ns   \begin{pgfscope}g      ð?i    i   sQ   \pgfsys@defobject{currentmarker}{\pgfqpoint{%fin}{%fin}}{\pgfqpoint{%fin}{%fin}}{t   strokeg        t   fillt   }t   simplifys"   \pgfsys@transformshift{%fin}{%fin}s"   \pgfsys@useobject{currentmarker}{}s   \end{pgfscope}(   RA   R?   Rc   t   _print_pgf_clipt   _print_pgf_path_stylest   get_extentst
   get_pointst   _print_pgf_pathR}   t   _pgf_path_drawt   get_linewidtht   iter_segmentsRy   (   Rp   t   gct   marker_patht   marker_transR^   t   transt   rgbFaceR%   t   blt   trt   coordst   pointt   codet   xt   y(    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_pgf.pyt   draw_markers¢  s$    2"c         C   s¬  t  |  j d ƒ |  j | ƒ |  j | | ƒ |  j | | | ƒ |  j d | j ƒ  d k d | d  k	 ƒ t  |  j d ƒ | j ƒ  r¨t  |  j d ƒ |  j | | ƒ |  j | ƒ |  j | | | ƒ t  |  j d ƒ t  |  j d ƒ t  |  j d ƒ t  |  j d ƒ t  |  j d ƒ t	 j
 j ƒ  j |  j ƒ } |  j d  | j ƒ  | ƒ |  j d t ƒ t  |  j d ƒ t  |  j d	 ƒ d
 |  j } | j | ƒ j ƒ  \ \ } } \ }	 }
 | | | |	 } }	 | | | |
 } }
 t t j |	 | ƒ ƒ t t j |
 | ƒ ƒ } } t  |  j d | | f ƒ xo t | ƒ D]a } x4 t | ƒ D]& } t  |  j d ƒ t  |  j d ƒ qCWt  |  j d | ƒ t  |  j d ƒ q0Wt  |  j d ƒ n  d  S(   Ns   \begin{pgfscope}RÏ   g        RÐ   s   \end{pgfscope}s   \pgfusepath{clip}sN   \pgfsys@defobject{currentpattern}{\pgfqpoint{0in}{0in}}{\pgfqpoint{1in}{1in}}{s=   \pgfpathrectangle{\pgfqpoint{0in}{0in}}{\pgfqpoint{1in}{1in}}RÑ   g      ð?s"   \pgfsys@transformshift{%fin}{%fin}s#   \pgfsys@useobject{currentpattern}{}s    \pgfsys@transformshift{1in}{0in}s"   \pgfsys@transformshift{-%din}{0in}s    \pgfsys@transformshift{0in}{1in}(   RA   R?   RÓ   RÔ   R×   RØ   RÙ   R}   t	   get_hatcht   mplt
   transformst   Affine2Dt   scaleRc   t   get_hatch_pathR   RÕ   RÖ   t   intt   matht   ceilt   range(   Rp   RÛ   R^   t	   transformRß   Rì   R%   t   xmint   ymint   xmaxt   ymaxt   repxt   repyt   iyt   ix(    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_pgf.pyt	   draw_path¿  sF    '3c         C   sÚ   d |  j  } | j ƒ  } | r’ | j ƒ  \ } } | | \ } } | d | | d | | | | | f } t |  j d | ƒ t |  j d ƒ n  | j ƒ  \ }	 }
 |	 d  k	 rÖ |  j | |	 |
 ƒ t |  j d ƒ n  d  S(   Ng      ð?i    i   sB   \pgfpathrectangle{\pgfqpoint{%fin}{%fin}}{\pgfqpoint{%fin}{%fin}} s   \pgfusepath{clip}(   Rc   t   get_clip_rectangleRÖ   RA   R?   t   get_clip_pathR}   R×   (   Rp   RÛ   R%   t   bboxt   p1t   p2R¾   R¿   Râ   t   clippatht   clippath_trans(    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_pgf.pyRÓ   í  s    *c         C   s$  i d d 6d d 6d d 6} t  |  j | | j ƒ  ƒ i d d 6d	 d 6d
 d 6} t  |  j | | j ƒ  ƒ | d  k	 } | j ƒ  r• | j ƒ  } } n8 | j ƒ  d } | rÇ t | ƒ d k rÇ | d n d } | rt  |  j d t	 | d  ƒ ƒ t  |  j d ƒ n  | r-| d k r-t  |  j d | ƒ n  | j
 ƒ  t t } | j ƒ  }	 t  |  j d | ƒ t  |  j d |	 d  ƒ t  |  j d ƒ | d k r¬t  |  j d | ƒ n  | j ƒ  \ }
 } | d  k rÝt  |  j d ƒ nC d } x | D] } | d | 7} qêW| d |
 7} t  |  j | ƒ d  S(   Ns   \pgfsetbuttcapt   butts   \pgfsetroundcapt   rounds   \pgfsetrectcapt
   projectings   \pgfsetmiterjoint   miters   \pgfsetroundjoins   \pgfsetbeveljoint   beveli   g      ð?s(   \definecolor{currentfill}{rgb}{%f,%f,%f}s   \pgfsetfillcolor{currentfill}s   \pgfsetfillopacity{%f}s   \pgfsetlinewidth{%fpt}s*   \definecolor{currentstroke}{rgb}{%f,%f,%f}s!   \pgfsetstrokecolor{currentstroke}s   \pgfsetstrokeopacity{%f}s   \pgfsetdash{}{0pt}s   \pgfsetdash{s   {%fpt}s   }{%fpt}(   RA   R?   t   get_capstylet   get_joinstyleR}   t   get_forced_alphat	   get_alphat   get_rgbR0   t   tupleRÙ   t   mpl_pt_to_int   latex_in_to_ptt
   get_dashes(   Rp   RÛ   Rß   t	   capstylest
   joinstylest   has_fillt   fillopacityt   strokeopacityt   lwt   stroke_rgbat   dash_offsett	   dash_listt   dash_strt   dash(    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_pgf.pyRÔ   þ  sB    



(c         C   s  d |  j  } | r | j ƒ  n d  } | rb | j ƒ  \ } } | d | d | d | d f } n d  } x¥| j | d | ƒD]Ž\ }	 }
 |
 t j k rÐ t |	 ƒ \ } } t |  j	 d | | | | f ƒ q~ |
 t j
 k rò t |  j	 d ƒ q~ |
 t j k r8t |	 ƒ \ } } t |  j	 d | | | | f ƒ q~ |
 t j k r˜t |	 ƒ \ } } } } | | | | | | | | f } t |  j	 d | ƒ q~ |
 t j k r~ t |	 ƒ \ } } } } } } | | | | | | | | | | | | f } t |  j	 d	 | ƒ q~ q~ Wd  S(
   Ng      ð?i    i   t   clips&   \pgfpathmoveto{\pgfqpoint{%fin}{%fin}}s   \pgfpathcloses&   \pgfpathlineto{\pgfqpoint{%fin}{%fin}}sH   \pgfpathquadraticcurveto{\pgfqpoint{%fin}{%fin}}{\pgfqpoint{%fin}{%fin}}sW   \pgfpathcurveto{\pgfqpoint{%fin}{%fin}}{\pgfqpoint{%fin}{%fin}}{\pgfqpoint{%fin}{%fin}}(   Rc   Rü   R}   RÖ   RÚ   R   t   MOVETOR  RA   R?   t	   CLOSEPOLYt   LINETOt   CURVE3t   CURVE4(   Rp   RÛ   R^   Rò   R%   Rþ   Rÿ   R   R  t   pointsRä   Rå   Ræ   t   cxt   cyt   pxt   pyRâ   t   c1xt   c1yt   c2xt   c2y(    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_pgf.pyR×   .  s2    %""0c         C   sS   g  } | r | j  d ƒ n  | r2 | j  d ƒ n  t |  j d d j | ƒ ƒ d  S(   NRÏ   RÐ   s   \pgfusepath{%s}R²   (   R   RA   R?   R   (   Rp   RÏ   RÐ   t   actions(    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_pgf.pyRØ   L  s    c         C   s)  t  j j |  j j ƒ } t  j j t  j j |  j j ƒ ƒ d } d | |  j f } |  j d 7_ | j ƒ  | j	 ƒ  \ } }	 }
 t
 j |
 |	 | t  j j | | ƒ ƒ t |  j d ƒ |  j | ƒ | j ƒ  \ } } d |  j } t |  j d | | | | | | | | | f ƒ t |  j d ƒ d  S(   Ni    s   %s-img%d.pngi   s   \begin{pgfscope}g      ð?sg   \pgftext[at=\pgfqpoint{%fin}{%fin},left,bottom]{\pgfimage[interpolate=true,width=%fin,height=%fin]{%s}}s   \end{pgfscope}(   R]   R^   t   dirnameR?   t   nameR_   t   basenameRÈ   t
   flipud_outt   as_rgba_strR	   t	   write_pngR   RA   RÓ   t   get_size_outRc   (   Rp   RÛ   Rå   Ræ   t   imR^   t   fnamet	   fname_imgt   rowst   colsR˜   R¿   R¾   R%   (    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_pgf.pyt
   draw_imageT  s    (
%3s   TeX!c	   	   	   C   s&   |  j  | | | | | | | | ƒ d  S(   N(   t	   draw_text(	   Rp   RÛ   Rå   Ræ   R<   RP   t   anglet   ismatht   mtext(    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_pgf.pyt   draw_texi  s    c	         C   s\  t  | ƒ } t | ƒ }	 d |	 | f } t |  j d ƒ | j ƒ  }
 |
 d k r{ t |  j d |
 ƒ t |  j d |
 ƒ n  t | j ƒ  ƒ d  } | d k rÔ t |  j d | ƒ t |  j d	 ƒ t |  j d
 ƒ n  d |  j j } g  } | d k s| j	 ƒ  d k rÁ| j
 ƒ  j | j ƒ  ƒ \ } } | j d | | ƒ | j d | | ƒ i d d 6d d 6d d 6} i d d 6d d 6d d 6d d 6} | j | | j ƒ  ƒ | j | | j ƒ  ƒ nD | j d | | ƒ | j d | | ƒ | j d ƒ | j d ƒ | d k r%| j d | ƒ n  t |  j d d j | ƒ | f ƒ t |  j d ƒ d  S(   Nu   {%s %s}s   \begin{pgfscope}g      ð?s   \pgfsetfillopacity{%f}s   \pgfsetstrokeopacity{%f}i   i    s&   \definecolor{textcolor}{rgb}{%f,%f,%f}s   \pgfsetstrokecolor{textcolor}s   \pgfsetfillcolor{textcolor}t   anchors   x=%fins   y=%fint   leftt   rightR(   t   centert   topt   bottomt   baset   baselines	   rotate=%fs   \pgftext[%s]{%s}R²   s   \end{pgfscope}(   i    i    i    (   R=   RU   RA   R?   R  R  R  RÇ   Rc   t   get_rotation_modet   get_transformt   transform_pointt   get_positionR   t   get_hat   get_vaR   (   Rp   RÛ   Rå   Ræ   R<   RP   R:  R;  R<  R¶   t   alphat   rgbR%   t	   text_argst   halignt   valign(    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_pgf.pyR9  l  s@    !#c         C   sP   t  | ƒ } |  j j | | ƒ \ } } } t |  j } | | | | | | f S(   N(   R=   RÉ   RÁ   R  Rc   (   Rp   R<   RP   R;  R¾   R¿   t   dR%   (    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_pgf.pyt   get_text_width_height_descentš  s    c         C   s   t  S(   N(   Ry   (   Rp   (    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_pgf.pyt   flipy¦  s    c         C   s   |  j  j ƒ  |  j  j ƒ  f S(   N(   RÇ   t   get_figwidtht   get_figheight(   Rp   (    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_pgf.pyt   get_canvas_width_height©  s    c         C   s   | t  |  j S(   N(   R  Rc   (   Rp   R"  (    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_pgf.pyt   points_to_pixels¬  s    c         C   s   t  ƒ  S(   N(   t   GraphicsContextPgf(   Rp   (    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_pgf.pyt   new_gc¯  s    N(   Rr   Rs   Ry   Rn   R}   Rç   Rû   RÓ   RÔ   R×   R   RØ   R8  R=  R9  RR  RS  RV  RW  RY  (    (    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_pgf.pyRÃ   ‡  s   .		0		.				RX  c           B   s   e  Z RS(    (   Rr   Rs   (    (    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_pgf.pyRX  ³  s   c           C   s   d  S(   N(    (    (    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_pgf.pyt   draw_if_interactive¹  s    c         O   s.   | j  d t ƒ } | | | Ž  } t |  | ƒ S(   s.   
    Create a new figure manager instance
    t   FigureClass(   t   popR   t   new_figure_manager_given_figure(   t   numRÄ   RÅ   R[  t   thisFig(    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_pgf.pyt   new_figure_manager½  s    c         C   s   t  | ƒ } t | |  ƒ } | S(   sD   
    Create a new figure manager instance for the given figure.
    (   t   FigureCanvasPgft   FigureManagerPgf(   R^  RÇ   t   canvast   manager(    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_pgf.pyR]  Ê  s    t   TmpDirCleanerc           B   s/   e  Z e ƒ  Z e d  „  ƒ Z e d „  ƒ Z RS(   c         C   s   t  j j |  ƒ d  S(   N(   Re  t   remaining_tmpdirsR„   (   R¢   (    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_pgf.pyR„   Ö  s    c          C   sG   x@ t  j D]5 }  y t j |  ƒ Wq
 t j j d |  ƒ q
 Xq
 Wd  S(   Ns    error deleting tmp directory %s
(   Re  Rf  R¯   R°   Rg   RW   R>   (   R¢   (    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_pgf.pyt   cleanup_remaining_tmpdirsÚ  s
    (   Rr   Rs   t   setRf  R~   R„   Rg  (    (    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_pgf.pyRe  Ó  s   	Ra  c           B   st   e  Z i d  d 6d d 6d d 6Z d „  Z d „  Z d „  Z d	 „  Z d
 „  Z d „  Z d „  Z	 d „  Z
 d „  Z RS(   s   LaTeX PGF picturet   pgfs   LaTeX compiled PGF picturet   pdfs   Portable Network Graphicst   pngc         G   s   t  j |  | Œ d  S(   N(   R   Rn   (   Rp   RÄ   (    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_pgf.pyRn   è  s    c         C   s   d S(   NRj  (    (   Rp   (    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_pgf.pyt   get_default_filetypeë  s    c         O   sÙ  | j  d t ƒ r> t |  j d  d t ƒ} |  j j | ƒ d  Sd } d g } x( t ƒ  j ƒ  D] } | j	 d | ƒ q] Wx( t
 ƒ  j ƒ  D] } | j	 d | ƒ qˆ W| j	 d ƒ d j | ƒ } |  j j ƒ  |  j j ƒ  } }	 |  j j ƒ  }
 | j | ƒ | j | ƒ | j d ƒ t | d ƒ t | d	 ƒ t | d
 ƒ t | d | |	 f ƒ t | d ƒ | j d d  ƒ } t |  j | |	 |
 t |  j | ƒ d | ƒ} |  j j | ƒ t | d ƒ t | d ƒ t | d ƒ d  S(   Nt   dryrunRÍ   s  %% Creator: Matplotlib, PGF backend
%%
%% To include the figure in your LaTeX document, write
%%   \input{<filename>.pgf}
%%
%% Make sure the required packages are loaded in your preamble
%%   \usepackage{pgf}
%%
%% Figures using additional raster images can only be included by \input if
%% they are in the same directory as the main LaTeX file. For loading figures
%% from other directories you can use the `import` package
%%   \usepackage{import}
%% and then include the figures with
%%   \import{<path to file>}{<filename>.pgf}
%%
s)   %% Matplotlib used the following preambles   %%   s   %%s   
s   \begingroups   \makeatletters   \begin{pgfpicture}s:   \pgfpathrectangle{\pgfpointorigin}{\pgfqpoint{%fin}{%fin}}s    \pgfusepath{use as bounding box}t   bbox_inches_restores   \end{pgfpicture}s   \makeatothers	   \endgroup(   R   Ry   RÃ   RÇ   R}   R   t   drawR,   R´   R   R'   R   RT  RU  t   get_dpiR>   RA   R\  R   (   Rp   R?   RÄ   RÅ   t   renderert   header_textt   header_info_preambleR@   R¾   R¿   Rc   t   _bbox_inches_restore(    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_pgf.pyt   _print_pgf_to_fhî  s<    		c         O   s›   | j  d t ƒ r) |  j d | | Ž d St | ƒ rl t j | d d d ƒ� } |  j | | | Ž Wd QXn+ t | ƒ r‹ t d d ƒ ‚ n t d ƒ ‚ d S(	   s{   
        Output pgf commands for drawing the figure so it can be included and
        rendered in latex documents.
        Rm  NR¾   t   encodings   utf-8s)   saving pgf to a stream is not supported, s0   consider using the pdf option of the pgf-backends   filename must be a path(	   R   Ry   Ru  R}   R   R§   t   openR   R³   (   Rp   t   fname_or_fhRÄ   RÅ   R?   (    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_pgf.pyt	   print_pgf&  s    c         O   sœ  |  j  j ƒ  |  j  j ƒ  } } zMt j d d ƒ } t j j | d ƒ } t j j | d ƒ } t j j | d ƒ }	 |  j | | | Ž t	 ƒ  }
 t
 ƒ  } d | | |
 | f } t j | d d ƒ � } | j | ƒ Wd  QXt ƒ  } | d	 d
 d g } y t | d t j d | ƒWn/ t j k
 rB} t d | | j f ƒ ‚ n Xt |	 d ƒ � } t j | | ƒ Wd  QXWd  y t j | ƒ Wn t j | ƒ n XXd  S(   NRœ   t   mpl_pgf_s
   figure.pgfs
   figure.texs
   figure.pdfs¹   
\documentclass[12pt]{minimal}
\usepackage[paperwidth=%fin, paperheight=%fin, margin=0in]{geometry}
%s
%s
\usepackage{pgf}

\begin{document}
\centering
\input{figure.pgf}
\end{document}R¾   s   utf-8s   -interaction=nonstopmodes   -halt-on-errorRW   RŸ   s3   %s was not able to process your file.

Full log:
%st   rb(   RÇ   RT  RU  R    R¡   R]   R^   R   Ry  R,   R'   R§   Rw  R>   R   R   R   R`   t   CalledProcessErrorRi   t   outputR¯   t   copyfileobjR°   Re  R„   (   Rp   R?   RÄ   RÅ   R¾   R¿   R¢   t	   fname_pgft	   fname_text	   fname_pdfR+   R   t	   latexcodet   fh_texR    t   cmdargsR¸   t   fh_src(    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_pgf.pyt   _print_pdf_to_fh9  s2    			c         O   s•   | j  d t ƒ r) |  j d | | Ž d St | ƒ rc t | d ƒ � } |  j | | | Ž Wd QXn. t | ƒ r… |  j | | | Ž n t d ƒ ‚ d S(   sE   
        Use LaTeX to compile a Pgf generated figure to PDF.
        Rm  Nt   wbs-   filename must be a path or a file-like object(	   R   Ry   Ru  R}   R   Rw  R†  R   R³   (   Rp   Rx  RÄ   RÅ   R?   (    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_pgf.pyt	   print_pdfg  s    c   	      O   sÍ   t  ƒ  } z” t j d d ƒ } t j j | d ƒ } t j j | d ƒ } |  j | | | Ž | | | d |  j j ƒt	 | d ƒ � } t
 j | | ƒ Wd  QXWd  y t
 j | ƒ Wn t j | ƒ n XXd  S(   NRœ   Rz  s
   figure.pdfs
   figure.pngRc   R{  (   Rk   R    R¡   R]   R^   R   Rˆ  RÇ   Rc   Rw  R¯   R~  R°   Re  R„   (	   Rp   R?   RÄ   RÅ   t	   converterR¢   R�  t	   fname_pngR…  (    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_pgf.pyt   _print_png_to_fhx  s    	c         O   s•   | j  d t ƒ r) |  j d | | Ž d St | ƒ rc t | d ƒ � } |  j | | | Ž Wd QXn. t | ƒ r… |  j | | | Ž n t d ƒ ‚ d S(   sQ   
        Use LaTeX to compile a pgf figure to pdf and convert it to png.
        Rm  NR‡  s-   filename must be a path or a file-like object(	   R   Ry   Ru  R}   R   Rw  R‹  R   R³   (   Rp   Rx  RÄ   RÅ   R?   (    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_pgf.pyt	   print_pngŒ  s    c         C   s   t  |  j d  d t ƒS(   NRÍ   (   RÃ   RÇ   R}   R   (   Rp   (    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_pgf.pyt   get_rendererœ  s    (   Rr   Rs   t	   filetypesRn   Rl  Ru  Ry  R†  Rˆ  R‹  RŒ  R�  (    (    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_pgf.pyRa  ã  s   

			8		.			Rb  c           B   s   e  Z d  „  Z RS(   c         G   s   t  j |  | Œ d  S(   N(   R   Rn   (   Rp   RÄ   (    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_pgf.pyRn   ¡  s    (   Rr   Rs   Rn   (    (    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_pgf.pyRb     s   c           C   s   t  j ƒ  t j ƒ  d  S(   N(   Ru   RŒ   Re  Rg  (    (    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_pgf.pyt   _cleanup_all¨  s    
(O   t
   __future__R    Rï   R]   Rg   t   reR¯   R    R§   t   atexitR€   t
   matplotlibRé   t   matplotlib.backend_basesR   R   R   R   t!   matplotlib.backends.backend_mixedR   t   matplotlib.figureR   t   matplotlib.textR   t   matplotlib.pathR   R	   R
   R   t   matplotlib.ft2fontR   t   matplotlib.cbookR   R   t   matplotlib.compatR   t   matplotlib.compat.subprocessR   R   t   findSystemFontsR%   R   t   strt   family_nameRi   R   R'   R,   t   latex_pt_to_inR  R  t   mpl_in_to_ptt	   NO_ESCAPEt   compileR4   R7   R8   R1   R3   R=   RA   RU   Rk   Rm   Rl   Rt   R   Ru   RÃ   RX  RZ  R`  R]  Re  Ra  Rb  t   FigureManagerR�  t   register(    (    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_pgf.pyt   <module>   s|   " 			



						(’ÿ -				½	