Ë ÁGûÎ8wãóH—dZddlZddlmZmZmZddlZddlmZGd„de «Z Gd„d e «Z Gd „d e «Z dd „Z Gd „de «ZGd„de «ZGd„de «ZGd„de «Zdd„ZGd„dej&«Zd„Zd„Zd„ZGd„dej&«Zy)aØAccess and/or modify INI files * Compatiable with ConfigParser * Preserves order of sections & options * Preserves comments/blank lines/etc * More conveninet access to data Example: >>> from six import StringIO >>> sio = StringIO('''# configure foo-application ... [foo] ... bar1 = qualia ... bar2 = 1977 ... [foo-ext] ... special = 1''') >>> cfg = INIConfig(sio) >>> print(cfg.foo.bar1) qualia >>> print(cfg['foo-ext'].special) 1 >>> cfg.foo.newopt = 'hi!' >>> cfg.baz.enabled = 0 >>> print(cfg) # configure foo-application [foo] bar1 = qualia bar2 = 1977 newopt = hi! [foo-ext] special = 1 [baz] enabled = 0 éNé)Ú DEFAULTSECTÚ ParsingErrorÚMissingSectionHeaderError)Úconfigcó*—eZdZdZdd„Zd„Zd„Zd„Zy)ÚLineTypeNcó6—|�|jd«|_yy©NÚ )ÚstripÚline)Úselfrs ú1/usr/lib/python3.12/site-packages/iniparse/ini.pyÚ__init__zLineType.__init__7s€Ø Ð ØŸ ™  4Ó(ˆD�Ið ócóR—|j� |jS|j«S©N)rÚ to_string©rs rÚ__str__zLineType.__str__=s#€Ø �9‰9Ð Ø—9‘9Ð à—>‘>Ó#Ð #rcóX—t||«rd|jd<||j|<y)Nr)ÚhasattrÚ__dict__)rÚnameÚvalues rÚ __setattr__zLineType.__setattr__Es(€Ü �4˜Ô Ø$(ˆD�M‰M˜&Ñ !Ø#ˆ� ‰ �dÒrcó—td«‚)Nz1This method must be overridden in derived classes©Ú Exceptionrs rrzLineType.to_stringJs€ÜÐKÓLÐLrr)Ú__name__Ú __module__Ú __qualname__rrrrr©rrr r 4s„Ø €Dó)ò $ò$ó Mrr cód‡—eZdZejd«Z dˆfd„ Zd„Zd„Ze e«ZˆxZ S)Ú SectionLinez7^\[(?P[^]]+)\]\s*((?P;|#)(?P.*))?$cód•—tt|� |«||_||_||_||_yr)Úsuperr&rrÚcommentÚcomment_separatorÚcomment_offset)rrr)r*r+rÚ __class__s €rrzSectionLine.__init__Ts0ø€ä Œk˜4Ñ)¨$Ô/؈Œ ؈Œ Ø!2ˆÔØ,ˆÕrcó¶—d|jzdz}|j�:|dzj|j«}||jz|jz}|S)NÚ[Ú]Ú )rr)Úljustr+r*©rÚouts rrzSectionLine.to_string\sT€Ø�D—I‘I‰o Ñ#ˆØ �<‰<Ð #à�s‘7—/‘/ $×"5Ñ"5Ó6ˆCؘ×.Ñ.Ñ.°·±Ñ=ˆC؈ rcóê—|jj|j««}|€y||jd«|jd«|jd«|j d«|«S)Nrr)Úcsep©ÚregexÚmatchÚrstripÚgroupÚstart©ÚclsrÚms rÚparsezSectionLine.parseds\€Ø �I‰I�O‰O˜DŸK™K›MÓ *ˆØ ˆ9ØÙ�1—7‘7˜6“? A§G¡G¨IÓ$6Ø—7‘7˜6“? A§G¡G¨F£OØóð r)NNéÿÿÿÿN© r!r"r#ÚreÚcompiler7rrr?Ú classmethodÚ __classcell__©r,s@rr&r&Ns<ø„Ø ˆB�J‰Jð;ó <€Eð >BØ59õ-òòñ ˜Ó „Err&cód‡—eZdZ dˆfd„ Zd„Zej d«Zd„Ze e«ZˆxZ S)Ú OptionLinec󀕗tt|� |«||_||_||_||_||_||_yr) r(rHrrrÚ separatorr)r*r+) rrrrJr)r*r+rr,s €rrzOptionLine.__init__os>ø€ä Œj˜$Ñ(¨Ô.؈Œ ؈Œ Ø"ˆŒØˆŒ Ø!2ˆÔØ,ˆÕrcóÞ—|j›|j›|j›�}|j�:|dzj |j «}||j z|jz}|S©Nr0)rrJrr)r1r+r*r2s rrzOptionLine.to_stringysZ€ØŸ)š) T§^¢^°T·Z²ZÐ@ˆØ �<‰<Ð #à�s‘7—/‘/ $×"5Ñ"5Ó6ˆCؘ×.Ñ.Ñ.°·±Ñ=ˆC؈ rz7^(?P[^:=\s[][^:=]*)(?P[:=]\s*)(?P.*)$c ó—|jj|j««}|€y|jd«j«}|jd«}|jd«t |«d|jd«z}|j d«}|dk7rK||dz j «r5||dzd}||}|d|j«}|jd«|z}nd}d}d}||||||||«S)NrrÚsepÚ;r@r)r7r8r9r:ÚlenÚfindÚisspacer;) r=rr>rrrNÚcoffr)r5s rr?zOptionLine.parse…sù€Ø �I‰I�O‰O˜DŸK™K›MÓ *ˆØ ˆ9Øà�w‰w�v‹×%Ñ%Ó'ˆØ—‘˜Ó ˆØ�g‰g�f‹oœc $›i˜jÐ)¨A¯G©G°E«NÑ:ˆð�z‰z˜#‹ˆØ �2Š:˜%  Q¡™-×/Ñ/Ô1ؘD ™F˜G�nˆGؘ‘;ˆDؘ%˜4�L×'Ñ'Ó)ˆEØ—7‘7˜7Ó# dÑ*‰DàˆG؈D؈Dá�4˜  W¨d°D¸$Ó?Ð?r)z = NNr@N) r!r"r#rrrBrCr7r?rDrErFs@rrHrHns=ø„Ø=AØAEõ-òð ˆB�J‰Jð)ó *€Eò@ñ@ ˜Ó „ErrHcó�—tjdd|«}d|z}|r|dz }|dz }tj|«t_y)Nz ([\]\-\^])z\\\1z^(?P[%s]z |[rR][eE][mM]z)(?P.*)$)rBÚsubrCÚ CommentLiner7)Ú comment_charsÚ allow_remr7s rÚchange_comment_syntaxrY¨sG€Ü—F‘F˜=¨'°=ÓA€MØ   Ñ -€EÙØ �Ñ ˆØ Ð !Ñ!€EÜŸ ™  5Ó)„KÕrcó`‡—eZdZejd«Zdˆfd„ Zd„Zd„Ze e«ZˆxZ S)rVz,^(?P[;#]|[rR][eE][mM])(?P.*)$cóH•—tt|� |«||_||_yr)r(rVrr)rJ)rr)rJrr,s €rrzCommentLine.__init__µs ø€Ü Œk˜4Ñ)¨$Ô/؈Œ Ø"ˆ�rcó4—|j|jzSr)rJr)rs rrzCommentLine.to_stringºs€Ø�~‰~ § ¡ Ñ,Ð,rcóª—|jj|j««}|€y||jd«|jd«|«S)Nr)r5)r7r8r9r:r<s rr?zCommentLine.parse½sB€Ø �I‰I�O‰O˜DŸK™K›MÓ *ˆØ ˆ9ØÙ�1—7‘7˜9Ó% q§w¡w¨v£¸Ó=Ð=r)ÚÚ#NrArFs@rrVrV±s3ø„Ø ˆB�J‰Jð+ó ,€Eõ#ò -ò>ñ ˜Ó „ErrVcó:—eZdZd„Zed„«Zd„Zee«Zy)Ú EmptyLinecó—y©Nr^r$rs rrzEmptyLine.to_stringÈs€Ørcó—yrcr$rs rÚzEmptyLine.Ës€ "rcó4—|j«ry||«Sr)r )r=rs rr?zEmptyLine.parseÍs€Ø �:‰:Œ<ØÙ�4‹yÐrN)r!r"r#rÚpropertyrr?rDr$rrraraÆs$„òñ ‘_Ó %€Eòñ ˜Ó �Erracó`‡—eZdZejd«Zdˆfd„ Zd„Zd„Ze e«ZˆxZ S)ÚContinuationLinez^\s+(?P.*)$cóP•—tt|� |«||_|€d}||_y)Né)r(rirrÚ value_offset)rrrlrr,s €rrzContinuationLine.__init__Øs-ø€Ü Ô Ñ.¨tÔ4؈Œ Ø Ð ØˆLØ(ˆÕrcó:—d|jz|jzSrL)rlrrs rrzContinuationLine.to_stringßs€Ø�4×$Ñ$Ñ$ t§z¡zÑ1Ð1rcóª—|jj|j««}|€y||jd«|j d«|«S)Nrr6r<s rr?zContinuationLine.parseâsC€Ø �I‰I�O‰O˜DŸK™K›MÓ *ˆØ ˆ9ØÙ�1—7‘7˜7Ó# Q§W¡W¨WÓ%5°tÓ<Ðà—‘œ›Õ%ñ rcó|—|jD�cgc]}|j«‘Œ}}dj|«Scc}wr )rrrrˆ)rr|Úss rrzLineContainer.__str__!s3€Ø"&§-¢-Ó 0¡-˜QˆQ�Y‰Y�[ -ˆÐ 0Ø�y‰y˜‹|Ðùò 1s�9c#ó|K—|jddd…D]#}t|d«sŒ|j|k(sŒ |–—Œ%y­w)Nr@r)rrrr©rÚkeyr|s rÚfinditerzLineContainer.finditer%s6èø€Ø—‘™t ˜tÔ$ˆAÜ�q˜&Õ! a§f¡f¨c£kØ“ñ%ùs ‚"<¥<µ<cóJ—|j|«D]}|cSt|«‚r)r”ÚKeyErrorr’s rrQzLineContainer.find*s$€Ø—‘˜sÖ#ˆAØŠHð$ä�s‹mÐrr)r!r"r#rrwrvr‚r…r‰rŽrgrrrr”rQr$rrrprpësO„óò ò ò%ò%òBò&ñ* �H˜hÓ '€Dá �Y  Ó *€Eòòó rrpcóX‡‡‡—|dzŠ|dzЉ€|Šˆˆˆfd„}ˆˆˆfd„}t||«S)NrÚsourcecóP•—t|‰«}|� t|‰«St|‰«Sr)Úgetattr)rÚsrcobjÚprivate_attrnameÚprivate_srcnameÚ srcattrnames €€€rÚgetfnz#_make_xform_property..getfn6s0ø€Ü˜˜Ó/ˆØ Рܘ6 ;Ó/Ð /ä˜4Ð!1Ó2Ð 2rcóX•—t|‰«}|�t|‰|«yt|‰|«yr)ršÚsetattr)rrr›rœr�ržs €€€rÚsetfnz#_make_xform_property..setfn=s.ø€Ü˜˜Ó/ˆØ Ð Ü �F˜K¨Õ /ä �DÐ*¨EÕ 2r)rg)Ú myattrnameržrŸr¢rœr�s ` @@rÚ_make_xform_propertyr¤0s<ú€Ø! GÑ+ÐØ  8Ñ+€OØÐØ ˆ ö3ö3ô �E˜5Ó !Ð!rcój—eZdZdZdZdZdZdZe«Z d d„Z e d«Z d„Z d„Zd„Zd„Zd„Zd „Zy) Ú INISectionNcóL—|g|_||_||_||_i|_yr)Ú_linesÚ _defaultsÚ_optionxformvalueÚ_optionxformsourceÚ_options)rÚlineobjÚdefaultsÚoptionxformvalueÚoptionxformsources rrzINISection.__init__Os)€Ø�iˆŒ Ø!ˆŒØ!1ˆÔØ"3ˆÔ؈� rÚ _optionxformcóÞ—|dk(r|jdjS|jr|j|«} |j|j}||j v}|rtjdd|«}|S#t $rd|jrT||jjvr<|jj|j}||jj v}n‚YŒ‡wxYw)Nr!r@z +r ) r¨rr±r¬rÚ_compat_skip_empty_linesr–r©rBrU)rr“rÚ del_emptys rÚ _compat_getzINISection._compat_getXsÜ€ð �*Ò Ø—;‘;˜r‘?×'Ñ'Ð 'Ø × Ò  D×$5Ñ$5°cÓ$:˜cð Ø—M‘M #Ñ&×,Ñ,ˆEؘt×<Ñ<Ð<ˆIñ Ü—F‘F˜5 $¨Ó.ˆE؈ øôò Ø�~Š~ #¨¯©×)@Ñ)@Ñ"@ØŸ™×/Ñ/°Ñ4×:Ñ:�Ø 4§>¡>×#JÑ#JÐJ‘ àñð ús½'A?Á?A*C,Ã+C,cóZ—|dk(r|jdjS|jr|j|«} |j|jS#t $rK|j r=||j jvr%|j j|jcYS‚wxYw)Nr!r@)r¨rr±r¬rr–r©©rr“s rÚ_getitemzINISection._getitemks•€Ø �*Ò Ø—;‘;˜r‘?×'Ñ'Ð 'Ø × Ò  D×$5Ñ$5°cÓ$:˜cð Ø—=‘= Ñ%×+Ñ+Ð +øÜò Ø�~Š~ #¨¯©×)@Ñ)@Ñ"@Ø—~‘~×.Ñ.¨sÑ3×9Ñ9Ò9àð  ús½AÁAB*Â(B*có^—|jr|j|«}n|}||jvr|jj|«||jvrBt t |d««}|j dj|«||j|<||j|_y)Nr^r@) r±r³Úremover¬rprHr¨rwr)rr“rÚxkeyÚobjs rÚ __setitem__zINISection.__setitem__ws•€Ø × Ò  T×%6Ñ%6°sÓ%;™d؈dØ �4×0Ñ0Ñ 0Ø × )Ñ )× 0Ñ 0°Ô 6Ø �t—}‘}Ñ $ä¤ ¨3°Ó 3Ó4ˆCØ �K‰K˜‰O× Ñ  Ô $Ø"%ˆD�M‰M˜$Ñ ð%*ˆ� ‰ �dÑÕ!rcóÄ—|jr|j|«}||jvr|jj|«|jD]~}g}|jD]d}t |t «rA|j}|jr|j|«}||k7sŒB|j|«ŒT|j|«Œf||_Œ€|j|=yr) r±r³rºr¨rrrtrprrzr¬)rr“ÚlÚ remainingÚoÚns rÚ __delitem__zINISection.__delitem__…sÁ€Ø × Ò  D×$5Ñ$5°cÓ$:˜cØ �$×/Ñ/Ñ /Ø × )Ñ )× 0Ñ 0°Ô 5Ø—”ˆA؈IØ—Z”Z�ܘa¤Ô/ØŸ™�AØ×(Ò(¨d×.?Ñ.?ÀÓ.B¨!ؘa“x ×!1Ñ!1°!Õ!4à×$Ñ$ QÕ'ð  ð#ˆA�Jðð �M‰M˜#Ñ rc#ó’K—t«}|jD]r}|jD]a}t|t«sŒ|j r|j |j «}n |j }||vsŒM|–—|j|«ŒcŒt|jr,|jD]}||vsŒ|–—|j|«Œyy­wr) Úsetr¨rrrtrpr±rrwr©)rrxr¿r|Úanss rÚ__iter__zINISection.__iter__•s£èø€Ü ‹EˆØ—”ˆAØ—Z”Z�ܘa¤Õ/Ø×(Ò(Ø"×/Ñ/°·±Ó7™àŸf™f˜Ø !’|Ø!š ØŸ™˜c� ñ ðð �>Š>Ø—^”^�ؘA’:Ø’GØ—E‘E˜!•Hñ$ð ùs‚9C¼8CÁ58CÂ.Ccó—td|«‚)NzNo sub-sections allowedr)rrs rÚ_new_namespacezINISection._new_namespace§s€ÜÐ1°4Ó8Ð8r)NNN)r!r"r#r¨r¬r©rªr«rÅr³rr¤r±rµr¸r½rÃrÇrÉr$rrr¦r¦GsT„Ø €FØ€HØ€IØÐØÐÙ"›uÐóñ(¨Ó7€Lòò& ò *òò ó$9rr¦có6—t|jd««Sr )rVr9)rs rÚ make_commentrË«s€Ü �t—{‘{ 4Ó(Ó )Ð)rc#óxK—d} |j«}|s|rd–—y|jd«rd}nd}|–—Œ4­w)zCiterate over a file by only using the file object's readline methodFTr^Nr )ÚreadlineÚendswith)ÚfÚ have_newliners rÚreadline_iteratorrѯsIèø€ð€LØ Ø�z‰z‹|ˆáÙØ’Ø à �=‰=˜Ô ؉Là ˆLàŠ ð ùs‚8:có"—|j«Sr)Úlower)r|s rrÓrÓÃs€Ø �7‰7‹9Ðrcó¬—eZdZdZdZdZdZdZdZdZ dZ dZ ddde dddfd„Z edd«Zedd«Zd„Zd „Zd „Zd „Zd „Zd „ZeZeeeeegZd„Zd„Zy)Ú INIConfigNFTcó(—t«|_||_||_||_||_||_i|_|€i}tt«|¬«|_ |j«D]\}} | |j|<Œ|�|j|«yy)N)r°) rpÚ_dataÚ _parse_excrªr«Ú_sectionxformvalueÚ_sectionxformsourceÚ _sectionsr¦r©ÚitemsÚ_readfp) rÚfpr®Ú parse_excr¯r°ÚsectionxformvalueÚsectionxformsourcerrs rrzINIConfig.__init__ÒsŽ€ô#“_ˆŒ Ø#ˆŒØ!1ˆÔØ"3ˆÔØ"3ˆÔØ#5ˆÔ ؈ŒØ Ð ¨˜XÜ#¤M£OÀtÔLˆŒØ#Ÿ>™>Ö+‰KˆD�%Ø#(ˆD�N‰N˜4Ò ð,à ˆ>Ø �L‰L˜Õ ð rr±Ú optionxformÚ _sectionxformcó„—|tk(r |jS|jr|j|«}|j|Sr)rr©rãrÛr·s rr¸zINIConfig._getitemæs;€Ø ”+Ò Ø—>‘>Ð !Ø × Ò  T×%7Ñ%7¸Ó%<˜sØ�~‰~˜cÑ"Ð"rcó—td||«‚)NzValues must be inside sectionsr)rr“rs rr½zINIConfig.__setitem__ìs€ÜÐ8¸#¸uÓEÐErcóÞ—|jr|j|«}|j|jD]'}|jjj |«Œ)|j|=yr)rãrÛr¨r×rrrº)rr“rs rrÃzINIConfig.__delitem__ïsW€Ø × Ò  T×%7Ñ%7¸Ó%<˜sØ—N‘N 3Ñ'×.Ô.ˆDØ �J‰J× Ñ × &Ñ & tÕ ,ð/à �N‰N˜3Ñ rc#óK—t«}|jt«|jjD]K}t |t «sŒ|j|vsŒ#|j–—|j|j«ŒMy­wr)rÅrwrr×rrrtrpr)rrxr|s rrÇzINIConfig.__iter__õsZèø€Ü ‹EˆØ �‰ŒkÔØ—‘×$Ô$ˆAܘ!œ]Õ+Ø—6‘6 ’?ØŸ&™&’LØ—E‘E˜!Ÿ&™&•Mñ %ùs‚A BÁ BÁ,BcóÒ—|jjr#|jjt««t t |««}|jj|«|j r|j |«}||jvr,|j|}|jj|«|St||j|¬«}||j|<|S)N©r®r°) r×rrrwrarpr&rãrÛr¨rzr¦r©)rrr¼Únss rrÉzINIConfig._new_namespaceþsµ€Ø �:‰:× Ò Ø �J‰J�N‰Nœ9›;Ô 'ÜœK¨Ó-Ó.ˆØ � ‰ �‰�sÔØ × Ò  d×&8Ñ&8¸Ó&>˜tØ �4—>‘>Ñ !Ø—‘ Ñ%ˆBØ �I‰I× Ñ ˜SÔ !ð ˆ ô˜C¨$¯.©.Ø.2ô4ˆBà#%ˆD�N‰N˜4Ñ Øˆ rcó^—|jrd}nd}||jj«zS)Nu%sr‡)Ú_bomr×r)rÚfmts rrzINIConfig.__str__ s+€Ø �9Š9؉CàˆCØ�T—Z‘Z×'Ñ'Ó)Ñ)Ð)rcóT—|jD]}|j|«}|sŒ|cSyr)Ú _line_typesr?)rrÚlinetyper­s rÚ_parsezINIConfig._parses-€Ø×(Ô(ˆHØ—n‘n TÓ*ˆGÚØ’ð)ð rcóä—d}d}d}d}g}d} |j}d} d} d} t|«D�]d} | dk(r.t| tj «r| ddk(r | dd} d|_|j| «} | dz } |s?t| tttf«s$|jr t|| | «‚t| «} | €6|jr| € t|«} | j| | «t| «} t| t «r~|rF|r2|j#|«g}|r j$j'|«d}|j'| «n6|jr| € t|«} | j| | «t| «} t| t(«r›|r|j#|«g}d}t+| «}|j'|«|j,r|j-|j«}n |j}|t.k(r |j0} n|j2|} || j4|<t| t«�r|j6j#|«g}d}t+| «}|j6j'|«d}d}|jt.k(r,|j0j8j|«t.}n�|j:r|j;|j«}n |j}||j2vr&t=||j0|¬«|j2|<n(|j2|j8j|«t| ttf«s�Œ@|j| «t| t«s�Œcd}�Œg|j6j#|«| r+| dd k(r#|j6j't««| r| ‚y#t$rd}Y�ŒÔwxYw) NFzrurTrér@r )rÚAttributeErrorrÑrtÚsixÚ text_typerìrñrVrar&rØrrËrrzrirvr³rwrHrpr±rr©rÛr¬r×r¨rãr¦)rrÞÚ cur_sectionÚ cur_optionÚcur_section_nameÚcur_option_nameÚ pending_linesÚpending_empty_linesÚfnameÚ line_countÚexcrÚline_objÚoptobjs rrÝzINIConfig._readfp#s‡€Øˆ ؈ ØÐ؈؈ Ø#Ðð Ø—G‘GˆEðˆ ØˆØˆä% b×)ˆDà˜QФ:¨d´C·M±MÔ#Bؘ‘7˜iÒ'Ø  ˜8�DØ $�D”Ià—{‘{ 4Ó(ˆHØ ˜!‰OˆJá¤z°(¼[Ì)ÔU`ÐNÑ>NÓ+OÑ(à+6×+;Ñ+;Ð(Ø'¨t¯~©~Ñ=ä *¨;ÀÇÁØ=Aô!CðŸ™Ð'7Ò8ðŸ™Ð'7Ñ8×?Ñ?×FÑFÀ{ÔSä˜(¤[´)Ð$<Ö=Ø×$Ñ$ XÔ.ܘh¬ Ö2Ø*.Ò'ðg*ðj � ‰ ×ј-Ô(Ù �D˜‘H Ò$Ø �J‰J�N‰Nœ9›;Ô 'á ØˆIð øôò Ø‹Eð úsŽ O Ï O/Ï.O/) r!r"r#r×rÛr©rªr«rÙrÚrØrìrÓrr¤r±rãr¸r½rÃrÇrÉrÚ __unicode__rarVr&rHrirïrñrÝr$rrrÕrÕÇs¨„Ø €EØ€IØ€IØÐØÐØÐØÐØ€JØ €DਸØ"'¸4Ø#'¸Dóñ"(¨¸ ÓF€LÙ(¨¸-ÓH€Mò#ò Fò ò "ò ò*ð€Kà˜kØ  Ø#ð%€KòóirrÕ)z%;#Fr)Ú__doc__rBÚ configparserrrrrôr^rÚobjectr r&rHrYrVrarirpr¤ÚConfigNamespacer¦rËrÑrÓrÕr$rrÚrs¹ðñ%óV ßNÑNã åôMˆvôMô4�(ôô@7�ô7ót*ô�(ôô* �ô ô�xôô,B�FôBóJ"ô.a9�×'Ñ'ôa9òH*òò(ôE�×&Ñ&õEr