HOME


Mini Shell 1.0
Redirecting to https://devs.lapieza.net/iniciar-sesion Redirecting to https://devs.lapieza.net/iniciar-sesion.
DIR: /lib/python3/dist-packages/fail2ban/client/__pycache__/
Upload File :
Current File : //lib/python3/dist-packages/fail2ban/client/__pycache__/configparserinc.cpython-311.pyc
�

�BdL3���dZdZdZddlZddlZddlZddlmZejdkrddl	m
ZmZm
Z
mZmZGd	�d
e��Zn"ddl	mZm
Z
mZmZeje_d�Zee_d
�Zee��ZdZdgZGd�de��ZdS)z0Yaroslav Halchenko, Serg G. Brester (aka sebres)zHCopyright (c) 2007 Yaroslav Halchenko, 2015 Serg G. Brester (aka sebres)�GPL�N�)�	getLogger)�)�ConfigParser�BasicInterpolation�InterpolationMissingOptionError�
NoOptionError�NoSectionErrorc�"��eZdZdZ�fd�Z�xZS)�BasicInterpolationWithNamea�Decorator to bring __name__ interpolation back.

		Original handling of __name__ was removed because of
		functional deficiencies: http://bugs.python.org/issue10489

		commit v3.2a4-105-g61f2761
		Author: Lukasz Langa <lukasz@langa.pl>
		Date:	Sun Nov 21 13:41:35 2010 +0000

		Issue #10489: removed broken `__name__` support from configparser

		But should be fine to reincarnate for our use case
		c����|rct|vr\|���}||d<|�||||��tt|��j||||||g|�Ri|��SdSdS�N�__name__)r�copy�_map_section_options�superr
�_interpolate_some)
�self�parser�option�accum�rest�section�map�args�kwargs�	__class__s
         ��A/usr/lib/python3/dist-packages/fail2ban/client/configparserinc.pyrz,BasicInterpolationWithName._interpolate_some6s����
�A�x�3���

�(�(�*�*�C��C�
�O�
������s�;�;�;�D�5�+�T�2�2�D��V�U�D�'�3�A�15�A�A�A�9?�A�A�A�A�A���)r�
__module__�__qualname__�__doc__r�
__classcell__�rs@rr
r
(sK���������A�A�A�A�A�A�A�A�Ar r
)�SafeConfigParserr	r
rc�\�|�||||��|j|||||g|�Ri|��S�N)r�_cp_interpolate_some)rrrrrrrrs        rrrFsG�����G�V�T�3�7�7�7�	"��	"�6�5�$���	V�t�	V�	V�	V�v�	V�	V�Vr c��g}|D]w}|�|��tj�|��ddz}||vr4tj�|��r|�|���x|S)z,Expands config files with local extension.
	rz.local)�append�os�path�splitext�isfile)�	filenames�newFilenames�filename�	localnames    r�_expandConfFilesWithLocalr4Ls������"�"�X����h�����g���x�(�(��+�h�6�)��i���B�G�N�N�9�$=�$=�����y�!�!�!���r ��SafeConfigParserWithIncludesc���eZdZdZdZejd��Zejd��Zejd��Z	e
jdkrd�fd�	Zndd	�Zd
ifd�Z
d�Zed
���Zd�Zgfd�Zgfd�Zd�Zd�Zdd�Zdd�Zdd�Z�xZS)r6a
	Class adds functionality to SafeConfigParser to handle included
	other configuration files (or may be urls, whatever in the future)

	File should have section [includes] and only 2 options implemented
	are 'files_before' and 'files_after' where files are listed 1 per
	line.

	Example:

[INCLUDES]
before = 1.conf
         3.conf

after = 1.conf

	It is a simple implementation, so just basic care is taken about
	recursion. Includes preserve right order, ie new files are
	inserted to the list of read configs before original, and their
	includes correspondingly so the list should follow the leaves of
	the tree.

	I wasn't sure what would be the right way to implement generic (aka c++
	template) so we could base at any *configparser class... so I will
	leave it for the future

	�INCLUDESz^([\w\-]+)/([^\s>]+)$z%\(([\w\-]+/([^\)]+))\)sz
^(\w+)(\?.+)$�rrNc���|���}t��|d<d|d<tt|��j|i|��||_dS)N�
interpolation�;�inline_comment_prefixes)rr
rr6�__init__�
_cfg_share)r�share_configrrrs    �rr>z%SafeConfigParserWithIncludes.__init__�sc����K�K�M�M�6�7�9�9�6�/��'*�6�
#�$�5�5�	%�t�,�,�5�	��
����!�4�?�?�?r c�>�tj|g|�Ri|��||_dSr()r&r>r?)rr@rrs    rr>z%SafeConfigParserWithIncludes.__init__�s.����T�3�D�3�3�3�F�3�3�3�!�4�?�?�?r Fc��d}d|vrtj�|��}|r�|�d��}|�d��}|���}|dkrd|z|f}n|dkr|fnd}|D]<}	|�|||�	��}	|	cS#ttf$r
}
Yd}
~
�5d}
~
wwxYw|�||||�
��}	|	S)z�Get an option value for a given section.
		
		In opposite to `get`, it differentiate session-related option name like `sec/opt`.
		N�/�r�known�KNOWN/�default)�DEFAULT)�raw)rI�vars)r6�SECTION_OPTNAME_CRE�search�group�lower�getrr
)rrrrIrJ�sopt�sec�opt�seclwr�v�es           r�get_exz#SafeConfigParserWithIncludes.get_ex�s��

�$��F�]�]�
&�
:�
A�
A�&�
I�
I�4�	�
�	
���A���3�	
���A���3��I�I�K�K�6������W��g�&�D�D��y�(�(�C�6�6�l�D��
�
�s�
�	
���#�s���	$�	$�Q�
�X�X�X���M�*�
�
�
�	�T�T�T�T�����
�����h�h�w��C�d�h�3�3�!�	
�(s�B � B;�6B;c�f�d|vsd|vrdSd}tj�|��}|sdS|D]�\}}||vr�|dt|���}	|	���}
|
dkrmd}|
dkr*	|jd|z|}nO#t$rd}YnAwxYw		|j|	}	n#t$rY��wxYw|	|}n#t$rd}YnwxYwd}|r	|j|}n#t$rY��wxYwd}	|||<��#	||jd|<n#||j|<YnxYwY��xYw��|S)	z�
		Interpolates values of the section options (name syntax `%(section/option)s`).

		Fallback: try to wrap missing default options as "default/options" resp. "known/options"
		rCz%(rNrGrErFrD)	r6�SECTION_OPTSUBST_CRE�findall�lenrN�	_sections�KeyError�	_defaults�_maps)
rrrr�defaults�rplcmnt�soptreprPrRrQrS�usedefrTs
             rrz1SafeConfigParserWithIncludes._map_section_options�s���	��_�_��D�(�(�
�!�
�'�(�=�E�E�d�K�K�'�	��
�!��*�*�i�d�C�
�(���
�z��S���	�z�
�C�
�Y�Y�[�[�F�
�����V��'�����>�(�7�*�+�C�0�q�q��
�����v�v�v�����
	���n�S�!���������������s�8�q�q��
�����v�v�v������V�
���
�.��
�a�a�������h������G���X�d�^�^���� !�h�n�Q��������d�n�T������������S�T
�.sx�6B
�
B�B�!
B/�.C�/
B<�9C�;B<�<C�C�C�
C-�-
C:�9C:�D�D-�	D�D-�D(�&D-c��|jSr()r?�rs rr@z)SafeConfigParserWithIncludes.share_config�s
��	
��r c��t}|jr�dt|t��s|nd�|��z}|j�|d��\}}|�5||j���}|�|d���}||f|j|<net���tkr!t�
td|��n!|��}|�|d���}||fS)Nzinc:�)NN)r@F)�get_includesz    Shared file: %s)r6r?�
isinstance�list�joinrO�read�logSys�getEffectiveLevel�logLevel�log)rr2�SCPWI�hashv�cfg�is      r�_getSharedSCPWIz,SafeConfigParserWithIncludes._getSharedSCPWI�s���
&�%�	�_�
.��:�h��#=�#=�X�8�8�6�;�;�x�CX�CX�Y�5��O����|�4�4�6�3��	�k�
�%�T�_�
-�
-�
-�C�������.�.�A�!�1�X�D�O�E���� � �"�"�h�.�.�
�J�J�x�.��9�9�9��
����3�
�x�x��u�x�-�-�1�

�q��/r c�b�t|t��s|g}t|��}|jr`dd�|��z}|j�|��}|�*g}|D]}||�||��z
}�||j|<|Sg}|D]}||�||��z
}�|S)Nz	inc-path:rf)rhrir4r?rjrO�2_SafeConfigParserWithIncludes__getIncludesUncached)rr0�seenrq�
fileNamesFullr2s      r�_getIncludesz)SafeConfigParserWithIncludes._getIncludess���	�I�t�	$�	$���}�9�'�	�2�2�)�	�_�	�����I�.�.�/�5��?�&�&�u�-�-�=����M��A�A���d�0�0��4�@�@�@�]�]�*�D�O�E��
���-��?�?�h��D�.�.�x��>�>�>�=�=�	�r c��t}	|�|��\}}|sgSn9#t$r,}t�d|�d|����gcYd}~Sd}~wwxYwt
j�|��}dgfdgfg}|j|�	��vr�|D]�\}	}
|	|�
|j��vr�|�|j|	��}|�d��D]h}t
j�
|��r|}
n t
j�||��}
|
|vr�I||gz}|
|�|
|��z
}
�i��|dd|gz|ddzS)	z�
		Given 1 config resource returns list of included files
		(recursively) with the original one as well
		Simple loops are taken care about
		zError decoding config file 'z': N�before�after�
rrD)r6rt�UnicodeDecodeErrorrl�errorr,r-�dirname�SECTION_NAME�sections�optionsrO�split�isabsrjry)r�resourcerwrprrsrU�resourceDir�newFiles�option_name�option_list�newResources�newResource�r�ss               r�__getIncludesUncachedz2SafeConfigParserWithIncludes.__getIncludesUncacheds���'�%�
��#�#�H�-�-�9�6�1�
��
�I���	�
�
�
�	�<�<�<����1�1�E�F�F�F�
�9�9�9�9�9�9�����
���������)�)�+��"�~���}�
.�(�
��6�?�?�,�,�,�,�#+�-�-��{�K��f�n�n�U�%7�8�8�8�8��J�J�u�1�;�?�?�\�$�*�*�4�0�0�-�-��	����{�	#�	#�2��q�q�
�7�<�<��[�1�1�q�	
�d����
�(��
�a��T�&�&�q�!�,�,�,�k�k��	�!��Q��8�*�	$�x��{�1�~�	5�5s�&�
A�!A�A�Ac��|jSr()r]rds r�get_defaultsz)SafeConfigParserWithIncludes.get_defaults7�
��	
��r c��|jSr()r[rds r�get_sectionsz)SafeConfigParserWithIncludes.get_sections:r�r Tc��	|j|}n#t$rt|���wxYw|r6t|�����t|j��zSt
|�����S)z�Return a list of option names for the given section name.

		Parameter `withDefault` controls the include of names from section `[DEFAULT]`
		)r[r\r�set�keysr]ri)rr�withDefault�optss    rr�z$SafeConfigParserWithIncludes.options=s���
!�
�.��
!�4�4��	�!�!�!�	��	 �	 � �!�����1�

�d�i�i�k�k�
�
�S���0�0�
0�0�	
�d�i�i�k�k�	�	�s�
�*c����t|t��s|g}g}|r||�|��z
}n|}|sgSt�d|��|st|��dk�r�g}|���}|���}|D�]�}|�|��\}}	|	�r�||	z
}|�	|�����|����
��D�]R\}
�tj�
|
��}|r�|���\}
}�����	�d=n#t $rYnwxYwt������D]}��|��}
|
�||z<� |�|
��}t|t(��ri|�d|
zt)�fd�t-|�
����D����d��|�	�����;����||
<��T���|St���t0kr't�t0d|d��t4jd	krt9j||d
���St9j||��S)Nz  Loading files: %srDrrFc�(��g|]}|d�v�|��S)r�)�.0rsr�s  �r�
<listcomp>z5SafeConfigParserWithIncludes.read.<locals>.<listcomp>xs"���
7�
7�
7�A�Q�q�T�Q�Y�Y�a�Y�Y�Yr �z    Reading file: %srr9zutf-8)�encoding)rhriryrl�inforZr�r�rt�update�itemsr6�CONDITIONAL_RE�match�groupsrr\r��poprO�dict�
merge_section�iterrmrnro�sys�version_infor&rk)rr0rgrx�ret�alld�allsr2rrrs�n�cond�krT�s2r�s               @rrkz!SafeConfigParserWithIncludes.readLs����	�I�t�	$�	$���}�9��-����D�%�%�i�0�0�0�=�=��=�	�
�
�9��+�+�#�]�3�3�3��#�S��'�'�!�+�+�	�3�
�
�
�
�
�4�
�
�
�
�
�4� ���x�
�
!�
!�(�
+�
+�F�C�����A�X�S�	�[�[��!�!�#�#�$�$�$��!�!�#�#�)�)�+�+�����A�
)�
8�
>�
>�q�
A�
A�d�	
�	������w�q�$��6�6�8�8�q�
�
�j�M�M���
�
�
���
�����Q�V�V�X�X�����1�
�E�E�!�H�H����!�d�(����8�8�A�;�;�b�	�B��	�	�����(�1�*��
7�
7�
7�
7��b�h�h�j�j�)�)�
7�
7�
7�8�8�"�>�>�>�
�y�y��|�|�|�|������t�A�w�w��

�:������8�+�+�	�:�:�h�.�
�a�0@�A�A�A������
�
��m�g�
F�
F�
F�F�
�
��m�
4�
4�4s�E!�!
E.�-E.c�b�|���}	||}n##t$rt��x||<}YnwxYw|s|�|��dSi}|���D](\}}|�|��s|dkr||||z<�)|�|��dSr)r�r\r�r�r��
startswith)	rrr��prefr�rQ�skr�rTs	         rr�z*SafeConfigParserWithIncludes.merge_section�s���	
�	�	�	�	�$� �	
�g��3�3��	� � � �����4��=�3�3�3� ����	
�
��:�:�g����	�6�	�"��m�m�o�o���d�a��
�,�,�t�
�
���j����B�t�A�v�J���*�*�R�.�.�.�.�.s��?�?r()T)rr!r"r#r��re�compilerKrXr�r�r�r>rVr�propertyr@rtryrvr�r�r�rkr�r$r%s@rr6r6_s����������8��!�r�z�":�;�;��"��
�#>�?�?���"�*�-�.�.�������"�"�"�"�"�"�"�"�"�"�"�(-�2�����:7�7�7�r����(�����&)+�����*13� 6� 6� 6� 6�D������
�
�
�
�;5�;5�;5�;5�z
�
�
�
�
�
�
�
r )�
__author__�
__copyright__�__license__r,r�r��helpersrr��configparserrr&rr	r
rr
rr)r4rrlrn�__all__r6r�r r�<module>r�s���.@�
�Z�
���	�	�	�	�	�	�	�	�
�
�
�
���������t���A�A�A�A�A�A�A�A�A�A�A�A�A�A�
A�A�A�A�A�"4�A�A�A�A�2A�A�A�A�A�A�A�A�A�A�A�A�*:�)K��&�W�W�W�'8��#�	�	�	�
��8�	�	����*�
*��w�w�w�w�w�#3�w�w�w�w�wr