Ñò
z‰4Nc           @   s  d  d k  Z  d  d k l Z l Z l Z l Z l Z l Z l Z l	 Z	 l
 Z
 l Z l Z l Z l Z l Z l Z l Z l Z d  d k l Z d  d k l Z d d k l Z d „  Z d „  Z e e _ d	 „  Z e e _ e  i d
 ƒ Z d „  Z e e _ e d d ƒ e _ d „  Z  e  e _  d „  Z! e! e _! d „  Z" e" e _" d „  Z# e# e _# d „  Z$ e$ e _$ d d „ Z& e& e _& d d d „ Z' d „  Z( 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& d& ƒ e( d) d* d+ d, d, ƒ e( d- d. d/ d- d- ƒ e( d0 d1 d2 d0 d0 ƒ e( d3 d4 d5 d3 d3 ƒ e( d6 d6 d7 ƒ e( d8 d8 d9 ƒ e( d: d; d< d: d: ƒ e( d= d> d? d@ dA ƒ e( dB d> d? d@ dA ƒ dC Z) dD Z* dE „  Z+ dF dG „ Z, e dH dI dJ dK ƒ e _- e dH dI dJ dL ƒ e _. e, dM ƒ e _/ e, dN ƒ e _0 e, dO ƒ e _1 e, dP ƒ e _2 e, dQ ƒ e _3 e, dR ƒ e _4 e dS ƒ e _5 e dT ƒ e _6 d S(U   iÿÿÿÿN(   t   macrost   environmentt   illegalt   dividedt   WikiExceptiont   NoContentExceptiont	   safesplitt   parse_macro_argst   baz_evalt	   full_evalt   leafpropt   render_propvalt   render_allow_overridet   get_elementt   get_current_elementt   addDept   atom(   t   FORMATS(   t   configi   (   t   customc         C   s   t  | ƒ } t d |  ƒ } | i t | d d | ƒƒ | i t | d d | ƒƒ | i t | d d | ƒƒ | i t | d d | ƒƒ f S(   Nt   formu   topleftt
   moverridesu   toprightu
   bottomleftu   bottomright(   R   t   dictt   escapeR   (   R   t   enamet   parsert   elmt   mover(    (    s=   /afs/sipb.mit.edu/project/bazki/Checkout/lib/gameki/macros.pyt   get_headfoot   s    	c         C   s   d S(   Nt    (    (   R   t   argstr(    (    s=   /afs/sipb.mit.edu/project/bazki/Checkout/lib/gameki/macros.pyR      s    c   	      C   sm  |  i  ƒ  t | ƒ } d } d d d d g } xm | i ƒ  D]_ \ } } | d j o t | |  ƒ } q; | d j o t d | |  ƒ } q; t d | ƒ ‚ q; W| i ƒ  p
 d } n t |  i ƒ  t	 d ƒ o: d | } | d	 | 7} | |  i
 | ƒ 7} | d
 7} | St |  i ƒ  t	 d ƒ o6 d } | d | 7} | |  i
 | ƒ 7} | d 7} | S|  i i
 | ƒ Sd  S(   NR   t   colori   t   sheets   Unknown arg '%s' in sheet!t   whitet   htmls   <div class="sheet %s">sv   <div class="lheader">%s</div><div class="rheader">%s</div>
<div class="lfooter">%s</div><div class="rfooter">%s</div>
s   </div>
t   texs   \begin{sheet}
s)   \lhead{%s}\rhead{%s}\lfoot{%s}\rfoot{%s}
s   
\end{sheet}(   t   flushR   t   itemsR   R   R   t   stript
   isinstancet
   get_formatR   t	   fullparset   fullparseparser(	   R   R   t   contentt   argsR   t   headfoott   keyt   valt   ret(    (    s=   /afs/sipb.mit.edu/project/bazki/Checkout/lib/gameki/macros.pyR       s8    
 



s   <<flip\s*/>>c         C   s†  |  i  ƒ  t | t ƒ } t | ƒ } d } d } d d d d g } x‘ | i ƒ  D]ƒ \ } }	 | d j o t |	 |  ƒ } qP | d j o d t |	 |  ƒ } qP | d j o t d |	 |  ƒ } qP t d | ƒ ‚ qP W| i ƒ  p
 d } n t	 | ƒ d	 j o t d
 ƒ ‚ nrt	 | ƒ d	 j  o | d }
 d } n | \ }
 } t
 |  i ƒ  t d ƒ oq d | | f } | d | d	  7} | d |  i |
 ƒ 7} | d |  i | ƒ 7} | d | d	 7} | d 7} | St
 |  i ƒ  t d ƒ ou d | } d | i ƒ  o d | i ƒ  n d } | d | |  i |
 ƒ f 7} | d |  i | ƒ 7} | d 7} | S|  i |
 ƒ d |  i | ƒ } | Sd  S(   NR   R   t   sizet    i   t   cards   Unknown arg '%s' in card!R!   i   s%   More than one ##flip## in a ##card##!i    R"   s   <table class="card %s%s">
s>   <tr class="head"><td>%s</td><td>%s</td><td></td><td></td></tr>s,   <tr class="body">
<td colspan="2">
%s
</td>
s    <td colspan="2">
%s
</td>
</tr>
s>   <tr class="foot"><td>%s</td><td>%s</td><td></td><td></td></tr>s	   </table>
R#   s(   \lhead{%s}\rhead{%s}\lfoot{%s}\rfoot{%s}s   \begin{card}%s
s   [%s]s   \front{%s
%s}
s
   \back{%s}
s   \end{card}
s   

(   R$   R   t   flippatR   R%   R   R   R   R&   t   lenR'   R(   R   R)   (   R   R   R+   t   partsR,   R   R1   R-   R.   R/   t   frontt   backR0   t   headness(    (    s=   /afs/sipb.mit.edu/project/bazki/Checkout/lib/gameki/macros.pyR3   ?   s\    
 




!
 t   flipR3   c         C   s  |  i  ƒ  t | ƒ } d } d } d } d d d d g } xÐ | i ƒ  D]Â \ } }	 | d j o t |	 |  ƒ } qG | d j o t |	 |  ƒ } qG | d j o t d |	 |  ƒ } qG | d j o6 t |	 |  ƒ i ƒ  } | d j o t d	 ƒ ‚ q	qG t d
 | ƒ ‚ qG W| i ƒ  p
 d } n t |  i	 ƒ  t
 d ƒ o d | i ƒ  | f }
 |
 d | d  d 7}
 |
 d |  i | ƒ 7}
 |
 d |  i | ƒ 7}
 |
 d | d d 7}
 |
 d 7}
 |
 St |  i	 ƒ  t
 d ƒ o) d | f | | |  i | ƒ f }
 |
 S|  i d ƒ | }
 |
 Sd  S(   NR   t   EnvelopeR   i   i   t   packett   stylet   Foldings:   The only valid packet styles are "envelope" and "folding"!s   Unknown arg '%s' in packet!R!   R"   s"   <table class="card packet %s %s">
sB   <tr class="head"><td>%s</td><td>%s</td><td>%s</td><td>%s</td></tr>s,   <tr class="body">
<td colspan="2">
%s
</td>
s    <td colspan="2">
%s
</td>
</tr>
sB   <tr class="foot"><td>%s</td><td>%s</td><td>%s</td><td>%s</td></tr>s	   </table>
R#   s"   \%sPacket{%s}{%s}{%s}{%s}{%s}{%s}
s   Packet: (   R;   R>   (   R$   R   R%   R   R   t
   capitalizeR   R&   R'   R(   R   t   lowerR)   (   R   R   R+   R,   t   labelR   R=   R-   R.   R/   R0   (    (    s=   /afs/sipb.mit.edu/project/bazki/Checkout/lib/gameki/macros.pyR<   u   sL    
 

!c   
      C   sµ  |  i  ƒ  t | ƒ } d } d } d d d d g } x | i ƒ  D] \ } } | d j o t | |  ƒ } qA | d j o t | |  ƒ } qA | d j o t d | |  ƒ } qA t d | ƒ ‚ qA W| i ƒ  p
 d } n t |  i	 ƒ  t
 d ƒ oX d	 | }	 |	 d
 7}	 |	 d | 7}	 |	 | 7}	 |	 d 7}	 |	 |  i | ƒ 7}	 |	 d 7}	 |	 St |  i	 ƒ  t
 d ƒ o3 d | | f }	 |	 |  i | ƒ 7}	 |	 d 7}	 |	 S|  i d ƒ | }	 |	 Sd  S(   NR   R   i   i   t   notebooks   Unknown arg '%s' in notebook!R!   R"   s   <div class="notebook %s">
s   <div class="front">sv   <div class="lheader">%s</div><div class="rheader">%s</div>
<div class="lfooter">%s</div><div class="rfooter">%s</div>
s   </div>s   </div>
R#   s#   \startnotebook{%s}{%s}{%s}{%s}{%s}
s   \endnotebook
s
   Notebook: (   R$   R   R%   R   R	   R   R   R&   R'   R(   R   R)   t   subparse(
   R   R   R+   R,   R7   R   R-   R.   R/   R0   (    (    s=   /afs/sipb.mit.edu/project/bazki/Checkout/lib/gameki/macros.pyRB   Ÿ   sF    
 






c         C   sØ   |  i  ƒ  t | ƒ } d | j o t | |  ƒ } n  t |  d d ƒ } | d |  _ t |  i ƒ  t d ƒ o d | |  i | ƒ f St |  i ƒ  t d ƒ o d | d |  i | ƒ d S|  i	 d	 | | ƒ Sd
 S(   s-   Dummy page for previewing outside a notebook.i   t
   gknextpageR"   s   <div><h2>%s</h2>
%s</div>R#   s   \begin{nbpage}{%s}s   
s   
\end{nbpage}
s
   == %s ==

N(
   R$   R   R   t   getattrRD   R'   R(   R   R)   RC   (   R   R   R+   R,   t   title(    (    s=   /afs/sipb.mit.edu/project/bazki/Checkout/lib/gameki/macros.pyt   pageÆ   s    
c   
      C   s¼  |  i  ƒ  t | ƒ } d } d } d d d d g } xª | i ƒ  D]œ \ } } | d j o t | |  ƒ } qA | d j o t d | |  ƒ } qA | d j o0 t | |  ƒ } | d j o t d ƒ ‚ qÝ qA t d	 | ƒ ‚ qA W| i ƒ  p
 d
 } n t |  i ƒ  t	 d ƒ oF d | i
 ƒ  | f }	 |	 d | 7}	 |	 |  i | ƒ 7}	 |	 d 7}	 |	 St |  i ƒ  t	 d ƒ o& d | f | |  i | ƒ f }	 |	 S|  i d ƒ |  i | ƒ }	 |	 Sd  S(   NR   t   lightR   i   t   badgeR=   t   darks3   The only valid badge styles are "light" and "dark"!s   Unknown arg '%s' in badge!R!   R"   s   <div class="badge %s %s">
sv   <div class="lheader">%s</div><div class="rheader">%s</div>
<div class="lfooter">%s</div><div class="rfooter">%s</div>
s   </div>
R#   s#   \NameBadge[%s]{%s}{%s}{%s}{%s}{%s}
s   Badge: (   s   lights   dark(   R$   R   R%   R   R   R   R&   R'   R(   R   R@   R)   RC   (
   R   R   R+   R,   R   R=   R-   R.   R/   R0   (    (    s=   /afs/sipb.mit.edu/project/bazki/Checkout/lib/gameki/macros.pyRI   Ú   s@    
 

c         C   sw  |  i  ƒ  t | ƒ } d } d } d } d } d } d d d d g }	 x| i ƒ  D]\ }
 } |
 d j o t | |  ƒ } qS |
 d j o t | |  ƒ } qS |
 d j o t | |  ƒ } qS |
 d j o< t | |  ƒ i ƒ  i ƒ  } | d j o t d	 ƒ ‚ q[qS |
 d
 j o t | |  ƒ } qS |
 d j o t d | |  ƒ }	 qS t d |
 ƒ ‚ qS W| i ƒ  p
 d } n t |  i	 ƒ  t
 d ƒ ov d | i ƒ  | f } | d |	 7} | d | 7} | d 7} | |  i | ƒ 7} | d 7} | d | 7} | d 7} | St |  i	 ƒ  t
 d ƒ o/ d | f |	 | | |  i | ƒ | f } | S|  i d ƒ | |  i | ƒ } | Sd  S(   NR   t   BigR   t   blurbt   locationR1   t   Mediumt   Smalls(   Sign size must be big, medium, or small!i   i   t   signs   Unknown arg '%s' in packet!R!   R"   s   <div class="sign %s %s">
sv   <div class="lheader">%s</div><div class="rheader">%s</div>
<div class="lfooter">%s</div><div class="rfooter">%s</div>
s   <div class="name">%s</div>
s   <div class="content">
s   </div>
s   <div class="blurb">%s</div>
R#   s(   \%sSign{%s}{%s}{%s}{%s}{%s}{%s}{%s}{%s}
s	   Sign: %s
(   RK   s   MediumRO   (   R$   R   R%   R   R?   R&   R   R   R'   R(   R   R@   R)   (   R   R   R+   R,   t   nameR   R1   RM   RL   R-   R.   R/   R0   (    (    s=   /afs/sipb.mit.edu/project/bazki/Checkout/lib/gameki/macros.pyRP   ÿ   sZ    
 



' c         C   sr  t  | ƒ } d | j p- d | j p  d | j p t | ƒ d j o t d ƒ ‚ n | d  j o t d ƒ ‚ n t | d |  ƒ } t | d |  ƒ } |  i d | d | | f ƒ } t |  i ƒ  t	 d ƒ oJ d } | d	 | 7} | d
 7} | |  i
 | ƒ 7} | d 7} | d 7} | St |  i ƒ  t	 d ƒ o$ d | | | |  i
 | ƒ f } | S|  i
 d ƒ } | Sd  S(   Ni   i   i   s+   ##imageheader## takes exactly 3 parameters!s   ##imageheader## needs content!s   {{%s^d%sx%s}}R"   s    <table class="imageheader"><tr>
s   <td>%s</td>
s   <th>
s   </th>
s   </tr></table>
R#   s!   \imageheader{%s}{%spx}{%spx}{%s}
s   = content =

(   R   R5   R   t   NoneR   R   RC   R'   R(   R   R)   (   R   R   R+   R,   t   widtht   heightt   imgR0   (    (    s=   /afs/sipb.mit.edu/project/bazki/Checkout/lib/gameki/macros.pyt   imageheader6  s.    : 


c            sZ   ˆ d  j o d ˆ ˆ i ƒ  f ‰ n ˆ  d  j o
 ˆ ‰  n ‡  ‡ ‡ ‡ f d †  } | S(   Nu   %s/%sc            s   t  ƒ  } d } t | | d ƒ d d !i ƒ  } | d j o |  i ˆ ƒ S| d j o |  i ˆ ƒ S| d j o |  i ˆ  ƒ S|  i ˆ ƒ Sd  S(   Nu   gendert   ?i    i   t   Mt   Ft   N(   R   R   t   upperRC   (   R   R   t   et   genderpt   gen(   t   neutert   ambigt   femalet   male(    s=   /afs/sipb.mit.edu/project/bazki/Checkout/lib/gameki/macros.pyt   pnX  s    	(   RR   R@   (   Rb   Ra   R_   R`   Rc   (    (   R_   R`   Ra   Rb   s=   /afs/sipb.mit.edu/project/bazki/Checkout/lib/gameki/macros.pyt   pronounS  s    
c         G   sî   xh |  f | D]Y } t  t | ƒ pC t | Œ  } | |  j o d | _ n
 d | _ t t | | ƒ q q Wt d „  | Dƒ ƒ } |  d i ƒ  |  d }  xN |  f | D]? } t  t | ƒ p) t | Œ  } d | _ t t | | ƒ q§ q§ Wd  S(   NRd   t   pronounvariationc         s   s+   x$ |  ] } | d  i  ƒ  | d Vq Wd S(   i    i   N(   R[   (   t   .0t   q(    (    s=   /afs/sipb.mit.edu/project/bazki/Checkout/lib/gameki/macros.pys	   <genexpr>o  s   	 i    i   t   pronounupper(   t   hasattrR    Rd   t   hiddent   setattrt   tupleR[   (   t   mact   mfnat   aRc   R[   (    (    s=   /afs/sipb.mit.edu/project/bazki/Checkout/lib/gameki/macros.pyt   _pronf  s      	 	t   theyt   het   shet   itt   themt   himt   hert   theirt   hist   itst   theirst   herst   themselft   himselft   herselft   itselft   spouset   husbandt   wifet	   offspringt   sont   daughtert   childt   kidt   boyt   girlt   siblingt   brothert   sistert   parentt   fathert   mothert   unclet   auntt   nephewt   niecet   humant   mant   womant   sexRb   Ra   R_   t	   uncertaint   genders
   <<<pre/>>>s
   <<<suf/>>>c         C   s¤  t  d „  d Dƒ ƒ } |  | d <t |  j o: |  i t d ƒ \ }  | d <| d i t d	 ƒ | d <n. d
 |  j o  |  i d
 d ƒ \ }  | d <n t |  j o: |  i t d ƒ \ | d <}  | d i t d	 ƒ | d <n |  i ƒ  } t | ƒ d j p t ‚ t | ƒ d j o | d | d <n| d o° | d i d ƒ oœ | d | d <t | ƒ d j o | d | d <qCt | ƒ d j o | d \ | d <| d <qC| d | d <| d | d <d	 i | d d !ƒ | d <nb t | ƒ d j o | \ | d <| d <n7 | d | d <| d | d <d	 i | d d !ƒ | d <| d p | d | d <| d p | d | d <| d o  d | d | d f | d <n | S(   Nc         s   s   x |  ] } | d  f Vq Wd S(   R   N(    (   Rf   t   k(    (    s=   /afs/sipb.mit.edu/project/bazki/Checkout/lib/gameki/macros.pys	   <genexpr>Š  s   	 t   firstt   middlet   lastt   prefixt   suffixt   fulli   R2   s   , i    t   .i   i   iÿÿÿÿt   informalt   formals   %s %s(   s   firsts   middles   lasts   prefixs   suffix(	   R   t   SUFt   splitt   replacet   PRER5   t   AssertionErrort   endswitht   join(   RQ   t   gdt   bits(    (    s=   /afs/sipb.mit.edu/project/bazki/Checkout/lib/gameki/macros.pyt	   parsename‰  sD    	
   u   namec            s   ‡  ‡ f d †  } d | _  | S(   Nc      	      sŽ   | i  ƒ  o | i  ƒ  } n ˆ  } t ƒ  } t | | d t d t d t ƒ ƒ} | d  j o t d | i | f ƒ ‚ n t	 | ƒ } | ˆ S(   NR   t   pret   sufs&   %s.%s is not defined for name parsing!(
   R&   R   R   R   R¨   R¥   RR   R   R   R®   (   R   R   t   namepR\   RQ   t   namedict(   t   namepropt   part(    s=   /afs/sipb.mit.edu/project/bazki/Checkout/lib/gameki/macros.pyt   np¶  s    	t   namepart(   Rj   (   R´   R³   Rµ   (    (   R³   R´   s=   /afs/sipb.mit.edu/project/bazki/Checkout/lib/gameki/macros.pyR¶   µ  s    	t   defaultR2   t   docs4   Marks the end of a title or prefix for name parsing.s;   Marks the start of an end title or suffix for name parsing.Rœ   R   Rž   R¡   R¤   R£   u   playeru   contact(7   t   ret   bazbase.wikiR    R   R   R   R   R   R   R   R   R	   R
   R   R   R   R   R   R   t   bazbase.flavorsR   t   bazbaseR   R   R   R   R   R    t   compileR4   R3   R:   R<   RB   RG   RI   RP   RR   RV   Rd   Rp   R¨   R¥   R®   R¶   R¯   R°   Rœ   R   Rž   R¡   R¤   R£   t   playert   contact(    (    (    s=   /afs/sipb.mit.edu/project/bazki/Checkout/lib/gameki/macros.pyt   <module>   sx   p						3		(		&				#		1				,