ó
‚•oTc           @   sÁ  d  d l  Z  y e Wn! e k
 r7 d  d l m Z n Xd  d l Z d  d l Z i i e d 6e d 6e d 6e d 6e d 6d 6i e d 6e d 6e d 6e d 6e d 6e d	 6d
 6i e d 6e d 6e d 6e d 6e d 6e d	 6d d 6d d 6d 6i e d 6e d 6e d 6e	 d 6e	 d 6e d	 6d 6Z
 d „  Z d „  Z d e f d „  ƒ  YZ d e f d „  ƒ  YZ d „  Z e e j d <d „  Z e e j d <d „  Z e e j d <d e  j  f d „  ƒ  YZ [  d S(   iÿÿÿÿN(   t   Sets   engine.autoreload_ons
   checker.ons   tools.log_headers.ons   request.show_tracebackss   request.show_mismatched_paramst   stagings
   log.screent
   productions   engine.SIGHUPs   engine.SIGTERMt   embeddedt
   test_suitec         C   sL   t  |  t ƒ r$ t ƒ  j |  ƒ }  n$ t |  d ƒ rH t ƒ  j |  ƒ }  n  |  S(   Nt   read(   t
   isinstancet
   basestringt   _Parsert   dict_from_filet   hasattr(   t   config(    (    s&   /var/www/SABnzbd/cherrypy/_cpconfig.pyt   as_dict   s
    c         C   sh   t  | t ƒ r( t j j j j | ƒ n  x9 t | ƒ j ƒ  D]% \ } } |  j	 | i  ƒ j
 | ƒ q; Wd  S(   N(   R   R   t   cherrypyt   enginet
   autoreloadt   filest   addR   t	   iteritemst
   setdefaultt   update(   t   baset   othert   sectiont	   value_map(    (    s&   /var/www/SABnzbd/cherrypy/_cpconfig.pyt   merge—   s    t   NamespaceSetc           B   s)   e  Z d  „  Z d „  Z d „  Z e Z RS(   c         C   s}  i  } xU | D]M } d | k r | j  d d ƒ \ } } | j | i  ƒ } | | | | <q q Wx|  j ƒ  D]
\ } } t | d d  ƒ } | r?| j ƒ  }	 t }
 zx y: x3 | j | i  ƒ j ƒ  D] \ } } |	 | | ƒ qÀ WWn7 t }
 | d  k rü ‚  n  | t	 j
 ƒ  Œ  s‚  qn XWd  |
 r;| r;| d  d  d  ƒ n  Xqk x3 | j | i  ƒ j ƒ  D] \ } } | | | ƒ qXWqk Wd  S(   Nt   .i   t   __exit__(   t   splitR   R   t   getattrt   Nonet	   __enter__t   Truet   gett   Falset   syst   exc_info(   t   selfR   t   ns_confst   kt   nst   namet   buckett   handlert   exitt   callablet   no_exct   v(    (    s&   /var/www/SABnzbd/cherrypy/_cpconfig.pyt   __call__³   s2    %%c         C   s#   d |  j  |  j j t j |  ƒ f S(   Ns	   %s.%s(%s)(   t
   __module__t	   __class__t   __name__t   dictt   __repr__(   R&   (    (    s&   /var/www/SABnzbd/cherrypy/_cpconfig.pyR6   ä   s    c         C   s   |  j  ƒ  } | j |  ƒ | S(   N(   R3   R   (   R&   t   newobj(    (    s&   /var/www/SABnzbd/cherrypy/_cpconfig.pyt   __copy__è   s    (   R4   R2   R1   R6   R8   t   copy(    (    (    s&   /var/www/SABnzbd/cherrypy/_cpconfig.pyR   ¥   s   	1		t   Configc           B   sg   e  Z i e d  6e d 6e d 6Z e i d „  d 6d „  d 6  Z d „  Z d „  Z d	 „  Z d
 „  Z	 RS(   s   tools.log_tracebacks.ons   tools.log_headers.ons   tools.trailing_slash.onc         C   s   t  t j |  | ƒ S(   N(   t   setattrR   t   log(   R(   R0   (    (    s&   /var/www/SABnzbd/cherrypy/_cpconfig.pyt   <lambda>ù   s    R<   c         C   s   t  t j |  | ƒ S(   N(   R;   R   t   checker(   R(   R0   (    (    s&   /var/www/SABnzbd/cherrypy/_cpconfig.pyR=   ú   s    R>   c         C   s   |  j  ƒ  d  S(   N(   t   reset(   R&   (    (    s&   /var/www/SABnzbd/cherrypy/_cpconfig.pyt   __init__ý   s    c         C   s!   |  j  ƒ  t j |  |  j ƒ d  S(   N(   t   clearR5   R   t   defaults(   R&   (    (    s&   /var/www/SABnzbd/cherrypy/_cpconfig.pyR?      s    
c         C   s=  t  | t ƒ r: t j j j j | ƒ t ƒ  j | ƒ } n0 t	 | d ƒ r^ t ƒ  j | ƒ } n | j
 ƒ  } t  | j d d  ƒ t ƒ r³ t | ƒ d k r¦ t t j _ n  | d } n  | j d ƒ } | rt | } x. | D]# } | | k rÙ | | | | <qÙ qÙ Wn  d | k rd | d <n  t j |  | ƒ |  j | ƒ d  S(   NR   t   globali   t   environments   tools.staticdir.dirs   tools.staticdir.section(   R   R   R   R   R   R   R   R   R	   R
   R9   R"   R   R5   t   lenR!   R>   t   global_config_contained_pathst   environmentsR   t
   namespaces(   R&   R   t	   which_envt   envR(   (    (    s&   /var/www/SABnzbd/cherrypy/_cpconfig.pyR     s(    
c         C   s+   t  j |  | | ƒ |  j i | | 6ƒ d  S(   N(   R5   t   __setitem__RH   (   R&   R(   R0   (    (    s&   /var/www/SABnzbd/cherrypy/_cpconfig.pyRK   #  s    (
   R4   R2   R!   RB   R   RH   R@   R?   R   RK   (    (    (    s&   /var/www/SABnzbd/cherrypy/_cpconfig.pyR:   ï   s   
			c         C   sü   |  j  d d ƒ } t | ƒ d k rå t t d ƒ s? i  t _ n  | \ } }  | t j k r‘ d d l m } | j ƒ  t j | <t j | j ƒ  n  |  d k rË | r· t j | j ƒ  qâ t j | j ƒ  qø t	 t j | |  | ƒ n t	 t j
 |  | ƒ d  S(   NR   i   t   serversiÿÿÿÿ(   t	   _cpservert   on(   R   RE   R
   R   RL   RM   t   Servert	   subscribet   unsubscribeR;   t   server(   R(   R0   t   atomst
   servernameRM   (    (    s&   /var/www/SABnzbd/cherrypy/_cpconfig.pyt   _server_namespace_handler(  s    RR   c         C   s¹  t  j } |  d k r; | r+ | j j ƒ  qµ| j j ƒ  nz|  d k rV | | j _ n_|  d k rq | | j _ nD|  d k r’ t | ƒ | j _ n#|  d k r­ | | j	 _ n|  d k rÒ t | g ƒ | j
 d <nã |  d k r÷ t | g ƒ | j
 d <n¾ d |  k r¥|  j d d	 ƒ \ } } t | | ƒ } | d
 k r’| rbt t | d d  ƒ ƒ rb| j ƒ  d  S| r’t t | d d  ƒ ƒ r’| j ƒ  d  Sn  t | | | ƒ n t | |  | ƒ d  S(   Nt   autoreload_ont   autoreload_frequencyt   autoreload_matcht   reload_filest   deadlock_poll_freqt   SIGHUPt   SIGTERMR   i   RN   RP   RQ   (   R   R   R   RP   RQ   t	   frequencyt   matcht   setR   t   timeout_monitort	   listenersR   R   R.   R   R;   (   R(   R0   R   t   plugint   attrname(    (    s&   /var/www/SABnzbd/cherrypy/_cpconfig.pyt   _engine_namespace_handlerC  s:    	

R   c         C   s=   t  j j | | j ƒ t  j j d | | j p1 d f ƒ d  S(   Ns   Mounted: %s on %st   /(   R   t   treet   graftt   script_nameR   R<   (   R(   R0   (    (    s&   /var/www/SABnzbd/cherrypy/_cpconfig.pyt   _tree_namespace_handlerg  s    Rf   R   c           B   s2   e  Z d  „  Z d „  Z e d d „ Z d „  Z RS(   c         C   s   | S(   N(    (   R&   t	   optionstr(    (    s&   /var/www/SABnzbd/cherrypy/_cpconfig.pyt   optionxforms  s    c         C   s^   t  | t ƒ r | g } n  x< | D]4 } t | ƒ } z |  j | | ƒ Wd  | j ƒ  Xq" Wd  S(   N(   R   R   t   opent   _readt   close(   R&   t	   filenamest   filenamet   fp(    (    s&   /var/www/SABnzbd/cherrypy/_cpconfig.pyR   v  s    c   
      C   sÞ   d d l  m } i  } xÁ |  j ƒ  D]³ } | | k rB i  | | <n  x‘ |  j | ƒ D]€ } |  j | | | | ƒ } y | | ƒ } WnA t k
 rÃ } d | | | f }	 t |	 | j j | j	 ƒ ‚ n X| | | | <qR Wq# W| S(   Niÿÿÿÿ(   t   unreprsW   Config error in section: %r, option: %r, value: %r. Config values must be valid Python.(
   t   cherrypy.libRr   t   sectionst   optionsR"   t	   Exceptiont
   ValueErrorR3   R4   t   args(
   R&   t   rawt   varsRr   t   resultR   t   optiont   valuet   xt   msg(    (    s&   /var/www/SABnzbd/cherrypy/_cpconfig.pyR   „  s    c         C   s6   t  | d ƒ r |  j | ƒ n |  j | ƒ |  j ƒ  S(   NR   (   R
   t   readfpR   R   (   R&   t   file(    (    s&   /var/www/SABnzbd/cherrypy/_cpconfig.pyR	   ˜  s    N(   R4   R2   Rk   R   R#   R   R   R	   (    (    (    s&   /var/www/SABnzbd/cherrypy/_cpconfig.pyR   n  s   		(   t   ConfigParserR_   t	   NameErrort   setsR    R$   R   R#   R   R!   RG   R   R   R5   R   R:   RU   RH   Rd   Ri   R   (    (    (    s&   /var/www/SABnzbd/cherrypy/_cpconfig.pyt   <module>`   s`   		J9		!	1