Sindbad~EG File Manager
�
�=Ogl���� ddlmZddlmZddlZddlZddlZddlZddl Z ddl
Z
ddlZgd�Ze
ZdZdZGd�de��ZGd �d
e��ZGd�de��ZGd
�de��ZGd�de��ZGd�de��ZGd�de��ZGd�de��ZGd�de��ZGd�de��ZGd�de��Ze��ZGd�d��ZGd�d e��Z Gd!�d"e��Z!Gd#�d$e��Z"Gd%�d&e��Z#Gd'�d(e#��Z$Gd)�d*e$��Z%Gd+�d,e��Z&Gd-�d.e��Z'dS)/�)�MutableMapping)�ChainMapN)�NoSectionError�DuplicateOptionError�DuplicateSectionError�
NoOptionError�InterpolationError�InterpolationDepthError�InterpolationMissingOptionError�InterpolationSyntaxError�ParsingError�MissingSectionHeaderError�ConfigParser�SafeConfigParser�RawConfigParser�
Interpolation�BasicInterpolation�ExtendedInterpolation�LegacyInterpolation�SectionProxy�ConverterMapping�DEFAULTSECT�MAX_INTERPOLATION_DEPTH�DEFAULT�
c�"�eZdZ dd�Zd�ZeZdS)�Error�c�J�||_t�||��dS�N)�message� Exception�__init__)�self�msgs �%/usr/lib64/python3.11/configparser.pyr#zError.__init__�s%��������4��%�%�%�%�%�c��|jSr )r!�r$s r&�__repr__zError.__repr__�s
���|�r'N)r)�__name__�
__module__�__qualname__r#r*�__str__�r'r&rr�s;������1�&�&�&�&�����G�G�Gr'rc��eZdZ d�ZdS)rc�`�t�|d|����||_|f|_dS)NzNo section: )rr#�section�args�r$r2s r&r#zNoSectionError.__init__�s1��
���t�t���:�;�;�;�����K�� � � r'N�r+r,r-r#r/r'r&rr�s&������<� � � � � r'rc��eZdZ dd�ZdS)rNc���t|��dg}|�hdt|��g}|�(|�d�|����|�d��|�|��|}n|�dd��t
�|d�|����||_||_ ||_
|||f|_dS)N� already exists�While reading from � [line {0:2d}]z
: section rzSection r)�repr�append�format�extend�insertrr#�joinr2�source�linenor3)r$r2rArBr%r!s r&r#zDuplicateSectionError.__init__�s����G�}�}�/�0����,�d�6�l�l�;�G��!����/�6�6�v�>�>�?�?�?��N�N�<�(�(�(��N�N�3�����C�C��J�J�q�*�%�%�%�
���t�R�W�W�S�\�\�*�*�*�����������f�f�-�� � � r'�NNr5r/r'r&rr�s-�������.�.�.�.�.�.r'rc��eZdZ dd�ZdS)rNc���t|��dt|��dg}|�hdt|��g}|�(|�d�|����|�d��|�|��|}n|�dd��t
�|d�|����||_||_ ||_
||_||||f|_dS) Nz in section r8r9r:z : option rzOption r)
r;r<r=r>r?rr#r@r2�optionrArBr3)r$r2rFrArBr%r!s r&r#zDuplicateOptionError.__init__�s����F�|�|�^�T�'�]�]� �"����,�d�6�l�l�;�G��!����/�6�6�v�>�>�?�?�?��N�N�;�'�'�'��N�N�3�����C�C��J�J�q�)�$�$�$�
���t�R�W�W�S�\�\�*�*�*��������������f�f�f�5�� � � r'rCr5r/r'r&rr�s-�������6�6�6�6�6�6r'rc��eZdZ d�ZdS)rc�v�t�|d|�d|����||_||_||f|_dS)Nz
No option z
in section: �rr#rFr2r3)r$rFr2s r&r#zNoOptionError.__init__�sJ��
���t�t������)� *� *� *��������W�%�� � � r'Nr5r/r'r&rr�s&������+�&�&�&�&�&r'rc��eZdZ d�ZdS)r c�l�t�||��||_||_|||f|_dSr rI)r$rFr2r%s r&r#zInterpolationError.__init__s6��
���t�S�!�!�!��������W�c�*�� � � r'Nr5r/r'r&r r �s&������:�+�+�+�+�+r'r c��eZdZ d�ZdS)rc��d�||||��}t�||||��||_||||f|_dS)Nz�Bad value substitution: option {!r} in section {!r} contains an interpolation key {!r} which is not a valid option name. Raw value: {!r})r=r r#� referencer3)r$rFr2�rawvalrNr%s r&r#z(InterpolationMissingOptionError.__init__sV��!�!'�����F�!K�!K� � �#�#�D�&�'�3�?�?�?�"����W�f�i�8�� � � r'Nr5r/r'r&rr s&������K�9�9�9�9�9r'rc��eZdZdS)rN)r+r,r-r/r'r&rrs�������r'rc��eZdZ d�ZdS)r
c��d�||t|��}t�||||��|||f|_dS)Nz�Recursion limit exceeded in value substitution: option {!r} in section {!r} contains an interpolation key which cannot be substituted in {} steps. Raw value: {!r})r=rr r#r3)r$rFr2rOr%s r&r#z InterpolationDepthError.__init__ sU����&���*A��!�!� �
�#�#�D�&�'�3�?�?�?��W�f�-�� � � r'Nr5r/r'r&r
r
s&������:�.�.�.�.�.r'r
c�T�eZdZ dd�Zed���Zejd���Zd�ZdS)r
Nc���|r|rtd���|s|std���|r|}t�|d|z��||_g|_|f|_dS)Nz:Cannot specify both `filename' and `source'. Use `source'.z%Required argument `source' not given.z"Source contains parsing errors: %r)�
ValueErrorrr#rA�errorsr3)r$rA�filenames r&r#zParsingError.__init__-s���� �� ��-�.�.�
.�� �&� ��D�E�E�E�
� ��F�
���t�A�F�J�K�K�K��������J�� � � r'c�J� tjdtd���|jS�NzNThe 'filename' attribute will be removed in Python 3.12. Use 'source' instead.���
stacklevel��warnings�warn�DeprecationWarningrAr)s r&rWzParsingError.filename<s2��'��
�
$��1�
�
�
�
�
�{�r'c�N� tjdtd���||_dSrYr]�r$�values r&rWzParsingError.filenameFs5��(��
�
$��1�
�
�
�
�
����r'c�h�|j�||f��|xjd||fzz
c_dS)Nz
[line %2d]: %s)rVr<r!)r$rB�lines r&r<zParsingError.appendPs:������F�D�>�*�*�*����,���~�=�=����r'rC)r+r,r-r#�propertyrW�setterr<r/r'r&r
r
*sr������H�
�
�
�
�����X���_����_��>�>�>�>�>r'r
c��eZdZ d�ZdS)rc��t�|d|||fz��||_||_||_|||f|_dS)Nz7File contains no section headers.
file: %r, line: %d
%r)rr#rArBrer3)r$rWrBres r&r#z"MissingSectionHeaderError.__init__XsV��
����G�
�v�t�$�
%� &� &� &��������� ��v�t�,�� � � r'Nr5r/r'r&rrUs&������J�-�-�-�-�-r'rc�(�eZdZ d�Zd�Zd�Zd�ZdS)rc��|Sr r/)r$�parserr2rFrc�defaultss r&�
before_getzInterpolation.before_getl����r'c��|Sr r/�r$rlr2rFrcs r&�
before_setzInterpolation.before_setoror'c��|Sr r/rqs r&�before_readzInterpolation.before_readrror'c��|Sr r/rqs r&�before_writezInterpolation.before_writeuror'N)r+r,r-rnrrrtrvr/r'r&rrisS������L��������������r'rc�B�eZdZ ejd��Zd�Zd�Zd�ZdS)rz
%\(([^)]+)\)sc �f�g}|�||||||d��d�|��S�N�r��_interpolate_somer@�r$rlr2rFrcrm�Ls r&rnzBasicInterpolation.before_get��7�������v�v�q�%��(�A�N�N�N��w�w�q�z�z�r'c��|�dd��}|j�d|��}d|vr'td||�d��fz���|S)Nz%%r�%�1invalid interpolation syntax in %r at position %d��replace�_KEYCRE�subrU�find�r$rlr2rFrc� tmp_values r&rrzBasicInterpolation.before_set��p���M�M�$��+�+� ��L�$�$�R��3�3� ��)����+�.3�Y�^�^�C�5H�5H�-I�J�K�K�
K��r'c
��|�||d|���}|tkrt|||���|�r�|�d��} | dkr|�|��dS| dkr'|�|d| ���|| d�}|dd�}
|
dkr |�d��|dd�}n�|
dkr�|j�|��}|�t||d|z���|�|� d����}||�
��d�} ||}
n!#t$rt||||��d�wxYwd|
vr|�
||||
|||dz��n*|�|
��nt||d |�����|���dSdS)
NT��raw�fallbackr�rrzrZ�(�'bad interpolation variable reference %rz+'%' must be followed by '%' or '(', found: )�getrr
r�r<r��matchr�optionxform�group�end�KeyErrorrr|)r$rlrF�accum�restr2�map�depthrO�p�c�m�var�vs r&r|z$BasicInterpolation._interpolate_some�s/�����G�V����E�E���*�*�*�)�&�'�6�B�B�B��" +�� � �#���A��1�u�u����T�"�"�"����1�u�u����T�"�1�"�X�&�&�&��A�B�B�x���Q�q�S� �A��C�x�x����S�!�!�!��A�B�B�x����c����L�&�&�t�,�,���9�2�6�7�A�D�H�J�J�J��(�(�������4�4���A�E�E�G�G�H�H�~��@��C��A�A���@�@�@�9�����6�6�;?�@�@�����!�8�8��*�*�6�6�5�!�+2�C����D�D�D�D��L�L��O�O�O�O�.��G�G�#'�4�*�+�+�+�?�" +�" +�" +�" +�" +s�E�E*N� r+r,r-�re�compiler�rnrrr|r/r'r&rrys[������I��b�j�)�*�*�G����
���'+�'+�'+�'+�'+r'rc�B�eZdZ ejd��Zd�Zd�Zd�ZdS)rz
\$\{([^}]+)\}c �f�g}|�||||||d��d�|��Sryr{r}s r&rnz ExtendedInterpolation.before_get�rr'c��|�dd��}|j�d|��}d|vr'td||�d��fz���|S)Nz$$r�$r�r�r�s r&rrz ExtendedInterpolation.before_set�r�r'c
�6�|�||d|���}|tkrt|||���|�r`|�d��} | dkr|�|��dS| dkr'|�|d| ���|| d�}|dd�}
|
dkr!|�d��|dd�}�n�|
dk�r�|j�|��}|�t||d|z���|�d��� d ��}||�
��d�}|}
|} t|��dkr$|�|d��}||}nct|��dkr<|d}
|�|d��}|�|
|d�
��}nt||d|�����nA#tttf$r't!|||d �|����d�wxYwd|vrA|�|||||
t'|�|
d�
����|dz��n*|�|��nt||d|�����|��^dSdS)
NTr�r�rrzrZ�{r��:)r�zMore than one ':' found: z+'$' must be followed by '$' or '{', found: )r�rr
r�r<r�r�rr��splitr��lenr�r�rrrr@r|�dict�items)r$rlrFr�r�r2r�r�rOr�r�r��path�sect�optr�s r&r|z'ExtendedInterpolation._interpolate_some�s������G�V����E�E���*�*�*�)�&�'�6�B�B�B��/ +�� � �#���A��1�u�u����T�"�"�"����1�u�u����T�"�1�"�X�&�&�&��A�B�B�x���Q�q�S� �A��C�x�x����S�!�!�!��A�B�B�x����c����L�&�&�t�,�,���9�2�6�7�A�D�H�J�J�J��w�w�q�z�z�'�'��,�,���A�E�E�G�G�H�H�~������K��4�y�y�A�~�~�$�0�0��a��9�9����H����T���a���#�A�w��$�0�0��a��9�9��"�J�J�t�S�d�J�;�;���6�"�G�G�=A�T�C�E�E�E���!�.�-�@�K�K�K�9�������$���A�A�FJ�K�K�����!�8�8��*�*�6�3��q�$�+/����T�t��0L�0L�+M�+M�+0�1�9�6�6�6�6��L�L��O�O�O�O�.��G�G�#'�4�*�+�+�+�Y�/ +�/ +�/ +�/ +�/ +s
� BG$�$>H"Nr�r/r'r&rr�sZ������>��b�j�)�*�*�G����
���4+�4+�4+�4+�4+r'rc�b��eZdZ ejd��Z�fd�Zd�Zd�Ze d���Z
�xZS)rz%\(([^)]*)\)s|.c�r��t��j|i|��tjdtd���dS)Nz�LegacyInterpolation has been deprecated since Python 3.2 and will be removed from the configparser module in Python 3.13. Use BasicInterpolation or ExtendedInterpolation instead.rZr[��superr#r^r_r`�r$r3�kwargs� __class__s �r&r#zLegacyInterpolation.__init__sO��������$�)�&�)�)�)��
�
G�
�1�
�
�
�
�
�
r'c�@�|}t}|r{|dz}|rqd|vrmtj|j|���}|j�||��} ||z}n1#t$r#} t|||| jd��d�d} ~ wwxYwn|�{|rd|vrt|||���|S)Nrzz%()rlr)
r� functools�partial�_interpolation_replacer�r�r�rr3r
)
r$rlr2rFrc�varsrOr�r��es
r&rnzLegacyInterpolation.before_gets�����'��� ��Q�J�E��
�����#�+�D�,G�39�;�;�;����(�(��%�8�8��F�!�D�L�E�E���F�F�F�9��������<�<�AE�F�����F������ �� C�T�U�]�]�)�&�'�6�B�B�B��s�A�
B�A<�<Bc��|Sr r/rqs r&rrzLegacyInterpolation.before_set.ror'c��|�d��}|�|���Sd|�|��zS)Nrzz%%(%s)s)r�r�)r�rl�ss r&r�z*LegacyInterpolation._interpolation_replace1s=���K�K��N�N���9��;�;�=�=� ��v�1�1�!�4�4�4�4r')r+r,r-r�r�r�r#rnrr�staticmethodr��
__classcell__�r�s@r&rrs��������@��b�j�+�,�,�G�
�
�
�
�
����(����5�5��\�5�5�5�5�5r'rc
���eZdZ dZdZdZe��Zej eej
��Zej e�d���ej
��Z
ej e�d���ej
��Zej d��Zddddddddd �Zd
edfddd
ddeeed
�d�Zd�Zd�Zd�Zd�Zd�Zd;d�Zd;d�Zd<d�Zd=d�Zd;d�Zdd
ed�d�Zd�Z dd
ed�d�Z!dd
ed�d�Z"dd
ed�d �Z#dd
ed�d!�Z$edd
f�fd"� Z%d#�Z&d$�Z'd%�Z(d;d&�Z)d>d'�Z*d(�Z+d)�Z,d*�Z-d+�Z.d,�Z/d-�Z0d.�Z1d/�Z2d0�Z3d1�Z4d2�Z5d3�Z6d4�Z7d5�Z8d6�Z9d7d7d7d8�d9�Z:e;d:���Z<�xZ=S)?rz�
\[ # [
(?P<header>.+) # very permissive!
\] # ]
a�
(?P<option>.*?) # very permissive!
\s*(?P<vi>{delim})\s* # any number of space/tab,
# followed by any of the
# allowed delimiters,
# followed by any space/tab
(?P<value>.*)$ # everything up to eol
a�
(?P<option>.*?) # very permissive!
\s*(?: # any number of space/tab,
(?P<vi>{delim})\s* # optionally followed by
# any of the allowed
# delimiters, followed by any
# space/tab
(?P<value>.*))?$ # everything up to eol
z=|:��delimz\STF)�1�yes�true�on�0�no�false�offN��=r�)�#�;)�
delimiters�comment_prefixes�inline_comment_prefixes�strict�empty_lines_in_values�default_section�
interpolation�
convertersc��||_|���|_|���|_t|��|_|���|_t
|| ��|j| <t|��|_|dkr|r|j n|j
|_n�d�d�|D����}|r>tj|j�|���tj��|_n=tj|j�|���tj��|_t|pd��|_t|pd��|_||_||_||_| |_|
|_|jt4ur|j|_|j�t9��|_t;|jt8��s$t=dt?|j�������|t4ur|j� |��|r|�!|��dSdS)Nr��|c3�>K�|]}tj|��V��dSr )r��escape)�.0�ds r&� <genexpr>z+RawConfigParser.__init__.<locals>.<genexpr>ts*����:�:�!���1���:�:�:�:�:�:r'r�r/zSinterpolation= must be None or an instance of Interpolation; got an object of type )"�_dict� _sections� _defaultsr�_converters�_proxiesr�tuple�_delimiters� OPTCRE_NV�OPTCRE�_optcrer@r�r��_OPT_NV_TMPLr=�VERBOSE� _OPT_TMPL�_comment_prefixes�_inline_comment_prefixes�_strict�_allow_no_value�_empty_lines_in_valuesr��_interpolation�_UNSET�_DEFAULT_INTERPOLATIONr�
isinstance� TypeError�type�update�_read_defaults)
r$rm� dict_type�allow_no_valuer�r�r�r�r�r�r�r�r�s
r&r#zRawConfigParser.__init__cs.����
���������������+�D�1�1����
�
����
�)5�d�O�)L�)L��
�o�&� ��,�,�����#�#�-;�L�4�>�>���D�L�L����:�:�z�:�:�:�:�:�A��
6�!�z�$�*;�*B�*B��*B�*K�*K�*,�*� 6� 6���� "�z�$�.�*?�*?�a�*?�*H�*H�*,�*� 6� 6���!&�'7�'=�2�!>�!>���(-�.E�.K��(L�(L��%����-���&;��#�,���+�����&�(�(�"&�"=�D����&�"/�/�/�D���$�-�}�=�=� ��F�*.�t�/B�*C�*C�F�F���
��V�#�#���#�#�J�/�/�/�� *�����)�)�)�)�)� *� *r'c��|jSr )r�r)s r&rmzRawConfigParser.defaults�s
���~�r'c�P� t|j�����Sr )�listr��keysr)s r&�sectionszRawConfigParser.sections�s!��A��D�N�'�'�)�)�*�*�*r'c��� ||jkrtd|z���||jvrt|���|���|j|<t||��|j|<dS)NzInvalid section name: %r)r�rUr�rr�rr�r4s r&�add_sectionzRawConfigParser.add_section�sv�� �
�d�*�*�*��7�'�A�B�B�B��d�n�$�$�'��0�0�0�"&�*�*�,�,���w��!-�d�G�!<�!<��
�g���r'c�� ||jvSr )r�r4s r&�has_sectionzRawConfigParser.has_section�s�� ��$�.�(�(r'c�� |j|���}n#t$rt|��d�wxYw|�|j��t
|�����Sr )r��copyr�rr�r�rr)r$r2�optss r&�optionszRawConfigParser.options�sy��G� 4��>�'�*�/�/�1�1�D�D��� 4� 4� 4� ��)�)�t�3� 4�������D�N�#�#�#��D�I�I�K�K� � � s�#�>c�� t|tttjf��r|g}tj|��}g}|D]�} t||���5}|�||��ddd��n#1swxYwYn#t$rY�OwxYwt|tj��rtj
|��}|�|����|S)N)�encoding)r��str�bytes�os�PathLike�io�
text_encoding�open�_read�OSError�fspathr<)r$� filenamesr�read_okrW�fps r&�readzRawConfigParser.read�s+��
��i�#�u�b�k�!:�;�;� $�"��I��#�H�-�-����!� %� %�H�
��(�X�6�6�6�-�"��J�J�r�8�,�,�,�-�-�-�-�-�-�-�-�-�-�-����-�-�-�-����
�
�
���
�����(�B�K�0�0�
/��9�X�.�.���N�N�8�$�$�$�$��s6�B�A;�/B�;A? �?B�A? �B�
B�Bc�n� |� |j}n#t$rd}YnwxYw|�||��dS)Nz<???>)�name�AttributeErrorr)r$�frAs r&� read_filezRawConfigParser.read_file�sZ�� ��>�
!������!�
!�
!�
!� ����
!�����
�
�1�f�����s�
���<string>c�\� tj|��}|�||��dSr )r�StringIOr)r$�stringrA�sfiles r&�read_stringzRawConfigParser.read_string�s.��5���F�#�#�����u�f�%�%�%�%�%r'�<dict>c�F� t��}|���D]�\}}t|��} |�|��n##tt
f$r|jr||vr�YnwxYw|�|��|���D]�\}}|�t|����}|�t|��}|jr||f|vrt|||���|�||f��|�|||������dSr )
�setr�r
rrrUr��addr�r)r$�
dictionaryrA�elements_addedr2r�keyrcs r&� read_dictzRawConfigParser.read_dict�sW�� �����'�-�-�/�/� .� .�M�G�T��'�l�l�G�
�� � ��)�)�)�)��)�:�6�
�
�
��<��G�~�$=�$=����
����
���w�'�'�'�"�j�j�l�l�
.�
.�
��U��&�&�s�3�x�x�0�0���$���J�J�E��<�E�W�c�N�n�$D�$D�.�w��V�D�D�D��"�"�G�S�>�2�2�2�����#�u�-�-�-�-�
.� .� .s�A�A/�.A/c�n� tjdtd���|�||���dS)NzMThis method will be removed in Python 3.12. Use 'parser.read_file()' instead.rZr[)rA)r^r_r`r)r$rrWs r&�readfpzRawConfigParser.readfpsF��0��
�
0��1�
�
�
�
�
���r�(��+�+�+�+�+r'�r�r�r�c�H� |�||��}n#t$r|tur�|cYSwxYw|�|��} ||}n+#t$r|turt||���|cYSwxYw|s|�|S|j�|||||��Sr )�
_unify_valuesrr�r�r�rr�rn)r$r2rFr�r�r�r�rcs r&r�zRawConfigParser.get
s���
� ��"�"�7�D�1�1�A�A��� � � ��6�!�!������ ����
�!�!�&�)�)�� ��f�I�E�E��� � � ��6�!�!�#�F�G�4�4�4����� ����� 5�%�-��L��&�1�1�$����23�5�5�
5s��3�3�A�%A=�<A=c�2�||j||fi|����Sr )r�)r$r2�convrFr�s r&�_getzRawConfigParser._get2s(���t�H�D�H�W�f�7�7��7�7�8�8�8r'c�p� |j|||f||d�|��S#ttf$r|tur�|cYSwxYw)N)r�r�)r5rrr�)r$r2rFr4r�r�r�r�s r&� _get_convzRawConfigParser._get_conv5sp�� ��4�9�W�d�F�'��$�'�'�%�'�'�
'���
�.� � � ��6�!�!���O�O�O� ���s��5�5c�4�|j||tf|||d�|��S�Nr0)r7�int�r$r2rFr�r�r�r�s r&�getintzRawConfigParser.getint@s7���t�~�g�v�s�;��$�'/�;�;�39�;�;� ;r'c�4�|j||tf|||d�|��Sr9)r7�floatr;s r&�getfloatzRawConfigParser.getfloatEs7���t�~�g�v�u�;�#�D�'/�;�;�39�;�;� ;r'c�4�|j|||jf|||d�|��Sr9)r7�_convert_to_booleanr;s r&�
getbooleanzRawConfigParser.getbooleanJs@���t�~�g�v�t�/G�O�"%�D�8�O�O�GM�O�O� Or'c������� �tur t�����S�j���� ���j���n*#t$r��jkrt����YnwxYwt������}|r2|���D]\}}|���|��<����fd��|r�fd���fd�|D��S)Nc�L���j���|�|���Sr )r�rn)rFr�r2r$s ���r&�<lambda>z'RawConfigParser.items.<locals>.<lambda>gs)���d�&9�&D�&D�T��V�Q�v�Y��'+�'+�r'c����|Sr r/)rFr�s �r&rEz'RawConfigParser.items.<locals>.<lambda>js���!�F�)�r'c�*��g|]}|�|��f��Sr/r/)r�rF�value_getters �r&�
<listcomp>z)RawConfigParser.items.<locals>.<listcomp>ks(���G�G�G�6����f�-�-�.�G�G�Gr')
r�r�r�r�rr�r�r�r�rrrr�)
r$r2r�r�� orig_keysr,rcr�rHr�s
`` @@�r&r�zRawConfigParser.itemsOsA������� ��f����7�7�=�=�?�?�"��N���!�!�� .�
�H�H�T�^�G�,�-�-�-�-��� .� .� .��$�.�.�.�$�W�-�-�-�/�.� .����������N�N� �� 1�"�j�j�l�l�
1�
1�
��U�+0��$�"�"�3�'�'�(�(�+�+�+�+�+�+��� 4�3�3�3�3�L�G�G�G�G�Y�G�G�G�Gs�
A+�+$B�Bc�`� |���D]}||}||=||fcSt�r )rr��r$r,rcs r&�popitemzRawConfigParser.popitemmsE�� ��=�=�?�?� � �C���I�E��S� ���:�����r'c�*�|���Sr )�lower)r$� optionstrs r&r�zRawConfigParser.optionxformzs����� � � r'c��� |r||jkr|�|��}||jvS||jvrdS|�|��}||j|vp||jvS)NF)r�r�r�r�)r$r2rFs r&�
has_optionzRawConfigParser.has_option}s��� N�� 1�'�T�%9�9�9��%�%�f�-�-�F��T�^�+�+�
�D�N�
*�
*��5��%�%�f�-�-�F��d�n�W�5�5�0����/�
1r'c�� |r|j�||||��}|r||jkr|j}n- |j|}n#t
$rt
|��d�wxYw|||�|��<dSr )r�rrr�r�r�r�rr�)r$r2rFrc�sectdicts r&r(zRawConfigParser.set�s����� :��'�2�2�4��&�38�:�:�E�� 8�'�T�%9�9�9��~�H�H�
8��>�'�2�����
8�
8�
8�$�W�-�-�4�7�
8����-2���!�!�&�)�)�*�*�*s�
A�A c�\� |r!d�|jd��}n
|jd}|jr4|�||j|j���|��|jD]7}|�|||j|���|���8dS)Nz {} r)r=r�r��_write_sectionr�r�r�)r$r�space_around_delimitersr�r2s r&�writezRawConfigParser.write�s��� �#� $��
�
�d�.�q�1�2�2�A�A�� ��#�A��>� ?�����D�$8�$(�N�$8�$8�$:�$:�A�
?�
?�
?��~� D� D�G�����G� $��w� 7� =� =� ?� ?��
D�
D�
D�
D� D� Dr'c�� |�d�|����|D]}\}}|j�||||��}|�|js'|t|���dd��z}nd}|�d�||�����~|�d��dS)Nz[{}]
�
z
rz{}{}
)rXr=r�rvr�r
r�)r$r�section_name�
section_items� delimiterr,rcs r&rVzRawConfigParser._write_section�s���;�
�������.�.�/�/�/�'� 2� 2�J�C���'�4�4�T�<��5:�<�<�E�� ��(<� �!�C��J�J�$6�$6�t�V�$D�$D�D������H�H�X�_�_�S�%�0�0�1�1�1�1�
��������r'c��� |r||jkr|j}n- |j|}n#t$rt |��d�wxYw|�|��}||v}|r||=|Sr )r�r�r�r�rr�)r$r2rFrT�existeds r&�
remove_optionzRawConfigParser.remove_option�s����� 8�'�T�%9�9�9��~�H�H�
8��>�'�2�����
8�
8�
8�$�W�-�-�4�7�
8�����!�!�&�)�)���H�$��� !��� ��s �
&�Ac�>� ||jv}|r|j|=|j|=|Sr )r�r�)r$r2r_s r&�remove_sectionzRawConfigParser.remove_section�s2��$��T�^�+��� '���w�'��
�g�&��r'c�z�||jkr$|�|��st|���|j|Sr )r�rr�r��r$r,s r&�__getitem__zRawConfigParser.__getitem__�s<���$�&�&�&�t�/?�/?��/D�/D�&��3�-�-���}�S�!�!r'c���||vr|||urdS||jkr|j���n(||jvr|j|���|�||i��dSr )r�r��clearr�r-rLs r&�__setitem__zRawConfigParser.__setitem__�s����$�;�;�4��9��-�-��F��$�&�&�&��N� � �"�"�"�"�
�D�N�
"�
"��N�3��%�%�'�'�'�����U�|�$�$�$�$�$r'c��||jkrtd���|�|��st|���|�|��dS)Nz"Cannot remove the default section.)r�rUrr�rbrds r&�__delitem__zRawConfigParser.__delitem__�s[���$�&�&�&��A�B�B�B�����$�$� ��3�-�-�����C� � � � � r'c�B�||jkp|�|��Sr )r�rrds r&�__contains__zRawConfigParser.__contains__�s#���d�*�*�C�d�.>�.>�s�.C�.C�Cr'c�0�t|j��dzS)Nrz)r�r�r)s r&�__len__zRawConfigParser.__len__�s���4�>�"�"�Q�&�&r'c�f�tj|jf|j�����Sr )� itertools�chainr�r�rr)s r&�__iter__zRawConfigParser.__iter__�s(����� 4�6���8K�8K�8M�8M�N�N�Nr'c�� t��}d}d}d}d}d}d} t|d���D�]�\}}
tj}d�|jD��}|tjkr�|r�i}
|���D]c\}}|
�||dz��}|dkr�%||
|<|dks#|dkr-|
|dz
���rt||��}�d|
}|tjkr|��|j D]-}|
�
���|��rd}n�.|tjkrd}|
d|��
��}|s?|jr*|�'|�%|r#||�||�
d��ntj}��g|j�|
��}|r|���nd}|�%|r#||kr||�
|�����|}|j�|��}|r�|�d��}||jvr?|jr||vrt-|||���|j|}|�|��n^||jkr|j}nK|���}||j|<t7||��|j|<|�|��d}���|�t;|||
���|j�|��}|r�|�dd d
��\}}}|s|�| |||
��} |� |�!����}|jr||f|vrtE||||���|�||f��|�|�
��}|g||<��|d||<���|�| |||
��} ��� |�#��n#|�#��wxYw| r| �dS)Nrrz)�startc��i|]}|d��S)���r/)r�r�s r&�
<dictcomp>z)RawConfigParser._read.<locals>.<dictcomp>s��"P�"P�"P�Q�1�b�"P�"P�"Pr'rvr�headerrF�virc)$r(� enumerate�sys�maxsizer�r�r��isspace�minr��strip�
startswithr�r<�NONSPACECRE�searchrt�SECTCREr�r�r�r�rr)r�r�r�rr�rr��
_handle_errorr��rstripr�_join_multiline_values)r$r�fpnamer+�cursect�sectname�optnamerB�indent_levelr�re�
comment_start�inline_prefixes�
next_prefixes�prefix�indexrc�first_nonspace�cur_indent_level�mory�optvals r&rzRawConfigParser._read�s��� � ����������������_ *� )�"�A� 6� 6� 6�\
L�\
L���� #��
�"P�"P�$�2O�"P�"P�"P��#�s�{�2�2��2�$&�M�)8�)>�)>�)@�)@�F�F�
��� $� � �&�%��'� :� :�� �B�;�;�$�05�
�f�-� �A�:�:�%�!�)�)��U�1�W�
�8M�8M�8O�8O�)�,/�
�u�,E�,E�M��&3�O�$�s�{�2�2��2�#�4���F��z�z�|�|�.�.�v�6�6��()�
����!�C�K�/�/�$(�M��^�m�^�,�2�2�4�4�����2�
3�*�1�#�/�#�0�#�G�,�8�#�G�,�3�3�B�7�7�7��(+�{���!%�!1�!8�!8��!>�!>��=K�#R�>�#7�#7�#9�#9�#9�QR� ��'�G�'�$�|�3�3��G�$�+�+�E�2�2�2�2�$4�L���+�+�E�2�2�B��.L�#%�8�8�H�#5�#5��#�t�~�5�5�#�|�D��N�0J�0J�&;�H�f�<B�'D�'D�!D�&*�n�X�&>�G�*�.�.�x�8�8�8�8�%��)=�=�=�&*�n�G�G�&*�j�j�l�l�G�7>�D�N�8�4�6B�4��6R�6R�D�M�(�3�*�.�.�x�8�8�8�"&��� ��7����M�M�M�"�\�/�/��6�6���L�24�(�(�8�T�7�2S�2S�/�G�R��#*�P�$(�$6�$6�q�&�&�$�$O�$O��&*�&6�&6�w�~�~�7G�7G�&H�&H�G� $��K�!)�7� 3�~� E� E�&:�8�W�;A�6�'K�'K�!K�*�.�.��'�/B�C�C�C� &�1�)/������4:�8��� 0� 0�48��� 0� 0�!%� 2� 2�1�f�f�d� K� K�A�A�y\
L�|
�'�'�)�)�)�)��D�'�'�)�)�)�)����� ��G� � s�N.O!�!O7c�x�|j|jf}tj|f|j�����}|D]{\}}|���D]a\}}t
|t��r'd�|��� ��}|j
�||||��||<�b�|dS)NrZ)r�r�rprqr�r�r�rr@r�r�rt)r$rm�all_sectionsr2r
r�vals r&r�z&RawConfigParser._join_multiline_valuesps����'���7�� ���{�'+�~�';�';�'=�'=�?�?�� ,� K� K��G�W�$�]�]�_�_�
K�
K� ��c��c�4�(�(�2��)�)�C�.�.�/�/�1�1�C� $� 3� ?� ?��@G�@D�c�!K�!K���
�
�
K� K� Kr'c�v� |���D]"\}}||j|�|��<�#dSr )r�r�r�)r$rmr,rcs r&r�zRawConfigParser._read_defaults|sK�� +�"�.�.�*�*� :� :�J�C��49�D�N�4�+�+�C�0�0�1�1� :� :r'c�n�|st|��}|�|t|����|Sr )r
r<r;)r$�excr�rBres r&r�zRawConfigParser._handle_error�s6��� '��v�&�&�C��
�
�6�4��:�:�&�&�&��
r'c�6� i} |j|}n+#t$r||jkrt|��d�YnwxYwi}|rC|���D].\}}|�t|��}|||�|��<�/t|||j��Sr ) r�r�r�rr�r
r�� _ChainMapr�)r$r2r��sectiondict�vardictr,rcs r&r2zRawConfigParser._unify_values�s��� ��� 8��.��1�K�K��� 8� 8� 8��$�.�.�.�$�W�-�-�4�7�/�.� 8������� 7�"�j�j�l�l�
7�
7�
��U��$���J�J�E�16���(�(��-�-�.�.���+�t�~�>�>�>s�
�%;�;c�� |���|jvrtd|z���|j|���S)NzNot a boolean: %s)rO�BOOLEAN_STATESrUrbs r&rAz#RawConfigParser._convert_to_boolean�sG�� ��;�;�=�=�� 3�3�3��0�5�8�9�9�9��"�5�;�;�=�=�1�1r'r)r2rFrcc�� t|t��std���t|t��std���|jr|r&t|t��std���dSdS)Nzsection names must be stringszoption keys must be stringszoption values must be strings)r�r
r�r�)r$r2rFrcs r&�_validate_value_typesz%RawConfigParser._validate_value_types�s��� ��'�3�'�'� =��;�<�<�<��&�#�&�&� ;��9�:�:�:��#� A�u� A��e�S�)�)�
A�� ?�@�@�@�
A�
A� A� Ar'c��|jSr )r�r)s r&r�zRawConfigParser.converters�s����r'r )r )r&)T)>r+r,r-�
_SECT_TMPLr�r�rr�r�r�r�r�r=r�r�r�r��
_default_dictrr�r#rmrrrr
rrr%r-r/r�r5r7r<r?rBr�rMr�rRr(rXrVr`rbrerhrjrlrnrrrr�r�r�r2rAr�rfr�r�r�s@r&rr:s?�������6��J�
�I��L�+�]�_�_���b�j��R�Z�0�0�G�
�R�Z� �(�(�u�(�5�5�r�z�
B�
B�F���
�<�.�.�U�.�;�;�R�Z�H�H�I��"�*�U�#�#�K���d�$� ���e�M�M�N�!%�
� %�+*�5?�",�d��D�!,�%�&�+*�+*�+*�+*�+*�Z���+�+�+�
=�=�=�)�)�)�!�!�!�����6
�
�
�
�&�&�&�&�
.�.�.�.�>,�,�,�,�+0�d�V�#5�#5�#5�#5�#5�J9�9�9�7<�$�!������.3���;�;�;�;�;�
05�4� �;�;�;�;�;�
27�T�"�O�O�O�O�O�
#��D�H�H�H�H�H�H�<���!�!�!�1�1�1�3�3�3�3�D�D�D�D�(���
�
�
����"�"�"�
%�%�%�!�!�!�D�D�D�'�'�'�O�O�O�z�z�z�x
K�
K�
K�:�:�:����?�?�?�(2�2�2�02�"�B�A�A�A�A�A�*� � ��X� � � � � r'rc�F��eZdZ e��Zd�fd� Z�fd�Zd�Z�xZS)rNc�~�� |�||���t���|||��dS�N)rFrc)r�r�r()r$r2rFrcr�s �r&r(zConfigParser.set�sA��� .��"�"�&��"�>�>�>�
�����G�V�U�+�+�+�+�+r'c�x�� |�|���t���|��dS)N)r2)r�r�r)r$r2r�s �r&rzConfigParser.add_section�s?��� �
�"�"�7�"�3�3�3�
�����G�$�$�$�$�$r'c�� |j}t��|_|�|j|i��||_dS#||_wxYwr )r�rr-r�)r$rm�hold_interpolations r&r�zConfigParser._read_defaults�s^�� �
5�!%�!4��"/�/�/�D���N�N�D�0�(�;�<�<�<�"4�D�����"4�D��4�4�4�4s�6A� Ar ) r+r,r-rr�r(rr�r�r�s@r&rr�sw�������2�/�/�1�1��,�,�,�,�,�,�%�%�%�%�%�5�5�5�5�5�5�5r'rc� ��eZdZ �fd�Z�xZS)rc�r��t��j|i|��tjdtd���dS)Nz�The SafeConfigParser class has been renamed to ConfigParser in Python 3.2. This alias will be removed in Python 3.12. Use ConfigParser directly instead.rZr[r�r�s �r&r#zSafeConfigParser.__init__�sN��������$�)�&�)�)�)��
�
2�
�1�
�
�
�
�
�
r')r+r,r-r#r�r�s@r&rr�s;�������B�
�
�
�
�
�
�
�
�
r'rc��eZdZ d�Zd�Zd�Zd�Zd�Zd�Zd�Z d�Z
d �Zed
���Z
ed���Zdd
ddd�d�ZdS)rc�� ||_||_|jD]A}d|z}tj|jt
||�����}t|||���BdS)Nr���_impl)�_parser�_namer�r�r�r��getattr�setattr)r$rlrr4r,�getters r&r#zSectionProxy.__init__�sn��N������
��%� '� '�D��$�,�C��&�t�x�w�v�s�7K�7K�L�L�L�F��D�#�v�&�&�&�&� '� 'r'c�6�d�|j��S)Nz
<Section: {}>)r=r�r)s r&r*zSectionProxy.__repr__�s���%�%�d�j�1�1�1r'c��|j�|j|��st|���|j�|j|��Sr )r�rRr�r�r�rds r&rezSectionProxy.__getitem__�sD���|�&�&�t�z�3�7�7� ��3�-�-���|����
�C�0�0�0r'c�|�|j�||���|j�|j||��Sr�)r�r�r(r�rLs r&rhzSectionProxy.__setitem__�s9����*�*�#�U�*�C�C�C��|����
�C��7�7�7r'c��|j�|j|��r |j�|j|��st |���dSr )r�rRr�r`r�rds r&rjzSectionProxy.__delitem__sP����'�'��
�C�8�8� ���*�*�4�:�s�;�;� ��3�-�-�� � r'c�B�|j�|j|��Sr )r�rRr�rds r&rlzSectionProxy.__contains__s���|�&�&�t�z�3�7�7�7r'c�D�t|�����Sr )r��_optionsr)s r&rnzSectionProxy.__len__
s���4�=�=�?�?�#�#�#r'c�N�|������Sr )r�rrr)s r&rrzSectionProxy.__iter__
s���}�}���'�'�)�)�)r'c��|j|jjkr|j�|j��S|j���Sr )r�r�r�r
rmr)s r&r�zSectionProxy._optionss@���:���5�5�5��<�'�'��
�3�3�3��<�(�(�*�*�*r'c��|jSr )r�r)s r&rlzSectionProxy.parsers���|�r'c��|jSr )r�r)s r&rzSectionProxy.names���z�r'NF)r�r�r�c�F� |s|jj}||j|f|||d�|��Sr9)r�r�r�)r$rFr�r�r�r�r�s r&r�zSectionProxy.get sN�� �� %��L�$�E��u�T�Z��2�S�t�&�2�2�*0�2�2� 2r'r )r+r,r-r#r*rerhrjrlrnrrr�rfrlrr�r/r'r&rr�s�������5�'�'�'�2�2�2�1�1�1�
8�8�8� � � �
8�8�8�$�$�$�*�*�*�+�+�+�����X������X��
2��D��
2�
2�
2�
2�
2�
2�
2r'rc�T�eZdZ ejd��Zd�Zd�Zd�Zd�Z d�Z
d�ZdS) rz^get(?P<name>.+)$c��||_i|_t|j��D]^}|j�|��}|r"tt
|j|����s�Ad|j|�d��<�_dS)Nr)r��_data�dir� GETTERCREr��callabler�r�)r$rlr�r�s r&r#zConverterMapping.__init__:s��������
��$�,�'�'� /� /�F���$�$�V�,�,�A��
�H�W�T�\�6�%B�%B�C�C�
��*.�D�J�q�w�w�v���'�'� /� /r'c��|j|Sr )r�rds r&rezConverterMapping.__getitem__Cs���z�#��r'c ��� d|z}n>#t$r1td�|t|�������wxYw|dkrtd���||j|<tj|jj|���}||_ t|j||��|j���D].}tj|j|���}t|||���/dS)Nr�zIncompatible key: {} (type: {})z)Incompatible key: cannot use "" as a name)r4r�)
r�rUr=r�r�r�r�r�r7� converterr��valuesr�)r$r,rc�k�func�proxyr�s r&rhzConverterMapping.__setitem__Fs�� 8����A�A��� 8� 8� 8�� � &��s�D��I�I� 6� 6�8�8�
8� 8����
��:�:��H�I�I�I���
�3��� ���!7�e�D�D�D��������a��&�&�&��\�(�(�*�*� &� &�E��&�u�y��=�=�=�F��E�1�f�%�%�%�%� &� &s ��;Ac�� d|pdz}n#t$rt|���wxYw|j|=tj|jf|j�����D]#} t||���#t$rY� wxYwdS)Nr�) r�r�r�rprqr�r��delattrr)r$r,r��insts r&rjzConverterMapping.__delitem__Vs��� �����%�A�A��� � � ��3�-�-�� �����J�s�O��O�T�\�O�T�\�5H�5H�5J�5J�K�K� � �D�
���a� � � � ��!�
�
�
���
���� � s�
�$�$A5�5
B�Bc�*�t|j��Sr )�iterr�r)s r&rrzConverterMapping.__iter__ds���D�J���r'c�*�t|j��Sr )r�r�r)s r&rnzConverterMapping.__len__gs���4�:���r'N)r+r,r-r�r�r�r#rerhrjrrrnr/r'r&rr0s����������
�/�0�0�I�/�/�/����&�&�&� ��� � � �����r'r)(�collections.abcr�collectionsrr�r�rrprr�r{r^�__all__r�r�rrr"rrrrrr rrr
r
r�objectr�rrrrrrrrrr/r'r&�<module>r�s!��K�Z+�*�*�*�*�*�-�-�-�-�-�-����� � � � ����� � � � � � � � �
�
�
�
�����5�5�5���
�����
�
�
�
�
�I�
�
�
� � � � � �U� � � �.�.�.�.�.�E�.�.�.�46�6�6�6�6�5�6�6�6�6&�&�&�&�&�E�&�&�&�+�+�+�+�+��+�+�+� 9� 9� 9� 9� 9�&8� 9� 9� 9������1����
.�
.�
.�
.�
.�0�
.�
.�
.�(>�(>�(>�(>�(>�5�(>�(>�(>�V-�-�-�-�-��-�-�-�"
�����
�
�
�
�
�
�
�
� E+�E+�E+�E+�E+��E+�E+�E+�PG+�G+�G+�G+�G+�M�G+�G+�G+�T,5�,5�,5�,5�,5�-�,5�,5�,5�^@
�@
�@
�@
�@
�n�@
�@
�@
�F5�5�5�5�5�?�5�5�5�@
�
�
�
�
�|�
�
�
�C2�C2�C2�C2�C2�>�C2�C2�C2�L8�8�8�8�8�~�8�8�8�8�8r'
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists