Edit File: configparser.cpython-38.opt-2.pyc
U ����@��df�����������������������@���s���d�dl�mZ�d�dlmZ�d�dlZd�dlZd�dlZd�dlZd�dl Z d�dl Z d�dlZdddddd d ddd dddddddddddgZe ZdZdZG�dd��de�ZG�dd��de�ZG�dd��de�ZG�dd��de�ZG�d d��de�ZG�d!d��de�ZG�d"d ��d e�ZG�d#d��de�ZG�d$d ��d e�ZG�d%d��de�ZG�d&d ��d e�Ze��ZG�d'd��d�ZG�d(d��de�Z G�d)d��de�Z!G�d*d��de�Z"G�d+d��de�Z#G�d,d��de#�Z$G�d-d��de$�Z%G�d.d��de�Z&G�d/d��de�Z'dS�)0�����)�MutableMapping)�ChainMapN�NoSectionError�DuplicateOptionError�DuplicateSectionError� NoOptionError�InterpolationError�InterpolationDepthError�InterpolationMissingOptionError�InterpolationSyntaxError�ParsingError�MissingSectionHeaderError�ConfigParser�SafeConfigParser�RawConfigParser� Interpolation�BasicInterpolation�ExtendedInterpolation�LegacyInterpolation�SectionProxy�ConverterMapping�DEFAULTSECT�MAX_INTERPOLATION_DEPTHZDEFAULT� ���c�������������������@���s"���e�Zd�Zddd�Zdd��ZeZdS�)�Error��c�����������������C���s���||�_�t�|�|��d�S��N)�message� Exception�__init__)�self�msg��r"����1/opt/alt/python38/lib64/python3.8/configparser.pyr�������s����zError.__init__c�����������������C���s���|�j�S�r���)r����r ���r"���r"���r#����__repr__����s����zError.__repr__N)r���)�__name__� __module__�__qualname__r���r%����__str__r"���r"���r"���r#���r�������s��� r���c�������������������@���s���e�Zd�Zdd��ZdS�)r���c�����������������C���s$���t��|�d|f���||�_|f|�_d�S�)NzNo section: %r)r���r����section�args�r ���r*���r"���r"���r#���r�������s����zNoSectionError.__init__N�r&���r'���r(���r���r"���r"���r"���r#���r�������s���c�������������������@���s���e�Zd�Zddd�ZdS�)r���Nc�����������������C���s����t�|�dg}|d�k rRdt�|�g}|d�k r8|�d�|���|�d��|�|��|}n|�dd��t�|�d�|���||�_||�_ ||�_ |||f|�_d�S�)N� already exists�While reading from � [line {0:2d}]z : section r���zSection r���)�repr�append�format�extend�insertr���r����joinr*����source�linenor+���)r ���r*���r7���r8���r!���r���r"���r"���r#���r�������s���� zDuplicateSectionError.__init__)NNr-���r"���r"���r"���r#���r�������s���c�������������������@���s���e�Zd�Zddd�ZdS�)r���Nc�����������������C���s����t�|�dt�|�dg}|d�k rZdt�|�g}|d�k r@|�d�|���|�d��|�|��|}n|�dd��t�|�d�|���||�_||�_ ||�_ ||�_||||f|�_d�S�) Nz in section r.���r/���r0���z : option r���zOption r���) r1���r2���r3���r4���r5���r���r���r6���r*����optionr7���r8���r+���)r ���r*���r9���r7���r8���r!���r���r"���r"���r#���r�������s"����� zDuplicateOptionError.__init__)NNr-���r"���r"���r"���r#���r�������s���c�������������������@���s���e�Zd�Zdd��ZdS�)r���c�����������������C���s.���t��|�d||f���||�_||�_||f|�_d�S�)NzNo option %r in section: %r�r���r���r9���r*���r+���)r ���r9���r*���r"���r"���r#���r�������s�����zNoOptionError.__init__Nr-���r"���r"���r"���r#���r�������s���c�������������������@���s���e�Zd�Zdd��ZdS�)r���c�����������������C���s(���t��|�|��||�_||�_|||f|�_d�S�r���r:���)r ���r9���r*���r!���r"���r"���r#���r�����s����zInterpolationError.__init__Nr-���r"���r"���r"���r#���r�������s���c�������������������@���s���e�Zd�Zdd��ZdS�)r ���c�����������������C���s8���d��||||�}t�|�|||��||�_||||f|�_d�S�)Nz�Bad value substitution: option {!r} in section {!r} contains an interpolation key {!r} which is not a valid option name. Raw value: {!r})r3���r���r���� referencer+���)r ���r9���r*����rawvalr;���r!���r"���r"���r#���r�����s��������z(InterpolationMissingOptionError.__init__Nr-���r"���r"���r"���r#���r �����s���c�������������������@���s���e�Zd�ZdS�)r���N)r&���r'���r(���r"���r"���r"���r#���r�����s���c�������������������@���s���e�Zd�Zdd��ZdS�)r ���c�����������������C���s0���d��||t|�}t�|�|||��|||f|�_d�S�)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})r3���r���r���r���r+���)r ���r9���r*���r<���r!���r"���r"���r#���r�����s�������z InterpolationDepthError.__init__Nr-���r"���r"���r"���r#���r �����s���c�������������������@���s8���e�Zd�Zd dd�Zedd���Zejdd���Zdd��ZdS�) r���Nc�����������������C���sT���|r|rt�d��n|s$|s$t�d��n|r,|}t�|�d|���||�_g�|�_|f|�_d�S�)Nz:Cannot specify both `filename' and `source'. Use `source'.z%Required argument `source' not given.z"Source contains parsing errors: %r)� ValueErrorr���r���r7����errorsr+���)r ���r7����filenamer"���r"���r#���r���,��s���� zParsingError.__init__c�����������������C���s���t�jdtdd��|�jS��NzSThe 'filename' attribute will be removed in future versions. Use 'source' instead.������ stacklevel��warnings�warn�DeprecationWarningr7���r$���r"���r"���r#���r?���;��s������zParsingError.filenamec�����������������C���s���t�jdtdd��||�_d�S�r@���rD����r ����valuer"���r"���r#���r?���E��s������c�����������������C���s*���|�j��||f��|��jd||f�7��_d�S�)Nz [line %2d]: %s)r>���r2���r���)r ���r8����liner"���r"���r#���r2���O��s����zParsingError.append)NN)r&���r'���r(���r����propertyr?����setterr2���r"���r"���r"���r#���r���)��s��� c�������������������@���s���e�Zd�Zdd��ZdS�)r ���c�����������������C���s8���t��|�d|||f���||�_||�_||�_|||f|�_d�S�)Nz7File contains no section headers. file: %r, line: %d %r)r���r���r7���r8���rJ���r+���)r ���r?���r8���rJ���r"���r"���r#���r���W��s������z"MissingSectionHeaderError.__init__Nr-���r"���r"���r"���r#���r ���T��s���c�������������������@���s,���e�Zd�Zdd��Zdd��Zdd��Zdd��Zd S�) r���c�����������������C���s���|S�r���r"���)r ����parserr*���r9���rI����defaultsr"���r"���r#���� before_getk��s����zInterpolation.before_getc�����������������C���s���|S�r���r"����r ���rM���r*���r9���rI���r"���r"���r#���� before_setn��s����zInterpolation.before_setc�����������������C���s���|S�r���r"���rP���r"���r"���r#����before_readq��s����zInterpolation.before_readc�����������������C���s���|S�r���r"���rP���r"���r"���r#����before_writet��s����zInterpolation.before_writeN)r&���r'���r(���rO���rQ���rR���rS���r"���r"���r"���r#���r���h��s���c�������������������@���s.���e�Zd�Ze�d�Zdd��Zdd��Zdd��ZdS�) r���z %\(([^)]+)\)sc�������������� ���C���s$���g�}|���||||||d��d�|�S��N����r�����_interpolate_somer6����r ���rM���r*���r9���rI���rN����Lr"���r"���r#���rO������s����zBasicInterpolation.before_getc�����������������C���s<���|��dd�}|�j�d|�}d|kr8td||�d�f���|S�)Nz%%r����%�1invalid interpolation syntax in %r at position %d��replace�_KEYCRE�subr=����find�r ���rM���r*���r9���rI���Z tmp_valuer"���r"���r#���rQ������s�����zBasicInterpolation.before_setc�������������� ���C���sj��|j�||d|d�}|tkr&t|||��|�rf|�d�} | dk�rL|�|��d�S�| dkrr|�|d�| ����|| d���}|dd��} | dkr�|�d��|dd���}q&| dk�rR|�j�|�}|d�kr�t||d|���|�|� d��}||� ��d���}z||�} W�n&�tk �r���t||||�d��Y�nX�d| k�rF|�� |||| |||d���n |�| ��q&t||d |f���q&d�S�) NT��raw�fallbackrZ���r���rU���rA����(�'bad interpolation variable reference %rz/'%%' must be followed by '%%' or '(', found: %r)�getr���r ���r`���r2���r^����matchr����optionxform�group�end�KeyErrorr ���rW���)r ���rM���r9����accum�restr*����map�depthr<����p�c�m�var�vr"���r"���r#���rW������s`���� ������ ������z$BasicInterpolation._interpolate_someN� r&���r'���r(����re�compiler^���rO���rQ���rW���r"���r"���r"���r#���r���x��s��� c�������������������@���s.���e�Zd�Ze�d�Zdd��Zdd��Zdd��ZdS�) r���z \$\{([^}]+)\}c�������������� ���C���s$���g�}|���||||||d��d�|�S�rT���rV���rX���r"���r"���r#���rO������s����z ExtendedInterpolation.before_getc�����������������C���s<���|��dd�}|�j�d|�}d|kr8td||�d�f���|S�)Nz$$r����$r[���r\���ra���r"���r"���r#���rQ������s�����z ExtendedInterpolation.before_setc�����������������C���s���|j�||d|d�}|tkr&t|||��|�r�|�d�} | dk�rL|�|��d�S�| dkrr|�|d�| ����|| d���}|dd��} | dkr�|�d��|dd���}q&| dk�r�|�j�|�}|d�kr�t||d|���|�d�� d �}||� ��d���}|} |}zrt|�dk�r|�|d��}||�}nHt|�dk�rR|d�} |�|d��}|j�| |dd �}nt||d|f���W�n2�t ttfk �r����t|||d �|��d��Y�nX�d|k�r�|��||||| t|j| dd ��|d���n |�|��q&t||d|f���q&d�S�) NTrb���ry���r���rU���rA����{rf����:)rc���zMore than one ':' found: %rz-'$' must be followed by '$' or '{', found: %r)rg���r���r ���r`���r2���r^���rh���r���rj����splitrk����lenri���rl���r���r���r ���r6���rW����dict�items)r ���rM���r9���rm���rn���r*���ro���rp���r<���rq���rr���rs����pathZsect�optru���r"���r"���r#���rW������sx���� � ������� ����z'ExtendedInterpolation._interpolate_someNrv���r"���r"���r"���r#���r������s��� c�������������������@���s2���e�Zd�Ze�d�Zdd��Zdd��Zedd���Z dS�) r���z%\(([^)]*)\)s|.c����������� ��� ���C���s����|}t�}|r�|d8�}|r�d|kr�tj|�j|d�}|�j�||�}z||�}W�q��tk r��} �zt|||| jd��d��W�5�d�} ~ X�Y�q�X�qq�q|r�d|kr�t |||��|S�)NrU���z%()rM���r���) r���� functools�partial�_interpolation_replacer^���r_���rl���r ���r+���r ���) r ���rM���r*���r9���rI����varsr<���rp���r]����er"���r"���r#���rO�����s0����������zLegacyInterpolation.before_getc�����������������C���s���|S�r���r"���rP���r"���r"���r#���rQ���$��s����zLegacyInterpolation.before_setc�����������������C���s,���|���d�}|d�kr|�����S�d|�|��S�d�S�)NrU���z%%(%s)s)rj���ri���)rh���rM����sr"���r"���r#���r����'��s���� z*LegacyInterpolation._interpolation_replaceN) r&���r'���r(���rw���rx���r^���rO���rQ����staticmethodr����r"���r"���r"���r#���r��� ��s ��� c���������������� �������s2��e�Zd�ZdZdZdZe��Ze� eej �Ze� ejdd�ej �Z e� ejdd�ej �Ze� d�Zddddddddd �Zd edfddd ddeeed �dd�Zdd��Zdd��Zdd��Zdd��Zdd��Zdcdd�Zdddd�Zdedd �Zdfd"d#�Zdgd$d%�Zdd ed&�d'd(�Zd)d*��Z dd ed&�d+d,�Z!dd ed&�d-d.�Z"dd ed&�d/d0�Z#dd ed&�d1d2�Z$edd f��fd3d4� Z%d5d6��Z&d7d8��Z'd9d:��Z(dhd;d<�Z)did=d>�Z*d?d@��Z+dAdB��Z,dCdD��Z-dEdF��Z.dGdH��Z/dIdJ��Z0dKdL��Z1dMdN��Z2dOdP��Z3dQdR��Z4dSdT��Z5dUdV��Z6dWdX��Z7dYdZ��Z8d[d\��Z9d]d]d]d^�d_d`�Z:e;dadb���Z<���Z=S�)jr���z� \[ # [ (?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=|:�Zdelimz\STF)�1Zyes�trueZon�0ZnoZfalseZoffN��=r{���)�#�;)� delimiters�comment_prefixes�inline_comment_prefixes�strict�empty_lines_in_values�default_section� interpolation� convertersc���������� ������C���s<��||�_�|�����|�_|�����|�_t|��|�_|�����|�_t|�| �|�j| <�t|�|�_|dkrd|rZ|�j n|�j |�_nNd�dd��|D���}|r�t �|�jj|d�t j�|�_nt �|�jj|d�t j�|�_t|p�d�|�_t|p�d�|�_||�_||�_||�_| |�_| |�_|�jtkr�|�j|�_|�jd�k�rt��|�_|tk �r(|�j�|��|�r8|��|��d�S�)Nr�����|c�����������������s���s���|�]}t��|�V��qd�S�r���)rw����escape)�.0�dr"���r"���r#���� <genexpr>j��s�����z+RawConfigParser.__init__.<locals>.<genexpr>r����r"���)�_dict� _sections� _defaultsr����_converters�_proxiesr����tuple�_delimiters� OPTCRE_NV�OPTCRE�_optcrer6���rw���rx����_OPT_NV_TMPLr3����VERBOSE� _OPT_TMPL�_comment_prefixes�_inline_comment_prefixes�_strict�_allow_no_value�_empty_lines_in_valuesr�����_interpolation�_UNSET�_DEFAULT_INTERPOLATIONr����update�_read_defaults) r ���rN���Z dict_typeZallow_no_valuer����r����r����r����r����r����r����r����r����r"���r"���r#���r���Y��s@���� �� zRawConfigParser.__init__c�����������������C���s���|�j�S�r���)r����r$���r"���r"���r#���rN������s����zRawConfigParser.defaultsc�����������������C���s���t�|�j����S�r���)�listr�����keysr$���r"���r"���r#����sections���s����zRawConfigParser.sectionsc�����������������C���sJ���||�j�krtd|���||�jkr(t|��|����|�j|<�t|�|�|�j|<�d�S�)NzInvalid section name: %r)r����r=���r����r���r����r���r����r,���r"���r"���r#����add_section���s���� zRawConfigParser.add_sectionc�����������������C���s ���||�j�kS�r���)r����r,���r"���r"���r#����has_section���s����zRawConfigParser.has_sectionc�����������������C���sJ���z|�j�|����}W�n�tk r0���t|�d��Y�nX�|�|�j��t|����S�r���)r�����copyrl���r���r����r����r����r����)r ���r*���Zoptsr"���r"���r#����options���s����zRawConfigParser.optionsc�������������� ���C���s����t�|tttjf�r|g}g�}|D�]f}z(t||d��}|��||��W�5�Q�R�X�W�n�tk rd���Y�q Y�nX�t�|tj�r|t�|�}|� |��q |S�)N)�encoding) � isinstance�str�bytes�os�PathLike�open�_read�OSError�fspathr2���)r ���� filenamesr����Zread_okr?����fpr"���r"���r#����read���s���� zRawConfigParser.readc�����������������C���s<���|d�kr,z |j�}W�n�tk r*���d}Y�nX�|��||��d�S�)Nz<???>)�name�AttributeErrorr����)r ����fr7���r"���r"���r#���� read_file���s���� zRawConfigParser.read_file�<string>c�����������������C���s���t��|�}|��||��d�S�r���)�io�StringIOr����)r ����stringr7���Zsfiler"���r"���r#����read_string���s���� zRawConfigParser.read_string�<dict>c�������������� ���C���s����t���}|���D�]�\}}t|�}z|��|��W�n(�ttfk rT���|�jrP||krP��Y�nX�|�|��|���D�]`\}}|��t|��}|d�k r�t|�}|�jr�||f|kr�t |||��|�||f��|���|||��qhqd�S�r���) �setr���r����r����r���r=���r�����addri���r���)r ���Z dictionaryr7����elements_addedr*���r�����keyrI���r"���r"���r#���� read_dict���s"���� zRawConfigParser.read_dictc�����������������C���s"���t�jdtdd��|�j||d��d�S�)NzRThis method will be removed in future versions. Use 'parser.read_file()' instead.rA���rB���)r7���)rE���rF���rG���r����)r ���r����r?���r"���r"���r#����readfp���s������zRawConfigParser.readfp�rc���r����rd���c����������������C���s����z|���||�}W�n(�tk r8���|tkr,��n|�Y�S�Y�nX�|��|�}z||�}W�n0�tk r����|tkrtt||��n|�Y�S�Y�nX�|s�|d�kr�|S�|�j�|�||||�S�d�S�r���)� _unify_valuesr���r����ri���rl���r���r����rO���)r ���r*���r9���rc���r����rd���r����rI���r"���r"���r#���rg������s$���� �zRawConfigParser.getc�����������������K���s���||�j�||f|��S�r���)rg���)r ���r*����convr9����kwargsr"���r"���r#����_get"��s����zRawConfigParser._getc������������� ���K���sJ���z|�j�|||f||d�|��W�S��ttfk rD���|tkr<��|�Y�S�X�d�S�)N)rc���r����)r����r���r���r����)r ���r*���r9���r����rc���r����rd���r����r"���r"���r#���� _get_conv%��s�����zRawConfigParser._get_convc����������������K���s���|�j�||tf|||d�|��S��Nr����)r�����int�r ���r*���r9���rc���r����rd���r����r"���r"���r#����getint0��s ������zRawConfigParser.getintc����������������K���s���|�j�||tf|||d�|��S�r����)r�����floatr����r"���r"���r#����getfloat5��s ������zRawConfigParser.getfloatc����������������K���s ���|�j�|||�jf|||d�|��S�r����)r�����_convert_to_booleanr����r"���r"���r#���� getboolean:��s��������zRawConfigParser.getbooleanc��������������������s�����t�krt�����S��j�����z����j����W�n&�tk rV�����jkrRt ���Y�nX�t ������}|r�|���D�]\}}|����|�<�qp����fdd��|r���fdd���fdd�|D��S�)Nc��������������������s����j����|���|�����S�r���)r����rO����r9���)r����r*���r ���r"���r#����<lambda>W��s �������z'RawConfigParser.items.<locals>.<lambda>c��������������������s�����|��S�r���r"���r����)r����r"���r#���r����Z�������c��������������������s���g�|�]}|��|�f�qS�r"���r"���)r����r9���)�value_getterr"���r#���� <listcomp>[��s�����z)RawConfigParser.items.<locals>.<listcomp>) r�����superr���r����r����r����r����rl���r����r���r����r����ri���)r ���r*���rc���r����Z orig_keysr����rI����� __class__)r����r*���r ���r����r#���r���?��s ���� zRawConfigParser.itemsc�����������������C���s.���|�����D�]}|�|�}|�|=�||f��S�t�d�S�r���)r����rl����r ���r����rI���r"���r"���r#����popitem]��s ����zRawConfigParser.popitemc�����������������C���s���|����S�r���)�lower)r ���Z optionstrr"���r"���r#���ri���j��s����zRawConfigParser.optionxformc�����������������C���sV���|r||�j�kr"|��|�}||�jkS�||�jkr0dS�|��|�}||�j|�kpP||�jkS�d�S�)NF)r����ri���r����r����)r ���r*���r9���r"���r"���r#���� has_optionm��s���� �zRawConfigParser.has_optionc�����������������C���sl���|r|�j��|�|||�}|r$||�jkr,|�j}n.z|�j|�}W�n�tk rX���t|�d��Y�nX�|||��|�<�d�S�r���)r����rQ���r����r����r����rl���r���ri���)r ���r*���r9���rI����sectdictr"���r"���r#���r����{��s�����zRawConfigParser.setc�����������������C���sh���|rd��|�jd��}n |�jd�}|�jr>|��||�j|�j���|��|�jD�]}|��|||�j|����|��qDd�S�)Nz {} r���)r3���r����r�����_write_sectionr����r���r����)r ���r����Zspace_around_delimitersr����r*���r"���r"���r#����write���s���� �� ��zRawConfigParser.writec�����������������C���sx���|��d�|���|D�]T\}}|�j�|�|||�}|d�k s<|�jsR|t|��dd��}nd}|��d�||���q|��d��d�S�)Nz[{}] � z r���z{}{} )r����r3���r����rS���r����r����r]���)r ���r����Zsection_nameZ section_itemsZ delimiterr����rI���r"���r"���r#���r�������s�����zRawConfigParser._write_sectionc�����������������C���sd���|r||�j�kr|�j}n.z|�j|�}W�n�tk rB���t|�d��Y�nX�|��|�}||k}|r`||=�|S�r���)r����r����r����rl���r���ri���)r ���r*���r9���r�����existedr"���r"���r#���� remove_option���s���� zRawConfigParser.remove_optionc�����������������C���s"���||�j�k}|r|�j�|=�|�j|=�|S�r���)r����r����)r ���r*���r����r"���r"���r#����remove_section���s ���� zRawConfigParser.remove_sectionc�����������������C���s&���||�j�kr|��|�st|��|�j|�S�r���)r����r����rl���r�����r ���r����r"���r"���r#����__getitem__���s����zRawConfigParser.__getitem__c�����������������C���sX���||�kr|�|�|krd�S�||�j�kr.|�j����n||�jkrF|�j|�����|��||i��d�S�r���)r����r�����clearr����r����r����r"���r"���r#����__setitem__���s���� zRawConfigParser.__setitem__c�����������������C���s2���||�j�krtd��|��|�s$t|��|��|��d�S�)Nz"Cannot remove the default section.)r����r=���r����rl���r����r����r"���r"���r#����__delitem__���s ���� zRawConfigParser.__delitem__c�����������������C���s���||�j�kp|��|�S�r���)r����r����r����r"���r"���r#����__contains__���s����zRawConfigParser.__contains__c�����������������C���s���t�|�j�d�S�)NrU���)r}���r����r$���r"���r"���r#����__len__���s����zRawConfigParser.__len__c�����������������C���s���t��|�jf|�j����S�r���)� itertools�chainr����r����r����r$���r"���r"���r#����__iter__���s����zRawConfigParser.__iter__c�����������������C���s ��t���}d�}d�}d�}d}d}d�} t|dd�D��]�\}} tj}dd��|�jD��}|tjkr�|r�i�} |���D�]T\}}| �||d��}|dkr�qd|| |<�|dks�|dkrd| |d�����rdt||�}qd| }qJ|�j D�]}| � ���|�r�d}�q�q�|tjkr�d�}| d�|��� ��}|�sN|�j�rF|d�k�rL|d�k �rL|�rL||�d�k �rL||�� d��q*tj}q*|�j�| �}|�rh|���nd}|d�k �r�|�r�||k�r�||�� |��q*|}|�j�|�}|�r<|�d�}||�jk�r�|�j�r�||k�r�t|||��|�j|�}|�|��n@||�jk�r |�j}n,|����}||�j|<�t|�|�|�j|<�|�|��d�}q*|d�k�rTt||| ��q*|�j�|�}|�r�|�d d d�\}}}|�s�|��| ||| �} |�� |�!���}|�j�r�||f|k�r�t"||||��|�||f��|d�k �r�|� ��}|g||<�nd�||<�q*|��| ||| �} q*|��#���| �r| �d�S�)Nr���rU���)�startc�����������������S���s���i�|�] }|d��qS�)���r"���)r����rq���r"���r"���r#���� <dictcomp>���s������z)RawConfigParser._read.<locals>.<dictcomp>r��r����headerr9����virI���)$r����� enumerate�sys�maxsizer����r���r`����isspace�minr�����strip� startswithr����r2����NONSPACECRE�searchr���SECTCRErh���rj���r����r����r���r����r����r����r����r���r����r ���r����� _handle_errorri����rstripr����_join_multiline_values)r ���r�����fpnamer����ZcursectZsectnameZoptnamer8���Zindent_levelr����rJ���Z comment_startZinline_prefixesZ next_prefixes�prefix�indexrI���Zfirst_nonspaceZcur_indent_levelZmor��Zoptvalr"���r"���r#���r�������s����� �� �� � ��� zRawConfigParser._readc�����������������C���sr���|�j�|�jf}t�|f|�j����}|D�]H\}}|���D�]6\}}t|t�rTd�|�� ��}|�j �|�|||�||<�q4q$d�S�)Nr����)r����r����r��r��r����r���r����r����r6���r��r����rR���)r ���rN���Zall_sectionsr*���r����r�����valr"���r"���r#���r��[��s����� ��z&RawConfigParser._join_multiline_valuesc�����������������C���s&���|����D�]\}}||�j|��|�<�qd�S�r���)r���r����ri���)r ���rN���r����rI���r"���r"���r#���r����g��s����zRawConfigParser._read_defaultsc�����������������C���s ���|st�|�}|�|t|���|S�r���)r���r2���r1���)r ����excr��r8���rJ���r"���r"���r#���r��m��s����zRawConfigParser._handle_errorc�����������������C���s����i�}z|�j�|�}W�n(�tk r:���||�jkr6t|�d��Y�nX�i�}|rt|���D�]&\}}|d�k rdt|�}|||��|�<�qLt|||�j�S�r���) r����rl���r����r���r���r����ri���� _ChainMapr����)r ���r*���r����ZsectiondictZvardictr����rI���r"���r"���r#���r����s��s���� zRawConfigParser._unify_valuesc�����������������C���s(���|����|�jkrtd|���|�j|�����S�)NzNot a boolean: %s)r�����BOOLEAN_STATESr=���rH���r"���r"���r#���r�������s����z#RawConfigParser._convert_to_booleanr���)r*���r9���rI���c����������������C���sD���t�|t�std��t�|t�s$td��|�jr.|r@t�|t�s@td��d�S�)Nzsection names must be stringszoption keys must be stringszoption values must be strings)r����r����� TypeErrorr�����r ���r*���r9���rI���r"���r"���r#����_validate_value_types���s���� z%RawConfigParser._validate_value_typesc�����������������C���s���|�j�S�r���)r����r$���r"���r"���r#���r�������s����zRawConfigParser.converters)N)N)r����)r����)N)N)T)>r&���r'���r(���Z _SECT_TMPLr����r����r���r����rw���rx���r����r��r3���r����r����r��r��� _default_dictr���r����r���rN���r����r����r����r����r����r����r����r����r����rg���r����r����r����r����r����r���r����ri���r����r����r����r����r����r����r����r����r����r����r���r��r����r��r����r��r����r����r��rK���r����� __classcell__r"���r"���r����r#���r���0��s���� ���������( %���� zc�����������������������s8���e�Zd�Ze��Zd��fdd� Z��fdd�Zdd��Z���ZS�) r���Nc��������������������s"���|�j�||d��t���|||��d�S��N)r9���rI���)r��r����r����r��r����r"���r#���r�������s����zConfigParser.setc��������������������s���|�j�|d��t���|��d�S�)N)r*���)r��r����r����r,���r����r"���r#���r�������s����zConfigParser.add_sectionc�����������������C���s0���z"|�j�}t��|�_�|��|�j|i��W�5�||�_�X�d�S�r���)r����r���r����r����)r ���rN���Zhold_interpolationr"���r"���r#���r�������s ����zConfigParser._read_defaults)N) r&���r'���r(���r���r����r����r����r����r!��r"���r"���r����r#���r������s���c�����������������������s���e�Zd�Z��fdd�Z���ZS�)r���c��������������������s"���t���j||��tjdtdd��d�S�)Nz�The SafeConfigParser class has been renamed to ConfigParser in Python 3.2. This alias will be removed in future versions. Use ConfigParser directly instead.rA���rB���)r����r���rE���rF���rG���)r ���r+���r����r����r"���r#���r������s������zSafeConfigParser.__init__)r&���r'���r(���r���r!��r"���r"���r����r#���r������s���c�������������������@���s����e�Zd�Zdd��Zdd��Zdd��Zdd��Zd d ��Zdd��Zd d��Z dd��Z dd��Zedd���Z edd���Zddddd�dd�ZdS�)r���c�����������������C���sF���||�_�||�_|jD�].}d|�}tj|�jt||�d�}t|�||��qd�S�)Nrg�����_impl)�_parser�_namer����r����r����rg����getattr�setattr)r ���rM���r����r����r�����getterr"���r"���r#���r������s���� zSectionProxy.__init__c�����������������C���s���d��|�j�S�)Nz <Section: {}>)r3���r&��r$���r"���r"���r#���r%������s����zSectionProxy.__repr__c�����������������C���s(���|�j��|�j|�st|��|�j��|�j|�S�r���)r%��r����r&��rl���rg���r����r"���r"���r#���r�������s����zSectionProxy.__getitem__c�����������������C���s"���|�j�j||d��|�j��|�j||�S�r"��)r%��r��r����r&��r����r"���r"���r#���r�������s����zSectionProxy.__setitem__c�����������������C���s,���|�j��|�j|�r |�j��|�j|�s(t|��d�S�r���)r%��r����r&��r����rl���r����r"���r"���r#���r�������s�����zSectionProxy.__delitem__c�����������������C���s���|�j��|�j|�S�r���)r%��r����r&��r����r"���r"���r#���r�������s����zSectionProxy.__contains__c�����������������C���s���t�|�����S�r���)r}����_optionsr$���r"���r"���r#���r������s����zSectionProxy.__len__c�����������������C���s���|��������S�r���)r*��r��r$���r"���r"���r#���r�����s����zSectionProxy.__iter__c�����������������C���s*���|�j�|�jjkr|�j�|�j��S�|�j���S�d�S�r���)r&��r%��r����r����rN���r$���r"���r"���r#���r*�����s����zSectionProxy._optionsc�����������������C���s���|�j�S�r���)r%��r$���r"���r"���r#���rM�����s����zSectionProxy.parserc�����������������C���s���|�j�S�r���)r&��r$���r"���r"���r#���r������s����zSectionProxy.nameNF)rc���r����r$��c����������������K���s(���|s|�j�j}||�j|f|||d�|��S�r����)r%��rg���r&��)r ���r9���rd���rc���r����r$��r����r"���r"���r#���rg�����s���� ��zSectionProxy.get)N)r&���r'���r(���r���r%���r����r����r����r����r���r��r*��rK���rM���r����rg���r"���r"���r"���r#���r������s ��� �c�������������������@���sF���e�Zd�Ze�d�Zdd��Zdd��Zdd��Zdd ��Z d d��Z dd ��ZdS�)r���z^get(?P<name>.+)$c�����������������C���sR���||�_�i�|�_t|�j��D�]6}|�j�|�}|rtt|�j�|��s<qd�|�j|�d�<�qd�S�)Nr����)r%���_data�dir� GETTERCRErh����callabler'��rj���)r ���rM���r)��rs���r"���r"���r#���r���%��s����zConverterMapping.__init__c�����������������C���s ���|�j�|�S�r���)r+��r����r"���r"���r#���r����.��s����zConverterMapping.__getitem__c�������������� ���C���s����zd|�}W�n(�t�k r4���td�|t|����Y�nX�|dkrFtd��||�j|<�tj|�jj|d�}||_ t |�j||��|�j���D�] }tj|j|d�}t |||��q�d�S�)Nrg���zIncompatible key: {} (type: {})z)Incompatible key: cannot use "" as a name)r����r#��) r��r=���r3����typer+��r����r����r%��r����Z converterr(���valuesrg���)r ���r����rI����k�func�proxyr)��r"���r"���r#���r����1��s ������ zConverterMapping.__setitem__c�������������� ���C���s~���zd|p d��}W�n�t�k r,���t|��Y�nX�|�j|=�t�|�jf|�j����D�],}zt||��W�qL�tk rv���Y�qLY�qLX�qLd�S�)Nrg���) r��rl���r+��r��r��r%��r0���delattrr����)r ���r����r1���instr"���r"���r#���r����A��s����zConverterMapping.__delitem__c�����������������C���s ���t�|�j�S�r���)�iterr+��r$���r"���r"���r#���r��O��s����zConverterMapping.__iter__c�����������������C���s ���t�|�j�S�r���)r}���r+��r$���r"���r"���r#���r���R��s����zConverterMapping.__len__N)r&���r'���r(���rw���rx���r-��r���r����r����r����r��r���r"���r"���r"���r#���r�����s��� )(Zcollections.abcr����collectionsr���r��r����r����r��r����rw���r ��rE����__all__r~���r ��r���r���r���r���r���r���r���r���r���r ���r���r ���r���r ����objectr����r���r���r���r���r���r���r���r���r���r"���r"���r"���r#����<module>����sp��������������� +HJ&����| F