
oTc           @   s3  d  d l  m Z d  d l Z d  d l Z d  d l Z d  d l m Z m Z m Z m	 Z	 e
 a i d e
 f e 6d d f e 6d d f e	 6d d f e 6Z i d d 6d d 6d d	 6d d
 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6Z i e d 6e d 6e d 6e	 d 6e e
 6Z d   Z d Z d Z d Z d Z d Z d Z e   Z d Z y e Wn e k
 rd   Z n Xd d d d d  d! d" d# d$ d% d& d' d( d) d* d+ d, d- d. f Z d/ Z d0 Z d1 Z i e d2 6e  d3 6e d4 6e  d5 6e  d6 6e
 d7 6e d8 6e
 d9 6e
 d: 6e
 d; 6e  d< 6e  d= 6Z! d>   Z" d, e# f d?     YZ$ d@ e f dA     YZ% e%   Z& dB   Z' d e( f dC     YZ) d  e) f dD     YZ* d! e) f dE     YZ+ d* e, f dF     YZ- d" e) f dG     YZ. d# e) f dH     YZ/ d& e) f dI     YZ0 d' e0 f dJ     YZ1 d) e) f dK     YZ2 d( e0 f dL     YZ3 d+ e) f dM     YZ4 dN e f dO     YZ5 dP e5 f dQ     YZ6 dR e5 f dS     YZ7 i e6 d/ 6e7 dT 6Z8 dU   Z9 dV e: f dW     YZ; d$ e; f dX     YZ< d% e f dY     YZ= e
 e
 dZ  Z> f  d[  Z? d S(\   i(   t
   generatorsN(   t   BOM_UTF8t	   BOM_UTF16t   BOM_UTF16_BEt   BOM_UTF16_LEt   utf_8t   utf16_bet   utf_16t   utf16_let   u16t   utf16s   utf-16t	   utf_16_bes   utf-16bet	   utf_16_les   utf-16let   u8t   utft   utf8s   utf-8c         C   s   t  j |  j    d k S(   NR   (   t   BOM_LISTt   gett   lower(   t   encoding(    (    s+   /var/www/SABnzbd/sabnzbd/utils/configobj.pyt
   match_utf8G   s    s   '%s's   "%s"s   %ss    
	'"s   """%s"""s   '''%s'''s   4.7.2c         C   s   x |  D] } | r t  Sq Wt S(   N(   t   Truet   False(   t   iterablet   entry(    (    s+   /var/www/SABnzbd/sabnzbd/utils/configobj.pyt   any[   s    t   __version__t   DEFAULT_INDENT_TYPEt   DEFAULT_INTERPOLATIONt   ConfigObjErrort   NestingErrort
   ParseErrort   DuplicateErrort   ConfigspecErrort	   ConfigObjt	   SimpleValt   InterpolationErrort   InterpolationLoopErrort   MissingInterpolationOptiont   RepeatSectionErrort   ReloadErrort   UnreprErrort   UnknownTypet   flatten_errorst   get_extra_valuest   configparsers       i
   t   interpolationt   raise_errorst   list_valuest   create_emptyt
   file_errort
   configspect	   stringifyt   indent_typeR   t   default_encodingt   unreprt   write_empty_valuesc         C   sV   t  d  k r d d  l  a  n  d |  }  t  j |   } | j   d j   d j   d S(   Nis   a=i   i    (   t   compilert   Nonet   parset   getChildren(   t   st   p(    (    s+   /var/www/SABnzbd/sabnzbd/utils/configobj.pyt   getObj   s
    
c           B   s   e  Z RS(    (   t   __name__t
   __module__(    (    (    s+   /var/www/SABnzbd/sabnzbd/utils/configobj.pyR*      s   t   Builderc           B   sb   e  Z d    Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z	 d   Z
 d	   Z RS(
   c         C   sG   t  |  d | j j d   } | d  k r= t | j j   n  | |  S(   Nt   build_(   t   getattrt	   __class__R@   R:   R*   (   t   selft   ot   m(    (    s+   /var/www/SABnzbd/sabnzbd/utils/configobj.pyt   build   s    c         C   s   t  |  j | j    S(   N(   t   mapRI   R<   (   RF   RG   (    (    s+   /var/www/SABnzbd/sabnzbd/utils/configobj.pyt
   build_List   s    c         C   s   | j  S(   N(   t   value(   RF   RG   (    (    s+   /var/www/SABnzbd/sabnzbd/utils/configobj.pyt   build_Const   s    c         C   sI   i  } t  t |  j | j     } x | D] } | j   | | <q+ W| S(   N(   t   iterRJ   RI   R<   t   next(   RF   RG   t   dt   it   el(    (    s+   /var/www/SABnzbd/sabnzbd/utils/configobj.pyt
   build_Dict   s
    c         C   s   t  |  j |   S(   N(   t   tupleRK   (   RF   RG   (    (    s+   /var/www/SABnzbd/sabnzbd/utils/configobj.pyt   build_Tuple   s    c         C   sI   | j  d k r d  S| j  d k r& t S| j  d k r9 t St d   d  S(   NR:   R   R   s   Undefined Name(   t   nameR:   R   R   R*   (   RF   RG   (    (    s+   /var/www/SABnzbd/sabnzbd/utils/configobj.pyt
   build_Name   s    c         C   s   t  |  j | j    \ } } y t |  } Wn t k
 rM t d   n Xt | t  sm | j d k r| t d   n  | | S(   Nt   Addg        (	   RJ   RM   R<   t   floatt	   TypeErrorR*   t
   isinstancet   complext   real(   RF   RG   R]   t   imag(    (    s+   /var/www/SABnzbd/sabnzbd/utils/configobj.pyt	   build_Add   s    c         C   s"   |  j  | j  } t | | j  S(   N(   RI   t   exprRD   t   attrname(   RF   RG   t   parent(    (    s+   /var/www/SABnzbd/sabnzbd/utils/configobj.pyt   build_Getattr   s    c         C   s   |  j  | j   d  S(   Ni    (   RM   R<   (   RF   RG   (    (    s+   /var/www/SABnzbd/sabnzbd/utils/configobj.pyt   build_UnarySub   s    c         C   s   |  j  | j   d  S(   Ni    (   RM   R<   (   RF   RG   (    (    s+   /var/www/SABnzbd/sabnzbd/utils/configobj.pyt   build_UnaryAdd   s    (   R@   RA   RI   RK   RM   RS   RU   RW   R_   Rc   Rd   Re   (    (    (    s+   /var/www/SABnzbd/sabnzbd/utils/configobj.pyRB      s   							
		c         C   s   |  s
 |  St  j t |    S(   N(   t   _builderRI   R?   (   R=   (    (    s+   /var/www/SABnzbd/sabnzbd/utils/configobj.pyR7      s    c           B   s   e  Z d  d d  d  Z RS(   t    c         C   s&   | |  _  | |  _ t j |  |  d  S(   N(   t   linet   line_numbert   SyntaxErrort   __init__(   RF   t   messageRi   Rh   (    (    s+   /var/www/SABnzbd/sabnzbd/utils/configobj.pyRk      s    		N(   R@   RA   R:   Rk   (    (    (    s+   /var/www/SABnzbd/sabnzbd/utils/configobj.pyR      s   c           B   s   e  Z RS(    (   R@   RA   (    (    (    s+   /var/www/SABnzbd/sabnzbd/utils/configobj.pyR      s   c           B   s   e  Z RS(    (   R@   RA   (    (    (    s+   /var/www/SABnzbd/sabnzbd/utils/configobj.pyR      s   c           B   s   e  Z d    Z RS(   c         C   s   t  j |  d  d  S(   Ns#   reload failed, filename is not set.(   t   IOErrorRk   (   RF   (    (    s+   /var/www/SABnzbd/sabnzbd/utils/configobj.pyRk      s    (   R@   RA   Rk   (    (    (    s+   /var/www/SABnzbd/sabnzbd/utils/configobj.pyR(      s   c           B   s   e  Z RS(    (   R@   RA   (    (    (    s+   /var/www/SABnzbd/sabnzbd/utils/configobj.pyR       s   c           B   s   e  Z RS(    (   R@   RA   (    (    (    s+   /var/www/SABnzbd/sabnzbd/utils/configobj.pyR!     s   c           B   s   e  Z RS(    (   R@   RA   (    (    (    s+   /var/www/SABnzbd/sabnzbd/utils/configobj.pyR$     s   c           B   s   e  Z d    Z RS(   c         C   s   t  j |  d |  d  S(   Ns*   interpolation loop detected in value "%s".(   R$   Rk   (   RF   t   option(    (    s+   /var/www/SABnzbd/sabnzbd/utils/configobj.pyRk     s    (   R@   RA   Rk   (    (    (    s+   /var/www/SABnzbd/sabnzbd/utils/configobj.pyR%     s   c           B   s   e  Z RS(    (   R@   RA   (    (    (    s+   /var/www/SABnzbd/sabnzbd/utils/configobj.pyR'     s   c           B   s   e  Z d    Z RS(   c         C   s   d | } t  j |  |  d  S(   Ns%   missing option "%s" in interpolation.(   R$   Rk   (   RF   Rn   t   msg(    (    s+   /var/www/SABnzbd/sabnzbd/utils/configobj.pyRk   !  s    
(   R@   RA   Rk   (    (    (    s+   /var/www/SABnzbd/sabnzbd/utils/configobj.pyR&     s   c           B   s   e  Z RS(    (   R@   RA   (    (    (    s+   /var/www/SABnzbd/sabnzbd/utils/configobj.pyR)   &  s   t   InterpolationEnginec           B   sA   e  Z e j d   Z d Z d   Z d   Z d   Z d   Z	 RS(   s   %\(([^)]*)\)st   %c         C   s   | |  _  d  S(   N(   t   section(   RF   Rr   (    (    s+   /var/www/SABnzbd/sabnzbd/utils/configobj.pyRk   7  s    c            sA    j  | k r | S   f d       | |  j i   } | S(   Nc            s  |  | j  f | k r$ t |    n  d | |  | j  f < j j |  } x | r  j |  \ } } } | d  k r | } n   | | | |  } | j   \ }	 }
 d j | |	  | | |
 f  } |	 t |  }  j j | |  } qL W| |  | j  f =| S(   Ni   Rg   (	   RV   R%   t   _KEYCREt   searcht   _parse_matchR:   t   spant   joint   len(   t   keyRL   Rr   t	   backtrailt   matcht   kt   vR=   t   replacementt   startt   endt   new_search_start(   t   recursive_interpolateRF   (    s+   /var/www/SABnzbd/sabnzbd/utils/configobj.pyR   A  s    		 (   t   _cookieRr   (   RF   Ry   RL   (    (   R   RF   s+   /var/www/SABnzbd/sabnzbd/utils/configobj.pyt   interpolate<  s
    ,c         C   s   |  j  j j } t |  j  j _ |  j  } x t r | j |  } | d  k	 r_ t | t  r_ Pn  | j d i   j |  } | d  k	 r t | t  r Pn  | j	 | k r Pn  | j	 } q* W| |  j  j _ | d  k r t
 |   n  | | f S(   Nt   DEFAULT(   Rr   t   mainR.   R   R   R   R:   R[   t   SectionRb   R&   (   RF   Ry   t   save_interpt   current_sectiont   val(    (    s+   /var/www/SABnzbd/sabnzbd/utils/configobj.pyt   _fetchq  s"    		c         C   s   t     d  S(   N(   t   NotImplementedError(   RF   R{   (    (    s+   /var/www/SABnzbd/sabnzbd/utils/configobj.pyRu     s    (
   R@   RA   t   ret   compileRs   R   Rk   R   R   Ru   (    (    (    s+   /var/www/SABnzbd/sabnzbd/utils/configobj.pyRp   +  s   			5	"t   ConfigParserInterpolationc           B   s&   e  Z d  Z e j d  Z d   Z RS(   Rq   s   %\(([^)]*)\)sc         C   s1   | j  d  } |  j |  \ } } | | | f S(   Ni   (   t   groupR   (   RF   R{   Ry   RL   Rr   (    (    s+   /var/www/SABnzbd/sabnzbd/utils/configobj.pyRu     s    (   R@   RA   R   R   R   Rs   Ru   (    (    (    s+   /var/www/SABnzbd/sabnzbd/utils/configobj.pyR     s   t   TemplateInterpolationc           B   s9   e  Z d  Z d  Z e j d e j e j B Z d   Z	 RS(   t   $s   
        \$(?:
          (?P<escaped>\$)              |   # Two $ signs
          (?P<named>[_a-z][_a-z0-9]*)  |   # $name format
          {(?P<braced>[^}]*)}              # ${name} format
        )
        c         C   s   | j  d  p | j  d  } | d  k	 rL |  j |  \ } } | | | f S| j  d  d  k	 rq d  |  j d  f Sd  | j    d  f S(   Nt   namedt   bracedt   escaped(   R   R:   R   t
   _delimiter(   RF   R{   Ry   RL   Rr   (    (    s+   /var/www/SABnzbd/sabnzbd/utils/configobj.pyRu     s    (
   R@   RA   R   R   R   R   t
   IGNORECASEt   VERBOSERs   Ru   (    (    (    s+   /var/www/SABnzbd/sabnzbd/utils/configobj.pyR     s
   t   templatec         G   s   |  j  |  |  S(   N(   t   __new__(   t   clst   args(    (    s+   /var/www/SABnzbd/sabnzbd/utils/configobj.pyt
   __newobj__  s    R   c           B   sL  e  Z d    Z d   Z d  d  d  Z d   Z d   Z d   Z e	 d  Z
 d   Z d  d  Z d	   Z e d
  Z d   Z d   Z d  d  Z d   Z d   Z d   Z d   Z d   Z e Z d   Z d   Z e Z d e _ d   Z d   Z d   Z e  e	 d  Z! d   Z" d   Z# d   Z$ d   Z% d   Z& d   Z' RS(!   c         C   s,   t  j |  | d  |  j j | d  d  S(   Ni    i   (   t   dictt   updatet   __dict__(   RF   t   state(    (    s+   /var/www/SABnzbd/sabnzbd/utils/configobj.pyt   __setstate__  s    c         C   s(   t  |   |  j f } t |  j f | f S(   N(   R   R   R   RE   (   RF   R   (    (    s+   /var/www/SABnzbd/sabnzbd/utils/configobj.pyt
   __reduce__  s    c         C   s{   | d  k r i  } n  t j |   | |  _ | |  _ | |  _ | |  _ |  j   x$ | j   D] \ } } | |  | <q] Wd  S(   N(	   R:   R   Rk   Rb   R   t   depthRV   t   _initialiset	   iteritems(   RF   Rb   R   R   t   indictRV   R   RL   (    (    s+   /var/www/SABnzbd/sabnzbd/utils/configobj.pyRk     s    					
c         C   sU   g  |  _  g  |  _ i  |  _ i  |  _ d  |  _ g  |  _ i  |  _ g  |  _ t	 |  _
 d  S(   N(   t   scalarst   sectionst   commentst   inline_commentsR:   R3   t   defaultst   default_valuest   extra_valuesR   t   _created(   RF   (    (    s+   /var/www/SABnzbd/sabnzbd/utils/configobj.pyR     s    								c         C   s   y |  j  } Wn t k
 r |  j j } | t k r> t } n  | j   } t j | d   } | d  k rx t
 |  j _ | S| |   } |  _  n X| j | |  S(   N(   t   _interpolation_enginet   AttributeErrorR   R.   R   R   R   t   interpolation_enginesR   R:   R   R   (   RF   Ry   RL   t   engineRV   t   class_(    (    s+   /var/www/SABnzbd/sabnzbd/utils/configobj.pyt   _interpolate  s    	c            s   t  j     }  j j r t | t  r=  j   |  St | t  r    f d   } g  | D] } | |  ^ qe } | | k r | Sq n  | S(   Nc            s#   t  |  t  r  j   |   S|  S(   N(   R[   t
   basestringR   (   R   (   Ry   RF   (    s+   /var/www/SABnzbd/sabnzbd/utils/configobj.pyt   _check<  s    (   R   t   __getitem__R   R.   R[   R   R   t   list(   RF   Ry   R   R   R   t   new(    (   Ry   RF   s+   /var/www/SABnzbd/sabnzbd/utils/configobj.pyR   5  s    
c         C   s  t  | t  s" t d |   n  | |  j k rN g  |  j | <d |  j | <n  | |  j k rp |  j j |  n  t  | t  r | |  k r |  j j	 |  n  t
 j |  | |  n!t  | t
  r'| r'| |  k r |  j j	 |  n  |  j d } t
 j |  | t |  | |  j d | d |  n | |  k rF|  j j	 |  n  |  j j st  | t  rdqt  | t t f  rxC | D]( } t  | t  st d |   qqWqt d |   n  t
 j |  | |  d  S(   Ns   The key "%s" is not a string.Rg   i   R   RV   s   Value is not a string "%s".(   R[   R   t
   ValueErrorR   R   R   t   removeR   R   t   appendR   t   __setitem__R   R   R   R4   R   RT   RZ   (   RF   Ry   RL   R7   t	   new_depthR   (    (    s+   /var/www/SABnzbd/sabnzbd/utils/configobj.pyR   F  sF    	c         C   sZ   t  j |  |  | |  j k r2 |  j j |  n |  j j |  |  j | =|  j | =d  S(   N(   R   t   __delitem__R   R   R   R   R   (   RF   Ry   (    (    s+   /var/www/SABnzbd/sabnzbd/utils/configobj.pyR     s    
c         C   s%   y |  | SWn t  k
 r  | SXd  S(   N(   t   KeyError(   RF   Ry   t   default(    (    s+   /var/www/SABnzbd/sabnzbd/utils/configobj.pyR     s    c         C   s#   x | D] } | | |  | <q Wd  S(   N(    (   RF   R   R   (    (    s+   /var/www/SABnzbd/sabnzbd/utils/configobj.pyR     s    c         C   sE   y |  | } Wn) t  k
 r9 | t k r0   n  | } n X|  | =| S(   N(   R   t   MISSING(   RF   Ry   R   R   (    (    s+   /var/www/SABnzbd/sabnzbd/utils/configobj.pyt   pop  s    
c         C   sJ   |  j  |  j } | s% t d   n  | d } |  | } |  | =| | f S(   Ns"   : 'popitem(): dictionary is empty'i    (   R   R   R   (   RF   t   sequenceRy   R   (    (    s+   /var/www/SABnzbd/sabnzbd/utils/configobj.pyt   popitem  s    

c         C   sP   t  j |   g  |  _ g  |  _ i  |  _ i  |  _ d  |  _ g  |  _ g  |  _	 d  S(   N(
   R   t   clearR   R   R   R   R:   R3   R   R   (   RF   (    (    s+   /var/www/SABnzbd/sabnzbd/utils/configobj.pyR     s    						c         C   s3   y |  | SWn  t  k
 r. | |  | <|  | SXd  S(   N(   R   (   RF   Ry   R   (    (    s+   /var/www/SABnzbd/sabnzbd/utils/configobj.pyt
   setdefault  s
    
c         C   s   t  |  j |  j |  j    S(   N(   t   zipR   R   t   values(   RF   (    (    s+   /var/www/SABnzbd/sabnzbd/utils/configobj.pyt   items  s    c         C   s   |  j  |  j S(   N(   R   R   (   RF   (    (    s+   /var/www/SABnzbd/sabnzbd/utils/configobj.pyt   keys  s    c         C   s%   g  |  j  |  j D] } |  | ^ q S(   N(   R   R   (   RF   Ry   (    (    s+   /var/www/SABnzbd/sabnzbd/utils/configobj.pyR     s    c         C   s   t  |  j    S(   N(   RN   R   (   RF   (    (    s+   /var/www/SABnzbd/sabnzbd/utils/configobj.pyR     s    c         C   s   t  |  j |  j  S(   N(   RN   R   R   (   RF   (    (    s+   /var/www/SABnzbd/sabnzbd/utils/configobj.pyt   iterkeys  s    c         C   s   t  |  j    S(   N(   RN   R   (   RF   (    (    s+   /var/www/SABnzbd/sabnzbd/utils/configobj.pyt
   itervalues  s    c      	      sY     f d   } d d j  g    j   j D]( } d t |  t | |   f ^ q)  S(   Nc            s1   y   |  SWn t  k
 r, t j   |   SXd  S(   N(   R&   R   R   (   Ry   (   RF   (    s+   /var/www/SABnzbd/sabnzbd/utils/configobj.pyt   _getval  s    s   {%s}s   , s   %s: %s(   Rw   R   R   t   repr(   RF   R   Ry   (    (   RF   s+   /var/www/SABnzbd/sabnzbd/utils/configobj.pyt   __repr__  s    s   x.__str__() <==> str(x)c         C   s   i  } x| |  D]t } |  | } t  | t  r; | j   } n< t  | t  rY t |  } n t  | t  rw t |  } n  | | | <q W| S(   N(   R[   R   R   R   RT   (   RF   t   newdictR   t
   this_entry(    (    s+   /var/www/SABnzbd/sabnzbd/utils/configobj.pyR     s    
c         C   sm   xf | j    D]X \ } } | |  k r[ t |  | t  r[ t | t  r[ |  | j |  q | |  | <q Wd  S(   N(   R   R[   R   t   merge(   RF   R   Ry   R   (    (    s+   /var/www/SABnzbd/sabnzbd/utils/configobj.pyR     s
    c         C   s   | |  j  k r |  j  } n+ | |  j k r6 |  j } n t d |   | j |  } |  | } t j |  |  t j |  | |  | j |  | j | |  |  j	 | } |  j
 | } |  j	 | =|  j
 | =| |  j	 | <| |  j
 | <d  S(   Ns   Key "%s" not found.(   R   R   R   t   indexR   R   R   R   t   insertR   R   (   RF   t   oldkeyt   newkeyt   the_listt   posR   t   commt   inline_comment(    (    s+   /var/www/SABnzbd/sabnzbd/utils/configobj.pyt   rename9  s"    	


c   	      K   sO  i  } x t  t |  j   D]w } |  j | } y- | |  | |  } |  j | } | | | <Wq t k
 r | rx   q |  j | } t | | <q Xq Wx t  t |  j   D] } |  j | } | r!y | |  | |  Wn4 t k
 r| r   q|  j | } t | | <n X|  j | } n  |  | j | d | d | | | | <q W| S(   NR/   t   call_on_sections(   t   rangeRx   R   t	   ExceptionR   R   t   walk(	   RF   t   functionR/   R   t   keywargst   outRQ   R   R   (    (    s+   /var/www/SABnzbd/sabnzbd/utils/configobj.pyR   W  s:    /
c         C   s   |  | } | t  k r t  S| t k r* t Sy3 t | t  sH t    n |  j j | j   SWn! t k
 r t d |   n Xd  S(   Ns$   Value "%s" is neither True nor False(	   R   R   R[   R   R   R   t   _boolsR   R   (   RF   Ry   R   (    (    s+   /var/www/SABnzbd/sabnzbd/utils/configobj.pyt   as_bool  s    
c         C   s   t  |  |  S(   N(   t   int(   RF   Ry   (    (    s+   /var/www/SABnzbd/sabnzbd/utils/configobj.pyt   as_int  s    c         C   s   t  |  |  S(   N(   RY   (   RF   Ry   (    (    s+   /var/www/SABnzbd/sabnzbd/utils/configobj.pyt   as_float  s    c         C   s0   |  | } t  | t t f  r) t |  S| g S(   N(   R[   RT   R   (   RF   Ry   t   result(    (    s+   /var/www/SABnzbd/sabnzbd/utils/configobj.pyt   as_list  s    

c         C   sF   |  j  | } t j |  | |  | |  j k rB |  j j |  n  | S(   N(   R   R   R   R   R   (   RF   Ry   R   (    (    s+   /var/www/SABnzbd/sabnzbd/utils/configobj.pyt   restore_default  s
    	c         C   sG   x |  j  D] } |  j |  q
 Wx |  j D] } |  | j   q+ Wd  S(   N(   R   R   R   t   restore_defaults(   RF   Ry   Rr   (    (    s+   /var/www/SABnzbd/sabnzbd/utils/configobj.pyR   +  s    
N((   R@   RA   R   R   R:   Rk   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   t   __iter__R   R   t   __str__t   __doc__R   R   R   R   R   R   R   R   R   R   R   (    (    (    s+   /var/www/SABnzbd/sabnzbd/utils/configobj.pyR     sF   					;												
				T	,				c           B   s@  e  Z e j d  e j  Z e j d e j  Z e j d e j  Z e j d e j  Z e j d e j  Z	 e j d  Z
 e j d  Z e j d  Z e j d  Z i e
 e f d	 6e e f d
 6Z i e d 6e d 6e d 6e d 6e d 6e d 6e d 6e d 6Z d. d. d. d. e e e e e e d. d. e e e d  Z d   Z d. d  Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z e d   Z  d!   Z! d"   Z" d#   Z# d$   Z$ d%   Z% d&   Z& d'   Z' d(   Z( d)   Z) d. d. d*  Z* e e d. d+  Z+ d,   Z, d-   Z- RS(/   s  ^ # line start
        (\s*)                   # indentation
        (                       # keyword
            (?:".*?")|          # double quotes
            (?:'.*?')|          # single quotes
            (?:[^'"=].*?)       # no quotes
        )
        \s*=\s*                 # divider
        (.*)                    # value (including list values and comments)
        $   # line end
        s=  ^
        (\s*)                     # 1: indentation
        ((?:\[\s*)+)              # 2: section marker open
        (                         # 3: section name open
            (?:"\s*\S.*?\s*")|    # at least one non-space with double quotes
            (?:'\s*\S.*?\s*')|    # at least one non-space with single quotes
            (?:[^'"\s].*?)        # at least one non-space unquoted
        )                         # section name close
        ((?:\s*\])+)              # 4: section marker close
        \s*(\#.*)?                # 5: optional comment
        $s  ^
        (?:
            (?:
                (
                    (?:
                        (?:
                            (?:".*?")|              # double quotes
                            (?:'.*?')|              # single quotes
                            (?:[^'",\#][^,\#]*?)    # unquoted
                        )
                        \s*,\s*                     # comma
                    )*      # match all list items ending in a comma (if any)
                )
                (
                    (?:".*?")|                      # double quotes
                    (?:'.*?')|                      # single quotes
                    (?:[^'",\#\s][^,]*?)|           # unquoted
                    (?:(?<!,))                      # Empty value
                )?          # last item in a list - or string value
            )|
            (,)             # alternatively a single comma - empty list
        )
        \s*(\#.*)?          # optional comment
        $s   
        (
            (?:".*?")|          # double quotes
            (?:'.*?')|          # single quotes
            (?:[^'",\#]?.*?)       # unquoted
        )
        \s*,\s*                 # comma
        s  ^
        (
            (?:".*?")|          # double quotes
            (?:'.*?')|          # single quotes
            (?:[^'"\#].*?)|     # unquoted
            (?:)                # Empty value
        )
        \s*(\#.*)?              # optional comment
        $s   ^'''(.*?)'''\s*(#.*)?$s   ^"""(.*?)"""\s*(#.*)?$s   ^(.*?)'''\s*(#.*)?$s   ^(.*?)"""\s*(#.*)?$s   '''s   """t   yest   not   ont   offt   1t   0t   truet   falsec         C   s  | |  _  t j |  |  d |   | p( g  } i | d 6| d 6| d 6| d 6| d 6| d 6|	 d 6|
 d	 6| d
 6| d 6| d 6| d 6} | d  k r | } n d d  l } | j d t d d x- | D]% } | t k r t d |   q q WxV t j	   D]H \ } } | | k r| | | <n  | | } | | k r | | | <q q W| rXt
 | d <n  |  j |  | d } | |  _ |  j | |  d  S(   Ni    R3   R   R.   R/   R0   R1   R2   R4   R5   R6   R7   R8   isU   Passing in an options dictionary to ConfigObj() is deprecated. Use **options instead.t
   stackleveli   s   Unrecognised option "%s".(   t   _inspecR   Rk   R:   t   warningst   warnt   DeprecationWarningt   OPTION_DEFAULTSRZ   R   R   R   t   _original_configspect   _load(   RF   t   infilet   optionsR3   R   R.   R/   R0   R1   R2   R4   R5   R6   R7   R8   R   t   _optionsR   R   RL   t   keyword_value(    (    s+   /var/www/SABnzbd/sabnzbd/utils/configobj.pyRk     s<    	

		

	c   
         s  t  | t  r | |  _ t j j |  rX t | d  } | j   pH g  } | j   q|  j	 rw t
 d |  j   q|  j r t | d  } | j d  | j   n  g  } n t  | t t f  r t |  } n t  | t  rat  | t  r  f d       | |   n x | D] } | | |  | <qW|  ` | d  k	 rT|  j |  n	 d  |  _ d  St | d t  t k	 r| j   pg  } n t d   | r0|  j |  } xY | D]Q } | s| d d k rqn  x* d D]" } | j |  r| |  _ PqqWPqWg  | D] } | j d  ^ q} n  |  j |  |  j rd |  j d j } t |  j  d k rd | } t |  }	 n |  j d }	 |  j |	 _  |  |	 _! |	  n  |  ` | d  k rd  |  _ n |  j |  d  S(   Nt   rbs   Config file not found: "%s".t   wRg   c            sY   x |  j  D] } |  | | | <q
 Wx0 |  j D]% } i  | | <  |  | | |  q, Wd  S(   N(   R   R   (   t
   in_sectiont   this_sectionR   Rr   (   t   set_section(    s+   /var/www/SABnzbd/sabnzbd/utils/configobj.pyR	    s
    
t   reads>   infile must be a filename, file like object, or list of lines.is   s   
s   
s   at line %s.i    i   s2   Parsing failed with several errors.
First error %s(   s   s   
s   
(   s   
s   
s   ("   R[   R   t   filenamet   ost   patht   isfilet   openR
  t   closeR2   Rm   R1   t   writeR   RT   R   R"   t   _errorsR:   t   _handle_configspecR3   RD   R   RZ   t   _handle_bomt   endswitht   newlinest   rstript   _parseRi   Rx   R   t   errorst   config(
   RF   R  R3   t   hR   Rh   R   t   infoRo   t   error(    (   R	  s+   /var/www/SABnzbd/sabnzbd/utils/configobj.pyR     sl    						%	
		c         C   s	  | d  k r t } n  d  |  _ g  |  _ | d |  _ | d |  _ | d |  _ | d |  _ | d |  _ | d |  _	 | d |  _
 | d |  _ | d	 |  _ t |  _ d  |  _ | d
 |  _ | d |  _ g  |  _ g  |  _ d  |  _ |  j r t |  _ n  t j |   d  S(   NR/   R.   R0   R1   R2   R4   R5   R   R6   R8   R7   (   R:   R   R  R  R/   R.   R0   R1   R2   R4   R5   R   R6   R   t   BOMR  R8   R7   t   initial_commentt   final_commentR3   R   R   R   (   RF   R  (    (    s+   /var/www/SABnzbd/sabnzbd/utils/configobj.pyR   >  s.    									c      	      sY     f d   } d d j  g    j   j D]( } d t |  t | |   f ^ q)  S(   Nc            s1   y   |  SWn t  k
 r, t j   |   SXd  S(   N(   R&   R   R   (   Ry   (   RF   (    s+   /var/www/SABnzbd/sabnzbd/utils/configobj.pyR   _  s    s   ConfigObj({%s})s   , s   %s: %s(   Rw   R   R   R   (   RF   R   Ry   (    (   RF   s+   /var/www/SABnzbd/sabnzbd/utils/configobj.pyR   ^  s    	c         C   sI  |  j  d  k	 r7 |  j  j   t k r7 |  j | |  j   St | t t f  rY | d } n | } |  j  d  k	 rnt |  j  j   } | d k r xK t j	   D]= \ } \ } } | s q n  | j
 |  r |  j | |  Sq W|  j | |  j   St | } | j
 |  s|  j | |  j   S| t |  } t | t t f  rL| | d <n | } t |  _ |  j | |  j   Sx t j	   D] \ } \ } } | j
 |  sq{q{| |  _  | st |  _ | t |  } t | t t f  r| | d <n | } t | t  r| j t  S| Sn  |  j | |  Sq{Wt | t  rE| j t  S| S(   Ni    R   (   R   R:   R   R   t   _decodeR[   R   RT   t   BOMSR   t
   startswitht   BOM_SETRx   R   R  R   t
   splitlines(   RF   R  Rh   t   encR  R   t   final_encodingt   newline(    (    s+   /var/www/SABnzbd/sabnzbd/utils/configobj.pyR  i  sR    
			c         C   s   |  j  r | j d  S| Sd  S(   Nt   ascii(   R   t   decode(   RF   t   aString(    (    s+   /var/www/SABnzbd/sabnzbd/utils/configobj.pyt   _a_to_u  s    	c         C   sk   t  | t  r% | j |  j t  Sx? t |  D]1 \ } } t  | t  s2 | j |  | | <q2 q2 W| S(   N(   R[   R   R*  R%  R   t	   enumeratet   unicode(   RF   R  R   RQ   Rh   (    (    s+   /var/www/SABnzbd/sabnzbd/utils/configobj.pyR!    s    c         C   s9   |  j  s | St | t  r5 |  j r5 | j |  j  S| S(   N(   R   R[   t   strR6   R*  (   RF   Rh   (    (    s+   /var/www/SABnzbd/sabnzbd/utils/configobj.pyt   _decode_element  s
    	c         C   s!   t  | t  s t |  S| Sd  S(   N(   R[   R   R/  (   RF   RL   (    (    s+   /var/www/SABnzbd/sabnzbd/utils/configobj.pyt   _str  s    
c         C   sS  |  j  } |  j r t |  _  n  g  } t } |  } t |  d } d } t } x| | k  r| rj g  } n  | d 7} | | }	 |	 j   }
 |
 s |
 j d  r t } | j |	  qO n  | s | |  _ g  } t } n  t } |  j	 j
 |	  } | d  k	 r| j   \ } } } } } | r7|  j d  k r7| |  _ n  | j d  } | | j d  k rw|  j d t | |  qO n  | | j k  ry |  j | |  j } Wqt k
 r|  j d t | |  qO qXnM | | j k r| j } n2 | | j d k r| } n |  j d t | |  |  j |  } | | k rS|  j d	 t | |  qO n  t | | |  d
 | } | | | <| | j | <| | j | <qO n  |  j j
 |	  } | d  k r|  j d t | |  qO | j   \ } } } | r|  j d  k r| |  _ n  | d  d k ry% |  j | | | |  \ } } } Wn* t k
 rc|  j d t | |  qO qX|  j rd } y t |  } Wqt k
 r} t |  t k rd } n d } |  j | t  | |  qO qXqn |  j rHd } y t |  } Wqt k
 rD} t! | t  r"d } n d } |  j | t  | |  qO qXnF y |  j" |  \ } } Wn* t k
 r|  j d t | |  qO n X|  j |  } | | k r|  j d t | |  qO n  | j# | | d t | | j | <| | j | <qO qO W|  j d  k rd |  _ n  |  r4|  j r4| |  _ n | sF| |  _$ n  | |  _  d  S(   Ni   it   #t   [t   ]s,   Cannot compute the section depth at line %s.s(   Cannot compute nesting level at line %s.s   Section too nested at line %s.s"   Duplicate section name at line %s.RV   s   Invalid line at line "%s".i   s   """s   '''s    Parse error in value at line %s.Rg   s)   Unknown name or type in value at line %s.s"   Duplicate keyword name at line %s.R7   (   s   """s   '''(%   R0   R7   R   Rx   t   stripR#  R   R  R   t   _sectionmarkerR{   R:   t   groupsR5   t   countt   _handle_errorR   R   t   _match_depthRb   Rj   t   _unquoteR    R   R   R   t   _keywordR   t
   _multilineR   t   typeR*   R)   R[   t   _handle_valueR   R   (   RF   R  t   temp_list_valuest   comment_listt
   done_startR  t   maxlinet	   cur_indext   reset_commentRh   t   slinet   matt   indentt	   sect_opent	   sect_namet
   sect_closet   commentt	   cur_depthRb   Ry   RL   t   eRo   (    (    s+   /var/www/SABnzbd/sabnzbd/utils/configobj.pyR    s    			

					
				
				
c         C   sZ   x7 | | j  k  r9 | | j k r- t    n  | j } q W| j  | k rM | St    d  S(   N(   R   Rb   Rj   (   RF   t   sectR   (    (    s+   /var/www/SABnzbd/sabnzbd/utils/configobj.pyR:    s    c         C   sV   | | } | d 7} | | } | | | |  } |  j  rB |  n  |  j j |  d  S(   Ni   (   R/   R  R   (   RF   t   textt
   ErrorClassR  RD  Rh   Rl   R  (    (    s+   /var/www/SABnzbd/sabnzbd/utils/configobj.pyR9    s    


		c         C   sG   | s t   n  | d | d k rC | d d k rC | d d !} n  | S(   Ni    it   "t   'i   (   RR  RS  (   Rj   (   RF   RL   (    (    s+   /var/www/SABnzbd/sabnzbd/utils/configobj.pyR;    s
    	$c   	      C   s=  | r |  j  r | d k r d S| r t | t t f  r | sD d St |  d k rq |  j | d d t d Sd j g  | D] } |  j | d t ^ q~  St | t  s |  j	 r t
 |  } q t d |   n  | s d S|  j od	 | k od
 | k } | o-d | k r$d | k p-d	 | k } | o^| o^d | k o^d | k o^d
 | k } | sn| or| } | r|  j st } qd	 | k rt d |   q| d t k r| d t k rd | k rt } q|  j |  } n |  j |  } | t k r5d
 | k r5|  j r5|  j |  } n  | | S(   NRg   t   ,i   i    t	   multilines   , s   Value "%s" is not a string.s   ""s   
R2  RS  RR  s#   Value "%s" cannot be safely quoted.i(   R8   R[   R   RT   Rx   t   _quoteR   Rw   R   R4   R/  RZ   R0   t   noquotR   t   wspace_plust   _get_single_quotet   _get_triple_quote(	   RF   RL   RU  R   t   no_lists_no_quotest   need_triplet   hash_triple_quotet   check_for_singlet   quot(    (    s+   /var/www/SABnzbd/sabnzbd/utils/configobj.pyRV    sB    	&	"*1			!c         C   sJ   d | k r+ d | k r+ t  d |   n d | k r@ t } n t } | S(   NRS  RR  s#   Value "%s" cannot be safely quoted.(   R   t   squott   dquot(   RF   RL   R_  (    (    s+   /var/www/SABnzbd/sabnzbd/utils/configobj.pyRY    s    	c         C   se   | j  d  d k r= | j  d  d k r= t d |   n  | j  d  d k r[ t } n t } | S(   Ns   """is   '''s#   Value "%s" cannot be safely quoted.(   t   findR   t   tdquott   tsquot(   RF   RL   R_  (    (    s+   /var/www/SABnzbd/sabnzbd/utils/configobj.pyRZ  $  s    *	c   	      C   s|  |  j  r | d f S|  j sP |  j j |  } | d  k rF t    n  | j   S|  j j |  } | d  k rz t    n  | j   \ } } } } | d k r | d  k r t    n  | d  k	 r g  | f S| d  k	 r| r | r d  } q| p d } |  j |  } n  | d k r"| | f S|  j	 j
 |  } g  | D] } |  j |  ^ q;} | d  k	 rr| | g 7} n  | | f S(   NRg   s   ""(   R   R0   t   _nolistvalueR{   R:   Rj   R7  t	   _valueexpR;  t   _listvalueexpt   findall(	   RF   RL   RG  R0   t   singlet
   empty_listRL  R   R   (    (    s+   /var/www/SABnzbd/sabnzbd/utils/configobj.pyR?  .  s6    	
	

	
"c         C   s<  | d  } | d } |  j  | d } |  j  | d } | j |  }	 |	 d  k	 rt t |	 j    }
 |
 j |  |
 S| j |  d k r t    n  xZ | | k  r | d 7} | d 7} | | } | j |  d k r | | 7} q Pq Wt    | j |  }	 |	 d  k rt    n  |	 j   \ } } | | | | f S(   Ni   i    i   is   
(   t   _triple_quoteR{   R:   R   R7  R   Rb  Rj   (   RF   RL   R  RD  RC  R_  t   newvaluet   single_linet
   multi_lineRG  t   retvalRh   RL  (    (    s+   /var/www/SABnzbd/sabnzbd/utils/configobj.pyR=  _  s0    




	c         C   s   t  | t  s| y" t | d t d t d t } Wq| t k
 rV } t d |   q| t k
 rx } t d |   q| Xn  | |  _ d  S(   NR/   R2   R   s   Parsing configspec failed: %ss   Reading configspec failed: %s(   R[   R"   R   R   R!   Rm   R3   (   RF   R3   RN  (    (    s+   /var/www/SABnzbd/sabnzbd/utils/configobj.pyR    s    	c         C   s  | j  } | j d  } t | t  rZ x0 | j D]" } | | k r1 | | | _  q1 q1 Wn  x | j D] } | d k r| qd n  | | k r i  | | <t | | _ | r | j j | g   | j | <| j j | d  | j | <q n  t | | t	  rd | | | | _  qd qd Wd  S(   Nt   __many__Rg   (
   R3   R   R[   R   R   R   R   R   R   R   (   RF   Rr   t   copyR3   t   manyR   (    (    s+   /var/www/SABnzbd/sabnzbd/utils/configobj.pyt   _set_configspec  s"    	
"c         C   sq   |  j  s$ |  j |  j |   } n t |  } d | |  j |  j | d t  |  j d  | |  j |  f S(   Ns
   %s%s%s%s%sRU  s    = (   R7   R0  RV  R   R   R,  (   RF   t   indent_stringR   R   RL  R   (    (    s+   /var/www/SABnzbd/sabnzbd/utils/configobj.pyt   _write_line  s    	c         C   sR   d | |  j  d |  |  j |  j |  d t |  j  d |  |  j |  f S(   Ns
   %s%s%s%s%sR3  RU  R4  (   R,  RV  R0  R   (   RF   Rt  R   R   RL  (    (    s+   /var/www/SABnzbd/sabnzbd/utils/configobj.pyt   _write_marker  s
    c         C   s@   | s
 d S|  j  } | j d  s8 | |  j d  7} n  | | S(   NRg   R2  s    # (   R5   R#  R,  (   RF   RL  R   (    (    s+   /var/www/SABnzbd/sabnzbd/utils/configobj.pyt   _handle_comment  s    	c         C   sV  |  j  d  k r t |  _  n  g  } |  j d  } |  j d  } | d  k r |  j } t |  _ |  } x_ |  j D]Q } |  j |  } | j   } | r | j	 |  r | | } n  | j
 |  qm Wn  |  j  | j }	 x| j | j D]}
 |
 | j k rq n  x^ | j |
 D]O } |  j | j    } | rM| j	 |  rM| | } n  | j
 |	 |  qW| |
 } |  j | j |
  } t | t  r| j
 |  j |	 | j |
 |   | j |  j d |   q | j
 |  j |	 |
 | |   q W| |  k rix\ |  j D]Q } |  j |  } | j   } | rL| j	 |  rL| | } n  | j
 |  qW| |  _ n  | |  k	 ry| S|  j d  k r*| d  k r*|  j rg  | D] } | j |  j  ^ q} n  |  j r&|  j d  k st j |  j j     d k r&| s| j
 d  n  t! | d | d <n  | S|  j" p9t# j$ } t% | d d   d  k	 r| j& d k rt' j( d	 k r| d
 k rd } n  |  j |  j) |  } |  j r| j |  j  } n  |  j r|  j d  k st* |  j  rt! | } n  | j+ |  s| | 7} n  | d  k	 r)| j |  n) t, |  j d  } | j |  | j-   d  S(   NR2  s   # Rr   R   Rg   i    t   modeR  t   win32s   
s   
t   wb(.   R5   R:   R   R,  R.   R   R  R0  R5  R#  R   R   R   R   R   R   t   lstripRw  R   R[   R   Rv  t   extendR  Ru  R   R  R   t   encodeR  R   R   R   R   R  R  t   linesepRD   Rx  t   syst   platformRw   R   R  R  R  (   RF   t   outfileRr   R   t   cst   cspt   int_valRh   t   stripped_lineRt  R   t   comment_lineR   RL  t   lR(  t   outputR  (    (    s+   /var/www/SABnzbd/sabnzbd/utils/configobj.pyR    s    		

	('		'c      
      s   d  k r  j d  k r* t d   n   rL d d l m } |  _ n     r  j j  _  j j  _  j j  _  j j	  _	  j j
  _
  j j  _ q n   j    j            f d   } i   t } t } g   j D] }	 |	   k r|	 ^ q}
 g    j D] }	 |	  j k r6|	 ^ q6} g    j D] }	 |	  j k ra|	 ^ qa} x   j D] } | d k rqn  |  j k s|  j k r!t } d  }  r1|  j k r1  j j | g    j | <  j j | d   j | <q1n t }  | } | |   | | | | |  \ } } qWd  } d   j k r|  d } n d   j k r  d } n  | d  k	 rx9 |
 D]1 }  | } | | | | t | |  \ } } qWg  }
 n  xJ | D]B } t }  st  | <qt } d | }  j |   | <qWxJ | D]B } t }  s\t  | <q=t } d	 | }  j |   | <q=Wx  j D] }   k r| d
 k rqn   | j d  k r|
 j |  qn   r  j j | g    j | <  j j | d   j | <n   j  d  d  d  | } |  | <| t k r\t } q| t k rqt } qt } qW|
  _  r j rt } n  | r r rt  j    } n  | rt S| rt S S(   Ns   No configspec supplied.i(   t   VdtMissingValuec   	         s   j  j |  d   y  j   |    j  |  <Wn t t  j f k
 rP n Xy  j | | d | } WnR  j k
 r }  s t |  j	  r t
  |  <n |  |  <t
 } t
 } n Xt
 } t  |  < j s | rs j sQt | t t f  r$g  | D] }  j |  ^ q} qQ| r?| d  k r?d } qQ j |  } n  | | k sc| rs|  |  <qsn   r| r|   j k r j j |   n  | | f S(   Nt   missingRg   (   R   R   R:   t   get_default_valueR   R   t   baseErrorClasst   checkR[   t   _vdtMissingValueR   R   R4   R   RT   R1  R   R   (	   R   t   specR   R  t   ret_truet	   ret_falseR  RN  t   item(   R3   Rq  R   t   preserve_errorsRr   RF   t	   validator(    s+   /var/www/SABnzbd/sabnzbd/utils/configobj.pyt   validate_entry  s:    	


	%	Rp  t
   ___many___Rg   s"   Value %r was provided as a sections)   Section %r was provided as a single valueR   R  Rq  Rr   (   Rp  R  (   R:   R3   R   t   validateR  R  R  R   R   R  R  R5   Rs  R   R   R   R   R   R   R   R   R  R   R   R   R   R   (   RF   R  R  Rq  Rr   R  R  R  R  R|   t   unvalidatedt   incorrect_sectionst   incorrect_scalarsR   R  R   Rr  Ro   R  (    (   R3   Rq  R   R  Rr   RF   R  s+   /var/www/SABnzbd/sabnzbd/utils/configobj.pyR  D  s    $	!-(++"

	

%
		
		c         C   s*   |  j    |  j   d  |  _ d  |  _ d  S(   N(   R   R   R:   R3   R   (   RF   (    (    s+   /var/www/SABnzbd/sabnzbd/utils/configobj.pyt   reset	  s    

	c         C   s   t  |  j t  s t    n  |  j } i  } x3 t D]+ } | d k rL q4 n  t |  |  | | <q4 W|  j } | | d <|  j   |  j |  |  j	 | |  d  S(   NR3   (
   R[   R  R   R(   R   RD   R   R   R   R   (   RF   R  t   current_optionsR   R3   (    (    s+   /var/www/SABnzbd/sabnzbd/utils/configobj.pyt   reload	  s    		

N(.   R@   RA   R   R   R   R<  R6  Rf  Rg  Re  t   _single_line_singlet   _single_line_doublet   _multi_line_singlet   _multi_line_doubleRk  R   R   R   R:   Rk   R   R   R   R  R,  R!  R0  R1  R  R:  R9  R;  RV  RY  RZ  R?  R=  R  Rs  Ru  Rv  Rw  R  R  R  R  (    (    (    s+   /var/www/SABnzbd/sabnzbd/utils/configobj.pyR"   <  sv   

			6	a 		e									
E	
	
	1	#						n	c           B   s   e  Z d    Z e d  Z RS(   c         C   s   t  |  _ d  S(   N(   R   R  (   RF   (    (    s+   /var/www/SABnzbd/sabnzbd/utils/configobj.pyRk   D	  s    c         C   s   | r |  j     n  | S(   N(   R  (   RF   R  t   memberR  (    (    s+   /var/www/SABnzbd/sabnzbd/utils/configobj.pyR  G	  s    (   R@   RA   Rk   R   R  (    (    (    s+   /var/www/SABnzbd/sabnzbd/utils/configobj.pyR#   8	  s   	c         C   s  | d  k r g  } g  } n  | t k r+ | S| t k sF t | t  rt | j | d  | f  | rp | j   n  | Sx | j   D]w \ } } | t k r q n  t |  j |  t	  r | j |  t
 |  | | | |  q n  | j | | | f  q W| r| j   n  | S(   N(   R:   R   R   R[   R   R   R   R   R   R   R+   (   t   cfgt   rest   levelst   resultsRy   R   (    (    s+   /var/www/SABnzbd/sabnzbd/utils/configobj.pyR+   N	  s*     	c         C   sz   g  } | j  g  |  j D] } | | f ^ q  xD |  j D]9 } | |  j k r9 | j  t |  | | | f   q9 q9 W| S(   N(   R|  R   R   R,   (   t   conft   _prependR   RV   (    (    s+   /var/www/SABnzbd/sabnzbd/utils/configobj.pyR,   	  s    )((@   t
   __future__R    R  R   R  t   codecsR   R   R   R   R:   R9   R"  R   R$  R   R`  Ra  RW  RX  Rd  Rc  t   objectR   R   R   t	   NameErrort   __all__R   R   t   MAX_INTERPOL_DEPTHR   R   R   R?   R   R*   RB   Rf   R7   Rj   R   R   R   Rm   R(   R    R!   R$   R%   R'   R&   R)   Rp   R   R   R   R   R   R   R"   R#   R+   R,   (    (    (    s+   /var/www/SABnzbd/sabnzbd/utils/configobj.pyt   <module>   s   "

			
		8				|
	  g     <