OwlCyberSecurity - MANAGER
Edit File: configparser.cpython-39.opt-2.pyc
a ����?�g8�����������������������@���s���d�dl�mZ�d�dlmZ�d�dlZd�dlZd�dlZd�dlZd�dl Z d�dl Z d�dlZg�d�Ze ZdZdZG�dd��de�ZG�d d ��d e�ZG�dd��de�ZG�d d��de�ZG�dd��de�ZG�dd��de�ZG�dd��de�ZG�dd��de�ZG�dd��de�ZG�dd��de�ZG�dd��de�Ze��ZG�dd��d�ZG�dd ��d e�Z G�d!d"��d"e�Z!G�d#d$��d$e�Z"G�d%d&��d&e�Z#G�d'd(��d(e#�Z$G�d)d*��d*e$�Z%G�d+d,��d,e�Z&G�d-d.��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_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/python39/lib64/python3.9/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���r���c�������������������@���s���e�Zd�Zddd�ZdS�)r���Nc�����������������C���s����t�|�dg}|d�urRdt�|�g}|d�ur8|�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���r���c�������������������@���s���e�Zd�Zddd�ZdS�)r���Nc�����������������C���s����t�|�dt�|�dg}|d�urZdt�|�g}|d�ur@|�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���r���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���r���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���r���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���r ���c�������������������@���s���e�Zd�ZdS�)r���N)r&���r'���r(���r"���r"���r"���r#���r�����s���r���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���r ���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��� r���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���r ���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���r���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|v�r8td||�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���sh��|j�||d|d�}|tkr&t|||��|�rd|�d�} | dk�rL|�|��d�S�| dkrr|�|d�| ����|| d���}|dd��} | dkr�|�d��|dd���}q&| dk�rP|�j�|�}|d�u�r�t||d|���|�|� d��}||� ��d���}z||�} W�n$�t�y���t||||�d��Y�n0�d| v��rD|�� |||| |||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������sT���� ��� ���z$BasicInterpolation._interpolate_someN� r&���r'���r(����re�compiler^���rO���rQ���rW���r"���r"���r"���r#���r���x��s��� r���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|v�r8td||�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�u�r�t||d|���|�d�� d �}||� ��d���}|} |}zrt|�dk�r|�|d��}||�}nHt|�dk�rR|d�} |�|d��}|j�| |dd �}nt||d|f���W�n0�t ttf�y����t|||d �|��d��Y�n0�d|v��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������sn���� � ��� ���z'ExtendedInterpolation._interpolate_someNrv���r"���r"���r"���r#���r������s��� r���c�������������������@���s2���e�Zd�Ze�d�Zdd��Zdd��Zedd���Z dS�) r���z%\(([^)]*)\)s|.c����������� ��� ���C���s����|}t�}|r�|d8�}|r�d|v�r�tj|�j|d�}|�j�||�}z||�}W�q��ty��} �z"t|||| jd��d��W�Y�d�} ~ q�d�} ~ 0�0�qq�q|r�d|v�r�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�����s*�������zLegacyInterpolation.before_getc�����������������C���s���|S�r���r"���rP���r"���r"���r#���rQ���$��s����zLegacyInterpolation.before_setc�����������������C���s,���|���d�}|d�u�r|�����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 ��� r���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�|�_||�_||�_||�_| |�_| |�_|�jtu�r�|�j|�_|�jd�u��rt��|�_|tu�r(|�j�|��|�r8|��|��d�S�)Nr�����|c�����������������s���s���|�]}t��|�V��qd�S�r���)rw����escape)�.0�dr"���r"���r#���� <genexpr>j�������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|���||�jv�r(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�v�S�r���)r����r,���r"���r"���r#����has_section���s����zRawConfigParser.has_sectionc�����������������C���sH���z|�j�|����}W�n�ty.���t|�d��Y�n0�|�|�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�]x}z<t||d��}|��||��W�d�����n1�sT0����Y��W�n�tyv���Y�q Y�n0�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�u�r*z |j�}W�n�ty(���d}Y�n0�|��||��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&�ttfyR���|�jrN||v�rN��Y�n0�|�|��|���D�]`\}}|��t|��}|d�ur�t|�}|�jr�||f|v�r�t |||��|�||f��|���|||��qfqd�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&�ty6���|tu�r*��n|�Y�S�Y�n0�|��|�}z||�}W�n.�ty|���|tu�rpt||��n|�Y�S�Y�n0�|s�|d�u�r�|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�||fi�|���S�r���)rg���)r ���r*����convr9����kwargsr"���r"���r#����_get"��s����zRawConfigParser._getc������������� ���K���sH���z|�j�|||f||d�|��W�S��ttfyB���|tu�r:��|�Y�S�0�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�u�rt�����S��j�����z����j����W�n$�tyT�����jkrPt ���Y�n0�t ������}|r�|���D�]\}}|����|�<�qn����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��r����c��������������������s���g�|�]}|��|�f�qS�r"���r"���)r����r9���)�value_getterr"���r#���� <listcomp>[��r����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"|��|�}||�jv�S�||�jvr0dS�|��|�}||�j|�v�pP||�jv�S�d�S�)NF)r����ri���r����r����)r ���r*���r9���r"���r"���r#���� has_optionm��s���� �zRawConfigParser.has_optionc�����������������C���sj���|r|�j��|�|||�}|r$||�jkr,|�j}n,z|�j|�}W�n�tyV���t|�d��Y�n0�|||��|�<�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�us<|�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���sb���|r||�j�kr|�j}n,z|�j|�}W�n�ty@���t|�d��Y�n0�|��|�}||v�}|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�v�}|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���||�v�r|�|�|u�rd�S�||�j�kr.|�j����n||�jv�rF|�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�u��rL|d�u�rL|�rL||�d�u�rL||�� d��q*tj}q*|�j�| �}|�rh|���nd}|d�u�r�|�r�||k�r�||�� |��q*|}|�j�|�}|�r<|�d�}||�jv��r�|�j�r�||v��r�t|||��|�j|�}|�|��n@||�jk�r |�j}n,|����}||�j|<�t|�|�|�j|<�|�|��d�}q*|d�u��rTt||| ��q*|�j�|�}|�r�|�d d d�\}}}|�s�|��| ||| �} |�� |�!���}|�j�r�||f|v��r�t"||||��|�||f��|d�u�r�|� ��}|g||<�nd�||<�q*|��| ||| �} q*|��#���| �r| �d�S�)Nr���rU���)�startc�����������������S���s���i�|�] }|d��qS�)���r"���)r����rq���r"���r"���r#���� <dictcomp>���r����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����j��s����zRawConfigParser._read_defaultsc�����������������C���s ���|st�|�}|�|t|���|S�r���)r���r2���r1���)r ����excr��r8���rJ���r"���r"���r#���r��p��s����zRawConfigParser._handle_errorc�����������������C���s����i�}z|�j�|�}W�n&�ty8���||�jkr4t|�d��Y�n0�i�}|rr|���D�]&\}}|d�urbt|�}|||��|�<�qJt|||�j�S�r���) r����rl���r����r���r���r����ri���� _ChainMapr����)r ���r*���r����ZsectiondictZvardictr����rI���r"���r"���r#���r����v��s���� zRawConfigParser._unify_valuesc�����������������C���s(���|����|�jvrtd|���|�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���� ���( %���� zr���c�����������������������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���s6���z(|�j�}t��|�_�|��|�j|i��W�||�_�n||�_�0�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���r���c�����������������������s���e�Zd�Z��fdd�Z���ZS�)r���c��������������������s&���t���j|i�|���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���r���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 ��� �r���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����1��s����zConverterMapping.__getitem__c�������������� ���C���s����zd|�}W�n&�t�y2���td�|t|����Y�n0�|dkrDtd��||�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����4��s����� zConverterMapping.__setitem__c�������������� ���C���sz���zd|p d��}W�n�t�y*���t|��Y�n0�|�j|=�t�|�jf|�j����D�]*}zt||��W�qJ�tyr���Y�qJY�qJ0�qJd�S�)Nrg���) r��rl���r+��r��r��r%��r0���delattrr����)r ���r����r1���instr"���r"���r#���r����D��s����zConverterMapping.__delitem__c�����������������C���s ���t�|�j�S�r���)�iterr+��r$���r"���r"���r#���r��R��s����zConverterMapping.__iter__c�����������������C���s ���t�|�j�S�r���)r}���r+��r$���r"���r"���r#���r���U��s����zConverterMapping.__len__N)r&���r'���r(���rw���rx���r-��r���r����r����r����r��r���r"���r"���r"���r#���r�����s��� r���)(�collections.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>����sL��� +HJ&������ F