
    YІ_X                     \    S r SS/rSr " S S\5      r " S S\5      r " S S\5      rS rg	)
zdbrain-dead simple parser for ini-style files.
(C) Ronny Pfannschmidt, Holger Krekel -- MIT licensed
	IniConfig
ParseErrorz#;c                        \ rS rSrS rS rSrg)r   	   c                 T    [         R                  XX#5        Xl        X l        X0l        g N)	Exception__init__pathlinenomsg)selfr
   r   r   s       4/usr/lib/python3/dist-packages/iniconfig/__init__.pyr	   ParseError.__init__
   s!    4v3	    c                 ^    U R                   < SU R                  S-   < SU R                  < 3$ )N:   z: )r
   r   r   )r   s    r   __str__ParseError.__str__   s    "iiQAAr   )r   r   r
   N)__name__
__module____qualname____firstlineno__r	   r   __static_attributes__ r   r   r   r   	   s    Br   c                   @    \ rS rSrS rS rS\4S jrS rS r	S r
S	rg)
SectionWrapper   c                     Xl         X l        g r   configname)r   r!   r"   s      r   r	   SectionWrapper.__init__   s    	r   c                 N    U R                   R                  U R                  U5      $ r   r!   lineofr"   r   r"   s     r   r&   SectionWrapper.lineof   s    {{!!$))T22r   Nc                 L    U R                   R                  U R                  UX2S9$ )N)convertdefault)r!   getr"   )r   keyr+   r*   s       r   r,   SectionWrapper.get   s)    {{tyy#'.  A 	Ar   c                 N    U R                   R                  U R                     U   $ r   )r!   sectionsr"   )r   r-   s     r   __getitem__SectionWrapper.__getitem__    s     {{##DII.s33r   c              #      ^ #    T R                   R                  R                  T R                  / 5      nU 4S jn[	        XS9 H  nUv   M	     g 7f)Nc                 P   > TR                   R                  TR                  U 5      $ r   r%   )r-   r   s    r   r&   'SectionWrapper.__iter__.<locals>.lineof&   s    ;;%%dii55r   r-   )r!   r0   r,   r"   sorted)r   sectionr&   r"   s   `   r   __iter__SectionWrapper.__iter__#   s?     ++&&**499b9	67/DJ 0s   AAc              #   .   #    U  H  nXU   4v   M     g 7fr   r   r'   s     r   itemsSectionWrapper.items+   s     DT
"" s   r    )r   r   r   r   r	   r&   strr,   r1   r9   r<   r   r   r   r   r   r      s(    3  $S A4#r   r   c                   Z    \ rS rSrSS jrS rS rS rSS jrS\	4S jr
S	 rS
 rS rSrg)r   0   Nc                 v   [        U5      U l        UcA  [        U R                  5      n U R                  [	        U5      5      nUR                  5         O U R                  UR                  S5      5      n0 U l        0 U l        U H  u  pVpxUc  U R                  US5        XPR                  Xg4'   Uc6  X`R                  ;   a  U R                  USU< 35        0 U R                  U'   Mc  XpR                  U   ;   a  U R                  USU< 35        XR                  U   U'   M     g ! UR                  5         f = f)NTzno section header definedzduplicate section zduplicate name )
r>   r
   open_parseiterclose
splitlines_sourcesr0   _raise)	r   r
   dataftokensr   r8   r"   values	            r   r	   IniConfig.__init__1   s   I	<TYYAT!W-	[[!67F,2(FTF$?@+1MM'-(|mm+KK'(LM)+g&==11KKt(FG/4g&t, -3 	s   D& &D8c                 .    [        U R                  X5      er   )r   r
   )r   r   r   s      r   rH   IniConfig._raiseL   s    F00r   c                    / nS n[        U5       H  u  pEU R                  XT5      u  pgUb  Ub  UR                  XCXg45        M3  Ub4  Uc1  U(       d  U R                  US5        UnUR                  XCS S 45        Mj  Ub  Mo  Uc  Mt  U(       d  U R                  US5        UR	                  5       nUSS  u  pU	c  U R                  US5        U
(       a	  U
< SU< 3nUR                  US S U4-   5        M     U$ )Nzempty section namezunexpected value continuation
)	enumerate
_parselineappendrH   pop)r   	line_iterresultr8   r   liner"   rI   last	last_name	last_datas              r   rC   IniConfig._parseO   s    %i0LF6JDD$4v;<!dlKK(<=vd;<$"2KK(GHzz|'+BCy$	$KK(GH'0$7Dd3Bi4'12- 1. r   c                    [        U5      (       a  SnOUR                  5       nU(       d  gUS   S:X  aS  Un[         H%  nUR                  U5      S   R                  5       nM'     US   S:X  a  USS S 4$ S UR	                  5       4$ US   R                  5       (       dF   UR                  SS5      u  pVS	U;   a
  [        5       e WR	                  5       WR	                  5       4$ S UR	                  5       4$ ! [         a>     UR                  S	S5      u  pV NS! [         a    U R                  US
U-  5          Nuf = ff = f)N )NN    [rS   ]r   =r   zunexpected line: %r)iscommentlinerstripCOMMENTCHARSsplitstripisspace
ValueErrorrH   )r   rZ   r   reallinecr"   rL   s          r   rU   IniConfig._parselinek   sA   D;;=D7c>H!zz!}Q'..0 "Bx3Abz4'')))a""F"jja0$;$,&  ::<.. %%  FF"&**S!"4KD%! FKK(=(DEFFs*   !$C8 8
E DD<8E ;D<<E c                 L    U R                   R                  X45      nUb  US-   $ g Nr   )rG   r,   )r   r8   r"   r   s       r   r&   IniConfig.lineof   s-    ""G?3A: r   c                 X     U" U R                   U   U   5      $ ! [         a    Us $ f = fr   )r0   KeyError)r   r8   r"   r+   r*   s        r   r,   IniConfig.get   s4    	4==1$788 	N	s    ))c                 L    XR                   ;  a  [        U5      e[        X5      $ r   )r0   rs   r   r'   s     r   r1   IniConfig.__getitem__   s!    }}$4. d))r   c              #   p   #    [        U R                  U R                  S9 H  n[        X5      v   M     g 7f)Nr6   )r7   r0   r&   r   r'   s     r   r9   IniConfig.__iter__   s)     4==dkk:D ,, ;s   46c                     XR                   ;   $ r   )r0   )r   args     r   __contains__IniConfig.__contains__   s    mm##r   )rG   r
   r0   r   )r   r   r   r   r	   rH   rC   rU   r&   r>   r,   r1   r9   r{   r   r   r   r   r   r   0   s7    5618&@
 *.s *
-$r   c                 :    U R                  5       S S nU[        ;   $ rp   )lstriprg   )rZ   rm   s     r   re   re      s    bqAr   N)	__doc____all__rg   r   r   objectr   r   re   r   r   r   <module>r      sI    
%B B#V #8p$ p$fr   