ó
ÊTc           @@  s  d  d l  m Z d  d l Z d  d l Z d  d l m Z d  d l m Z d  d l m	 Z	 m
 Z
 m Z d  d l m Z d  d l Z d  d l Z d „  Z e j j e j j e ƒ d ƒ d	 d
 g Z g  Z e d d d ƒZ e Z d g Z d Z d d „ Z d d „ Z d d „ Z d S(   i    (   t   absolute_importN(   t   asbool(   t   in_any_group(   t	   structuret
   conversiont   flavors(   t   customc         C@  s«  |  d k r£d } d } d } d } t  j d ƒ } | d  k	 r*| j | d ƒ | j d ƒ } | ry | j ry | j } n  | j | d ƒ | j d ƒ } | r³ | j r³ | j } n  | j | d ƒ | j d ƒ }	 |	 rí |	 j rí |	 j } n  | j | d	 ƒ | j d	 ƒ }
 |
 r7|
 j r7|
 j } q7n | j d ƒ d
 d l m } m	 } m
 } m } m } d d d d | | | | f d d d d d d d d d d d d d d d | d | d  | g } t | ƒ } t  j d! ƒ } | d  k	 r,xB | D]7 } | j | d" ƒ rî| | j | d" ƒ | | <qîqîWn  xi | D]a } | d) k rn| j d& | | | | | | f ƒ q3| j d' | | | | | | f ƒ q3Wi | d( 6Si  Sd  S(*   Nt   texs   .25ins   .4int   6ptu   LayoutConfigu   hmarginu   tmarginu   bmarginu   headsepi   (   t   fontdirt   fontargst   DEFAULTSt   FONTSt   NAME_TO_FONTs   \usepackage{fontspec}s   \usepackage{xunicode}s&   \defaultfontfeatures{Mapping=tex-text}s<   \usepackage[hmargin=%s,vmargin={%s,%s},headsep=%s]{geometry}s   \usepackage{subscript}s   \usepackage{hyperref}s   \usepackage{fancyhdr}s   \usepackage{graphicx}s1   \usepackage[usenames,dvipsnames,svgnames]{xcolor}s   \usepackage{verbatim}s   \usepackage{multicol}s   \usepackage{tabularx}s   \usepackage{bazki}s   \pagestyle{fancy}s   \lhead{}s   \rhead{}s   \cfoot{}s   \renewcommand{\headrule}{}s6   \newfontfamily\japanese[ExternalLocation=%s]{HanaMinA}s9   \newfontfamily\japaneseext[ExternalLocation=%s]{HanaMinB}s'   \newfontfamily{\symbol}[%s]{DejaVuSans}u
   FontConfigt   fontt   maint   sanst   monos   \set%sfont[%s]{%s}s   \newfontfamily{\%s}[%s]{%s}t   preamble_lines(   s   mainR   R   (   R   t   get_elementt   Nonet   addPropvalDept   get_propvalt   valuet   addExistsDept   fontsR	   R
   R   R   R   t   dictt
   haspropvalt   getpropt   append(   t   formatt   depst   hmargint   tmargint   bmargint   headsept   configt   hpvt   tpvt   bpvt   hspvR	   R
   R   R   R   t   preambleR   t   fct   f(    (    sU   /afs/athena.mit.edu/user/x/a/xavid/.local/lib/python2.7/site-packages/bazki/custom.pyt   get_template_parameters   sz    (%	!t   LaTeXs   //t    u   Admint   msgs"   Only Admins can edit this website!u   Userc         C@  sA   |  d  k r4 y t j j }  Wq4 t k
 r0 t SXn  t j |  ƒ S(   N(   R   t   pylonst   requestt   environt	   TypeErrort   Truet   EDITOR_PREDt   is_met(   R2   (    (    sU   /afs/athena.mit.edu/user/x/a/xavid/.local/lib/python2.7/site-packages/bazki/custom.pyt	   is_editor   s    c         C@  sA   |  d  k r4 y t j j }  Wq4 t k
 r0 t SXn  t j |  ƒ S(   N(   R   R0   R1   R2   R3   R4   t   OMNISCIENT_PREDR6   (   R2   (    (    sU   /afs/athena.mit.edu/user/x/a/xavid/.local/lib/python2.7/site-packages/bazki/custom.pyt   is_omniscientˆ   s    t   Bazkic         @  sª   |  t  _ t t  _ d t  _ d  d  d „ ‰ ˆ t  _ d  d  t j d  ‡ f d † } | t  _ d „  } | t  _	 i t
 d 6t d 6t d 6t d 6‰  ‡  f d	 †  } | t  _ d  S(
   Nu   Adminc      
   S@  s‡  |  d  k	 s t ‚ d } t j |  ƒ } | d  k rY | j |  ƒ |  t d d d d ƒ f S| j | j | ƒ ƒ d d l m	 } d }	 i  }
 | rði  } t
 j | | ƒ } | j | | ƒ t j | ƒ } | d  k	 rÉ| j rÉ| j | ƒ rÀ| d  k	 r| d	 k r| }	 n" d
 d l m } | j | ƒ j }	 |  d k rP|	 d k sPt ‚ n  d | k rÆ| j | d ƒ \ } } } | d  k	 r½| d  k	 r½| |
 d <| |
 d <| rºt |
 d <qºq½qÆqÉd }	 n  | j | | | | d | ƒ} | } nu | j | | | ƒ r)| j | | | d | d | ƒ} n d } | s>d }	 n  | j | ƒ r\| | | ƒ n | j } |	 |
 d <| |
 d <| |
 f Sd  S(   Nu   namet   urlR.   t   stylet   brokeni   (   t   gettingt   internalt   defaulti    (   t   translatorsu   SunDiscBanners   .pngt   dt   widtht   heightt   forcet   typet   args(   R   t   AssertionErrorR   R   R   R   t   addDepR   R.   R>   R   t   extract_filtersR   t
   get_flavort   binaryt   has_propvalt   bazbaseRA   R   t   parse_dimensionR4   t   attachment_url_fort   has_get_urlt   get_url_fort   ename(   RS   t   pnamet   dependenciest   rendert	   extensionRG   t   namept   eR>   R<   t   infot   filterst
   real_pnamet   flavorRA   RC   RD   RE   R;   t   dispname(    (    sU   /afs/athena.mit.edu/user/x/a/xavid/.local/lib/python2.7/site-packages/bazki/custom.pyt   product_linkš   sZ    	

				'

c      	   @  s   | r ˆ  |  | | | d | ƒSd } t  j |  ƒ } | d  k re | rV | j |  ƒ n  d } |  } n€ | r~ | j | | ƒ n  d } | j | ƒ r´ | | | ƒ j ƒ  p® | j }	 n	 | j }	 |	 | j k rß d |	 | j f n |	 } d d l m	 }
 | t
 d |
 j |  | d	 | ƒd
 | ƒ f S(   NRW   u   nameR=   R?   s   %s (%s)i   (   RA   R;   RV   R<   (   R   R   R   R   R   RM   t   stripRS   R.   RA   R   t   edit_url(   RS   RT   RU   RV   RW   RX   RY   R<   R^   t   nameRA   (   R_   (    sU   /afs/athena.mit.edu/user/x/a/xavid/.local/lib/python2.7/site-packages/bazki/custom.pyt	   edit_linkÏ   s.    	!	"	c         S@  s   d d l  m } | j |  ƒ S(   Ni   (   RA   (   R.   RA   R;   (   t   uriRA   (    (    sU   /afs/athena.mit.edu/user/x/a/xavid/.local/lib/python2.7/site-packages/bazki/custom.pyt
   local_linkì   s    R;   t   echot	   echo_poolt   pool_recyclec          @  sà   i d d 6d d 6}  xŽ t  j j ƒ  D]} \ } } d | k r$ | j d d ƒ d d k r$ | j d ƒ d } | ˆ  k rŽ ˆ  | | ƒ |  | <q¡ t d	 | ƒ ‚ q$ q$ Wd
 |  k rÁ |  d
 d  k	 sÜ t |  t  j j ƒ  f ƒ ‚ |  S(   Ni   Rh   i    Rf   t   .i   t
   sqlalchemyiÿÿÿÿsD   Don't know how to interpret configuration parameter 'sqlalchemy.%s'!R;   (   t   tgR$   t   itemst   splitR3   R   RH   (   t   rett   kt   vt   key(   t   _sqlalchemy_converters(    sU   /afs/athena.mit.edu/user/x/a/xavid/.local/lib/python2.7/site-packages/bazki/custom.pyt   get_sqlalchemy_argsø   s    

(7(   t   bazcustt   APP_NAMER9   t   EDITOR_ANCESTORR   R_   R   RV   Rc   Re   t   strR   t   intRs   (   t   app_nameRc   Re   Rs   (    (   Rr   R_   sU   /afs/athena.mit.edu/user/x/a/xavid/.local/lib/python2.7/site-packages/bazki/custom.pyt   set_up’   s$    			3				
(   t
   __future__R    R0   Rk   t   paste.deploy.convertersR   t   repoze.what.predicatesR   RN   R   R   R   R   Rt   t   ost   cgiR,   t   patht   joint   dirnamet   __file__t   LATEX_SEARCH_PATHSt   EXTRA_HEAD_GENERATORSR8   R5   t   GROUPSt   USER_ANCESTORR   R7   R9   Rz   (    (    (    sU   /afs/athena.mit.edu/user/x/a/xavid/.local/lib/python2.7/site-packages/bazki/custom.pyt   <module>   s$   	^"					
