ó
f#ñ]c           @   s‡   d  Z  d d l Z e j d ƒ a e j d e j e j ƒ a e j d e j e j ƒ a e j d ƒ a d „  Z	 d „  Z
 d	 „  Z d S(
   s@   Functions that aid with generating text from templates and maps.iÿÿÿÿNs   %{(?P<id>\w+)}s9   %{\?(?P<expr>.+?)\?\?(?P<true>.*?)(\?:(?P<false>.*?))?\?}s<   %{\?(?P<id>\w+)(\?\+(?P<repl>.*?))?(\?\-(?P<ndrepl>.*?))?\?}s   \?@c         C   s–   |  j  d ƒ } |  j  d ƒ } |  j  d ƒ } | j | ƒ } | d  k	 rx | r^ t j | | ƒ S| rh d St j | d ƒ S| rŽ t j | | ƒ Sd Sd  S(   Nt   idt   replt   ndreplt    s   %{?@}(   t   groupt   gett   Nonet   _substDefinedBodyPatternt   sub(   t   match_objectt
   dictionaryR    R   R   t   value(    (    sI   /data/av2000/b2b/venv/lib/python2.7/site-packages/pyxb/utils/templates.pyt   _bodyIfDefinedPatternC   s    c         C   sš   |  j  d ƒ } |  j  d ƒ } |  j  d ƒ } d  } y t | | ƒ } Wn t k
 rc } d | f SX| rz t j | | ƒ S| d  k	 r– t j | | ƒ Sd S(   Nt   exprt   truet   falses   %%{EXCEPTION: %s}R   (   R   R   t   evalt	   ExceptionR   R   (   R	   R
   R   R   R   R   t   e(    (    sI   /data/av2000/b2b/venv/lib/python2.7/site-packages/pyxb/utils/templates.pyt   _bodyConditionalPatternT   s    c            sX   |  } t  j ‡  f d †  | ƒ } t j ‡  f d †  | ƒ } t j ˆ  d „ | ƒ } | S(   Nc            s   t  |  ˆ  ƒ S(   N(   R   (   t   _x(   R
   (    sI   /data/av2000/b2b/venv/lib/python2.7/site-packages/pyxb/utils/templates.pyt   <lambda>j   s    c            s   t  |  ˆ  ƒ S(   N(   R   (   R   (   R
   (    sI   /data/av2000/b2b/venv/lib/python2.7/site-packages/pyxb/utils/templates.pyR   k   s    c         S   s)   | j  |  j d ƒ d |  j d ƒ f ƒ S(   NR    s   %%{MISSING:%s}(   R   R   (   R   t   _map(    (    sI   /data/av2000/b2b/venv/lib/python2.7/site-packages/pyxb/utils/templates.pyR   m   s    (   t   _substIfDefinedPatternR   t   _substConditionalPatternt   _substIdPattern(   t   textR
   t   rv(    (   R
   sI   /data/av2000/b2b/venv/lib/python2.7/site-packages/pyxb/utils/templates.pyt   replaceInTextd   s    		(   t   __doc__t   ret   compileR   t	   MULTILINEt   DOTALLR   R   R   R   R   R   (    (    (    sI   /data/av2000/b2b/venv/lib/python2.7/site-packages/pyxb/utils/templates.pyt   <module>   s   		