HEX
Server: Apache
System: Linux a16-asgard6.hospedagemuolhost.com.br 5.14.0-570.52.1.el9_6.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Oct 15 06:39:08 EDT 2025 x86_64
User: maoristu4c3dbd03 (1436)
PHP: 8.1.33
Disabled: NONE
Upload Files
File: //usr/lib/python3.9/site-packages/iniparse/__pycache__/ini.cpython-39.pyc
a

�q=bQ�@s�dZddlZddlmZmZmZddlZddlmZGdd�de	�Z
Gdd	�d	e
�ZGd
d�de
�Zd$dd�Z
Gdd�de
�ZGdd�de
�ZGdd�de
�ZGdd�de	�Zd%dd�ZGdd�dej�Zdd�Zdd�Zd d!�ZGd"d#�d#ej�ZdS)&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
    <BLANKLINE>
    [baz]
    enabled = 0

�N�)�DEFAULTSECT�ParsingError�MissingSectionHeaderError)�configc@s2eZdZdZd
dd�Zdd�Zdd�Zdd	�ZdS)�LineTypeNcCs|dur|�d�|_dS�N�
)�strip�line)�selfr�r
�0/usr/lib/python3.9/site-packages/iniparse/ini.py�__init__6szLineType.__init__cCs|jdur|jS|��SdS�N)r�	to_string�rr
r
r�__str__<s
zLineType.__str__cCs"t||�rd|jd<||j|<dS)Nr)�hasattr�__dict__)r�name�valuer
r
r�__setattr__Ds

zLineType.__setattr__cCstd��dS)Nz1This method must be overridden in derived classes��	Exceptionrr
r
rrIszLineType.to_string)N)�__name__�
__module__�__qualname__rrrrrr
r
r
rr3s

rcs@eZdZe�d�Zd
�fdd�	Zdd�Zdd	�Ze	e�Z�Z
S)�SectionLinez7^\[(?P<name>[^]]+)\]\s*((?P<csep>;|#)(?P<comment>.*))?$N���cs,tt|��|�||_||_||_||_dSr)�superrrr�comment�comment_separator�comment_offset)rrr!r"r#r��	__class__r
rrSs
zSectionLine.__init__cCs<d|jd}|jdur8|d�|j�}||j|j}|S)N�[�]� )rr!�ljustr#r"�r�outr
r
rr[s

zSectionLine.to_stringcCsD|j�|���}|durdS||�d�|�d�|�d�|�d�|�S)Nrr!�csep��regex�match�rstrip�group�start��clsr�mr
r
r�parsecs�zSectionLine.parse)NNrN�rrr�re�compiler.rrr6�classmethod�
__classcell__r
r
r$rrMs
�rcs@eZdZd�fdd�	Zdd�Ze�d�Zd	d
�Ze	e�Z�Z
S)�
OptionLine� = Nrcs8tt|��|�||_||_||_||_||_||_dSr)	r r<rrr�	separatorr!r"r#)rrrr>r!r"r#rr$r
rrnszOptionLine.__init__cCsBd|j|j|jf}|jdur>|d�|j�}||j|j}|S)Nz%s%s%sr()rr>rr!r)r#r"r*r
r
rrxs

zOptionLine.to_stringz7^(?P<name>[^:=\s[][^:=]*)(?P<sep>[:=]\s*)(?P<value>.*)$c	Cs�|j�|���}|durdS|�d���}|�d�}|�d�t|�d�|�d�}|�d�}|dkr�||d��r�||dd�}||}|d|���}|�d�|}nd}d}d}||||||||�S)Nrr�sep�;rr)r.r/r0r1�len�find�isspacer2)	r4rr5rrr?Zcoffr!r,r
r
rr6�s 
 
zOptionLine.parse)r=NNrN)rrrrrr8r9r.r6r:r;r
r
r$rr<ms�

 r<�%;#FcCs:t�dd|�}d|}|r"|d7}|d7}t�|�t_dS)Nz
([\]\-\^])z\\\1z^(?P<csep>[%s]z
|[rR][eE][mM]z)(?P<comment>.*)$)r8�subr9�CommentLiner.)Z
comment_charsZ	allow_remr.r
r
r�change_comment_syntax�srGcs@eZdZe�d�Zd�fdd�	Zdd�Zd	d
�Ze	e�Z�Z
S)rFz,^(?P<csep>[;#]|[rR][eE][mM])(?P<comment>.*)$��#Ncs tt|��|�||_||_dSr)r rFrr!r>)rr!r>rr$r
rr�szCommentLine.__init__cCs|j|jSr)r>r!rr
r
rr�szCommentLine.to_stringcCs4|j�|���}|durdS||�d�|�d�|�S)Nr!r,)r.r/r0r1r3r
r
rr6�szCommentLine.parse)rHrINr7r
r
r$rrF�s

rFc@s0eZdZdd�Zedd��Zdd�Zee�ZdS)�	EmptyLinecCsdS�NrHr
rr
r
rr�szEmptyLine.to_stringcCsdSrKr
)�_r
r
r�<lambda>��zEmptyLine.<lambda>cCs|��rdS||�Sr)r
)r4rr
r
rr6�szEmptyLine.parseN)rrrr�propertyrr6r:r
r
r
rrJ�srJcs@eZdZe�d�Zd	�fdd�	Zdd�Zdd�Ze	e�Z�Z
S)
�ContinuationLinez^\s+(?P<value>.*)$Ncs,tt|��|�||_|dur"d}||_dS)N�)r rPrr�value_offset)rrrRrr$r
rr�s
zContinuationLine.__init__cCsd|j|jS)Nr()rRrrr
r
rr�szContinuationLine.to_stringcCs4|j�|���}|durdS||�d�|�d�|�S)Nrr-r3r
r
rr6�szContinuationLine.parse)NNr7r
r
r$rrP�s

rPc@sreZdZddd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Zdd�Z	e
ee�Ze
ee	�Zdd�Z
dd�Zdd�ZdS)�
LineContainerNcCs4g|_d|_|r0t|t�r&|�|�n
|�|�dSr)�contents�orgvalue�
isinstance�list�extend�add)r�dr
r
rr�s
zLineContainer.__init__cCs|j�|�dSr)rT�append)r�xr
r
rrY�szLineContainer.addcCs|D]}|�|�qdSr)rY)rr\�ir
r
rrX�szLineContainer.extendcCs|jdjS�Nr�rTrrr
r
r�get_name�szLineContainer.get_namecCs||jd_dSr^r_)r�datar
r
r�set_name�szLineContainer.set_namecCsD|jdur|jSt|j�dkr*|jdjSd�dd�|jD��SdS)Nrrr	cSs g|]}t|t�sd|j�qS)�%s)rVrFr��.0r\r
r
r�
<listcomp>�s
�z+LineContainer.get_value.<locals>.<listcomp>)rUrArTr�joinrr
r
r�	get_value�s

zLineContainer.get_valuecCs�||_d|�d�}d}|jD]}t|t�r|j}q8q|jdd�|_|d|jd_|d=|D]*}|��r�|�t||��qb|�t	��qbdS)Nrcr	rr)
rU�splitrTrVrPrRrr
rYrJ)rra�linesrR�vrr
r
r�	set_values

zLineContainer.set_valuecCs&|jD]}qdd�|jD�}d�|�S)NcSsg|]}|���qSr
)rrdr
r
rrfrNz)LineContainer.__str__.<locals>.<listcomp>r	)rTrg)r�c�sr
r
rrs
zLineContainer.__str__ccs4|jddd�D]}t|d�r|j|kr|VqdS)Nrr)rTrr�r�keyr\r
r
r�finditer szLineContainer.finditercCs"|�|�D]
}|St|��dSr)rq�KeyErrorror
r
rrB%szLineContainer.find)N)rrrrrYrXr`rbrhrlrOrrrrqrBr
r
r
rrS�s
	

rScsF|d�|d��dur|����fdd�}���fdd�}t||�S)Nr�sourcecs*t|��}|durt|��St|��SdSr)�getattr)r�srcobj�Zprivate_attrnameZprivate_srcname�srcattrnamer
r�getfn1s

z#_make_xform_property.<locals>.getfncs0t|��}|dur t|�|�nt|�|�dSr)rt�setattr)rrrurvr
r�setfn8s
z#_make_xform_property.<locals>.setfn)rO)Z
myattrnamerwrxrzr
rvr�_make_xform_property+sr{c@sheZdZdZdZdZdZdZe�Z	ddd�Z
ed�Zdd�Z
dd�Zd	d
�Zdd�Zd
d�Zdd�ZdS)�
INISectionNcCs$|g|_||_||_||_i|_dSr)�_lines�	_defaults�_optionxformvalue�_optionxformsource�_options)r�lineobj�defaults�optionxformvalue�optionxformsourcer
r
rrIs
zINISection.__init__�_optionxformcCs�|dkr|jdjS|jr$|�|�}z|j|j}||jv}WnBty�|jrz||jjvrz|jj|j}||jjv}n�Yn0|r�t�	dd|�}|S)Nrrz
+r	)
r}rr�r�r�_compat_skip_empty_linesrrr~r8rE)rrprZ	del_emptyr
r
r�_compat_getSszINISection._compat_getcCsp|dkr|jdjS|jr$|�|�}z|j|jWStyj|jrd||jjvrd|jj|jYS�Yn0dS)Nrr)r}rr�r�rrrr~�rrpr
r
r�_getitemfszINISection._getitemcCsn|jr|�|�}n|}||jvr,|j�|�||jvr^tt|d��}|jd�|�||j|<||j|_dS)NrHr)	r�r��remover�rSr<r}rYr)rrprZxkey�objr
r
r�__setitem__rs


zINISection.__setitem__cCs�|jr|�|�}||jvr&|j�|�|jD]X}g}|jD]B}t|t�rr|j}|jr^|�|�}||kr||�|�q:|�|�q:||_q,|j	|=dSr)
r�r�r�r}rTrVrSrr[r�)rrp�lZ	remaining�o�nr
r
r�__delitem__�s



zINISection.__delitem__ccs�t�}|jD]L}|jD]@}t|t�r|jr8|�|j�}n|j}||vr|V|�|�qq|jr�|jD]}||vrf|V|�|�qfdSr)	�setr}rTrVrSr�rrYr~)rrZr�r\Zansr
r
r�__iter__�s



zINISection.__iter__cCstd|��dS)NzNo sub-sections allowedr)rrr
r
r�_new_namespace�szINISection._new_namespace)NNN)rrrr}r�r~rr�r�r�rr{r�r�r�r�r�r�r�r
r
r
rr|Bs �
r|cCst|�d��Sr)rFr0)rr
r
r�make_comment�sr�ccs>d}|��}|s|rdVdS|�d�r.d}nd}|VqdS)zCiterate over a file by only using the file object's readline methodFrHNr	T)�readline�endswith)�fZhave_newlinerr
r
r�readline_iterator�s
r�cCs|��Sr)�lower)r\r
r
rr��sr�c@s�eZdZdZdZdZdZdZdZdZ	dZ
dZdddedddfdd�Z
edd�Zedd�Zd	d
�Zdd�Zd
d�Zdd�Zdd�Zdd�ZeZeeeeegZdd�Zdd�ZdS)�	INIConfigNFTc
Cszt�|_||_||_||_||_||_i|_|dur8i}tt�|d�|_	|�
�D]\}}	|	|j	|<qP|durv|�|�dS)N)r�)rS�_data�
_parse_excrr��_sectionxformvalue�_sectionxformsource�	_sectionsr|r~�items�_readfp)
r�fpr�Z	parse_excr�r�ZsectionxformvalueZsectionxformsourcerrr
r
rr�szINIConfig.__init__r�Zoptionxform�
_sectionxformcCs(|tkr|jS|jr|�|�}|j|Sr)rr~r�r�r�r
r
rr��szINIConfig._getitemcCstd||��dS)NzValues must be inside sectionsr)rrprr
r
rr��szINIConfig.__setitem__cCs<|jr|�|�}|j|jD]}|jj�|�q|j|=dSr)r�r�r}r�rTr�)rrprr
r
rr��szINIConfig.__delitem__ccsJt�}|�t�|jjD],}t|t�r|j|vr|jV|�|j�qdSr)r�rYrr�rTrVrSr)rrZr\r
r
rr��s


zINIConfig.__iter__cCs~|jjr|j�t��tt|��}|j�|�|jr>|�|�}||jvr`|j|}|j�	|�nt
||j|d�}||j|<|S)N�r�r�)r�rTrYrJrSrr�r�r}r[r|r~)rrr��nsr
r
rr��s

�
zINIConfig._new_namespacecCs|jrd}nd}||j��S)Nu%src)�_bomr�r)rZfmtr
r
rrszINIConfig.__str__cCs&|jD]}|�|�}|r|SqdSr)�_line_typesr6)rrZlinetyper�r
r
r�_parses



zINIConfig._parsecCs�d}d}d}d}g}d}z
|j}Wnty8d}Yn0d}	d}
d}t|�D�]l}|	dkr�t|tj�r�|ddkr�|dd�}d|_|�|�}|	d7}	|s�t|tt	t
f�s�|jr�t||	|��nt
|�}|dur�|jr�|
dur�t|�}
|
�|	|�t
|�}t|t��rp|�rB|�r6|�|�g}|�r6|
j�|�d}|�|�n.|j�rh|
du�r\t|�}
|
�|	|�t
|�}t|t��r�|�r�|�|�g}d}t|�}|�|�|j�r�|�|j�}n|j}|tk�r�|j}
n
|j|}
||
j|<t|t
��r�|j�|�g}d}t|�}|j�|�d}d}|jtk�rD|jj�|�t}nR|j�rZ|�|j�}n|j}||jv�r�t||j|d�|j|<n|j|j�|�t|tt	f�rN|�|�t|t	�rNd}qN|j�|�|�r�|dd	k�r�|j�t	��|
�r�|
�dS)
NFz<???>rurTr�rr	)r�AttributeErrorr�rV�sixZ	text_typer�r�rFrJrr�rr�rr[rPrXr�rYr<rSr�rr~r�r�r�r}r�r|)rr�Zcur_sectionZ
cur_optionZcur_section_nameZcur_option_nameZ
pending_linesZpending_empty_lines�fnameZ	linecount�excrr�Zoptobjr
r
rr�s�


�





��


zINIConfig._readfp) rrrr�r�r~rr�r�r�r�r�r�rr{r�r�r�r�r�r�r�rZ__unicode__rJrFrr<rPr�r�r�r
r
r
rr��s8�


	�	r�)rDF)N)�__doc__r8Zconfigparserrrrr�rHr�objectrrr<rGrFrJrPrSr{ZConfigNamespacer|r�r�r�r�r
r
r
r�<module>s$+ :

F
d