Ñò
&–5Nc           @À  sØ   d  d k  l Z d  d k  l Z d  d k Z d  d k Z d d k l Z l Z l Z d d k	 l
 Z
 l Z l Z d d k l Z d „  Z d	 „  Z d Z d Z d d „ Z h  e d „ Z h  d „ Z h  d d „ Z d S(   i    (   t   with_statement(   t   absolute_importNi   (   t   wikit   modelt   flavors(   t   Intermedt   TRANSLATORSt   ConversionFailedException(   t   FILTERSc         CÀ  sZ  | t  j o
 | } n | i d ƒ } t i i d |  d | ƒ } | d  j oƒ t i d |  d | d | ƒ } xD | D]< } t i i | Œ  } | | i j o | i i	 | ƒ qs qs Wt i
 i ƒ  t i
 i ƒ  n† t i d |  o |  i i n d  |  o |  i i n d  | f ƒ t | i ƒ | j o- | | _ t i d t | i ƒ | f ƒ n d  S(   Ns   utf-8t   propvalt   formatt   valuesE   cache_propval called on already-cached propval %s.%s for format '%s'!s%   incompatibly cached values: %s vs %s!(   t   UNICODE_FORMATSt   encodeR   t
   CacheEntryt   get_byt   Nonet
   Dependencyt   get_or_createt   dependenciest   appendt   sessiont   flusht
   expire_allt   warningst   warnt   elementt   enamet   propt   namet   strR   (   R	   R
   R   t   depst   svaluet   cet   dt   dep(    (    sB   /afs/sipb.mit.edu/project/bazki/Checkout/lib/bazbase/conversion.pyt   cache_propval   s*    
	 	"		c         À  sÞ  d |  j p t  ‚ t |  ƒ ‰  d ˆ  j o>d ˆ  j p t  ‚ d ˆ  j p t  ‚ h  } h  } xˆ ˆ  d i ƒ  D]v \ } } t | t i ƒ o | | | <qr t | t ƒ p t  ‚ d | j p t  ‚ d | j p t  ‚ | | | <qr Wˆ  d =t | ƒ d j o' d i d „  | i ƒ  Dƒ ƒ ˆ  d <n t | ƒ d j o' d i d	 „  | i ƒ  Dƒ ƒ ˆ  d <qkn t	 d
 „  ˆ  i
 ƒ  Dƒ ƒ p
 t  ˆ  ‚ t ˆ  ƒ d j o1 d d i ‡  f d †  t ˆ  ƒ Dƒ ƒ i d ƒ Sd Sd  S(   Nt   metadatat   lett   elett   mlett   ;t   |i    c         sÀ  s,   x% |  ] \ } } d  | | i  f Vq Wd S(   s   %s=%sN(   R   (   t   .0t   kt   v(    (    sB   /afs/sipb.mit.edu/project/bazki/Checkout/lib/bazbase/conversion.pys	   <genexpr>9   s   	c         sÀ  s)   x" |  ] \ } } d  | | f Vq Wd S(   s   %s=%sN(    (   R+   R,   R-   (    (    sB   /afs/sipb.mit.edu/project/bazki/Checkout/lib/bazbase/conversion.pys	   <genexpr><   s   	c         sÀ  s"   x |  ] } t  | t ƒ Vq Wd  S(   N(   t
   isinstancet
   basestring(   R+   R-   (    (    sB   /afs/sipb.mit.edu/project/bazki/Checkout/lib/bazbase/conversion.pys	   <genexpr>>   s   	u   |c         3À  s'   x  |  ] } d  | ˆ  | f Vq Wd S(   s   %s=%sN(    (   R+   R,   (   t   mfilters(    sB   /afs/sipb.mit.edu/project/bazki/Checkout/lib/bazbase/conversion.pys	   <genexpr>A   s   	s   utf-8t    (   t   AssertionErrort   dictt   itemsR.   R   t   ElementR   t   lent   joint   allt   valuest   sortedR   (   t   filtersR'   R(   R,   R-   (    (   R0   sB   /afs/sipb.mit.edu/project/bazki/Checkout/lib/bazbase/conversion.pyt   flatten_filters&   s8     	t   texs   .text   txts   .txtt   htmls   .htmlc      	   CÀ  s¾  |  d  j	 oE |  i i |  i i f | j p" t |  i i |  i i f | f ‚ n | t j o$ t | t ƒ p t t	 | ƒ ‚ n! t | t
 ƒ p t t	 | ƒ ‚ t | ƒ } | i | | ƒ | i | ƒ x| D]} | d  j	 o¯ | i ƒ  o¡ t i | i ƒ  j o‹ t | i ƒ  i d h  ƒ ƒ d j of | i ƒ  t j p% t | i ƒ  i d g  ƒ ƒ d j o. | i ƒ  }	 t | i ƒ  ƒ }
 | i ƒ  } n d  } | | ƒ | d  j	 o1 t i | i ƒ  j o t |  |	 | | |
 ƒ qÓ qÓ W| i ƒ  i d h  ƒ } x3 t | ƒ D]% } t | i ƒ  | | | | ƒ qW| i ƒ  } | i ƒ  } | i ƒ  } |  d  j	 oÌ |  i i |  i i f | j p" t |  i i |  i i f | f ‚ t i |  i i i pp | i  d ƒ o0 t | t! ƒ p t t	 | ƒ |  i i g ‚ q.t | t ƒ p t t	 | ƒ |  i i g ‚ q2n | d  j	 o{ t i | j oM | t j p% t | i ƒ  i d g  ƒ ƒ d j o t |  | | | | ƒ qº| t" i# f j p t ‚ n | S(   NR;   i    t   imagest   .($   R   R   R   R   R   R2   R   R.   t   unicodet   reprt   bufferR   t   setDatat   addDepst   isPathR   t	   DISCORDIAt   getDepsR6   R%   t   gett   getExtensiont   IMAGE_METADATA_FORMATSt   sett   asDataR$   t   listR   R   t   FLAVORSt   flavort   binaryt
   startswithR   R   t   TXT(   R	   t	   renderingt   rendering_extR   R%   t   flistt	   cache_tagt   imt   ft   oldextt   olddepst   olddataR;   t   filtR   t   ext(    (    sB   /afs/sipb.mit.edu/project/bazki/Checkout/lib/bazbase/conversion.pyt   apply_filtersO   sZ    E$  %%
 #A%c         CÀ  sµ  h  } | o2 d | j o | d } | d =n t  | ƒ } n d } x‘ | D]‰ } t i i d |  d | | ƒ } | o] t t d |  i ƒ ƒ } | t j o  | i t	 | i
 d ƒ | ƒ n | i | i
 | ƒ | SqL Wt i |  i i }	 |	 i |  ƒ }
 t d „  t i i i t i i |  j ƒ i ƒ  Dƒ ƒ } t d „  | Dƒ ƒ } t ƒ  } xDt | ƒ d	 j o0| i | i ƒ  ƒ x“| D]‹} | |
 j p | | | j og| | \ } } | i d
 h  ƒ } | | | j o{ | | | } | i
 } t i |  i i i p t	 | d ƒ } n g  } | i D] } | | i | i f q'~ } | } nv t i |  | d
 | d | ƒ\ } } } |  i i |  i i f | j p" t  |  i i |  i i f | f ‚ | i | ƒ | | d <| | d
 <|  i | d <t! |  | | | | | | ƒ } | SqWh  } xt | D]l } | | \ } } | t" j oI xF t" | D]6 } | | j o# t" | | g | | f | | <qKqKWqqW| } qTWt# d d i$ | ƒ ƒ ‚ d  S(   NR%   R1   R	   R
   R   s   utf-8c         sÀ  s"   x |  ] } | i  | f Vq Wd  S(   N(   R
   (   R+   R!   (    (    sB   /afs/sipb.mit.edu/project/bazki/Checkout/lib/bazbase/conversion.pys	   <genexpr>§   s   	 c         sÀ  s%   x |  ] } | g  | f f Vq Wd  S(   N(    (   R+   R"   (    (    sB   /afs/sipb.mit.edu/project/bazki/Checkout/lib/bazbase/conversion.pys	   <genexpr>©   s   	 i    R&   t	   reentrantR;   s   Couldn't convert to any of %s!s   , (%   R<   R   R   R   R   R3   R   R   RE   RB   R   R   RP   R   RQ   t   getExtensionst   queryt   filterR	   R8   RM   R6   t   updatet   keyst   popRR   R   R   t   pnameR   t   evaluateR   R2   R`   R   R   R7   (   R	   t   destsR;   Ra   t   explicit_metadatat   flatRZ   R!   RY   t   flavt   extst   cachedt   newt   triedt   nRW   t   destR&   R   t   _[1]R"   R   R%   t   newnewt   t(    (    sB   /afs/sipb.mit.edu/project/bazki/Checkout/lib/bazbase/conversion.pyt   convert_any_im   sx    
  	"	  	0
"

	  /c         CÀ  s(   t  |  | | ƒ } | i ƒ  | i ƒ  f S(   s;   Returns (value, ext) for one of the listed dest extensions.(   Rw   RN   RK   (   R	   Rj   R;   RY   (    (    sB   /afs/sipb.mit.edu/project/bazki/Checkout/lib/bazbase/conversion.pyt   convert_anyÒ   s    c      	   CÀ  sÚ  | d j	 oY t i i d d d | | ƒ } | d j	 o) | t j o t | i d ƒ S| i Sqf n h g  | 6} t ƒ  } xGt | ƒ d j o3| i	 | i
 ƒ  ƒ x¢ | D]š } | t i j o„ | | } t i |  | d d d t i ƒ\ }	 }
 } | i	 | ƒ t d |	 | |
 | | | ƒ } | i ƒ  | j p t ‚ | i ƒ  Sq¬ Wh  } xh | D]` } | | } | t j oC x@ t | D]0 } | | j o t | | g | | | <qqWqWqWW| } q Wt d | ƒ ‚ d S(	   s=   Convert a string of explicit markup to the given dest format.R	   R
   s   utf-8i    R   RQ   s   Couldn't convert list to %s!N(   R   R   R   R   R   RB   R   RM   R6   Re   Rf   R   t   FORMATSR   Ri   t   textR`   RK   R2   RN   R   R   (   t   markupRs   t   global_metadatat   cacheable_asR!   Rp   Rq   Rr   RW   t   renderedR   R%   RY   Ru   Rv   (    (    sB   /afs/sipb.mit.edu/project/bazki/Checkout/lib/bazbase/conversion.pyt   convert_markup×   sF    	  
 
 )(   s   texs   .tex(   s   txts   .txts   htmls   .htmls   texs   .tex(   t
   __future__R    R   t   sysR   R1   R   R   R   t   translatorsR   R   R   R;   R   R$   R<   RL   R   R   R`   t   FalseRw   Rx   R   (    (    (    sB   /afs/sipb.mit.edu/project/bazki/Checkout/lib/bazbase/conversion.pyt   <module>   s   		#@B