HEX
Server: Apache
System: Linux ns517114.ip-158-69-26.net 6.12.0-124.55.3.el10_1.x86_64 #1 SMP PREEMPT_DYNAMIC Thu May 7 16:54:02 EDT 2026 x86_64
User: urgentelectrical (1063)
PHP: 8.2.33
Disabled: exec,passthru,shell_exec,system
Upload Files
File: //lib64/python3.12/site-packages/setools/diff/__pycache__/nodecon.cpython-312.pyc
�

���i�
���ddlmZddlmZmZddlmZddlmZddl	m
Z
mZmZedd�	�Gd
�de��Z
Gd�d
e
�ZGd�dee�Zy)�)�	dataclass�)�Context�Nodecon�)�ContextWrapper)�DiffResultDescriptor)�
Difference�DifferenceResult�WrapperT)�frozen�orderc�0�eZdZUdZeed<eed<eed<y)�ModifiedNodeconz+Difference details for a modified netifcon.�rule�
added_context�removed_contextN)�__name__�
__module__�__qualname__�__doc__r�__annotations__r���;/usr/lib64/python3.12/site-packages/setools/diff/nodecon.pyrrs��6�
�M����rrc�b�eZdZdZdd�Zeee�Zeee�Zee	e�Z
dd�Zy)�NodeconsDifferencez:Determine the difference in nodecons between two policies.Nc�6�|jjd|j�d|j���|j	d�|jj�D�d�|jj�D��\|_|_}tt�|_
|D]k\}}t|j�t|j�k7s�2|jjt||j|j���my)z9Generate the difference in nodecons between the policies.z$Generating nodecon differences from z to c3�2K�|]}t|����y�w�N��NodeconWrapper��.0�ns  r�	<genexpr>z3NodeconsDifference.diff_nodecons.<locals>.<genexpr>$s����D�(C�1�^�A�
�(C���c3�2K�|]}t|����y�wr r!r#s  rr&z3NodeconsDifference.diff_nodecons.<locals>.<genexpr>%s����E�(D�1�^�A�
�(D�r'N)�log�info�left_policy�right_policy�	_set_diff�nodecons�added_nodecons�removed_nodecons�listr�modified_nodeconsr�context�append)�self�matched_nodecons�left_nodecon�
right_nodecons    r�
diff_nodeconsz NodeconsDifference.diff_nodeconss���	
���
�
�2�4�3C�3C�2D�D��IZ�IZ�H[�\�	^�HL�~�~�D��(8�(8�(A�(A�(C�D�E��(9�(9�(B�(B�(D�E�HG�D���T�2�4D�"&�o�!6�!8���+;�'�L�-��l�2�2�3�~�m�F[�F[�7\�\��&�&�-�-�o�l�>K�>S�>S�>J�>R�>R�/T�U�	,<rc�F�|jjd�|`|`|`y)z%Reset diff results on policy changes.zResetting nodecon differencesN)r)�debugr/r0r2�r5s r�_reset_diffzNodeconsDifference._reset_diff8s%�������6�7����!��"r)�returnN)rrrrr9r	rr/r0rr2r=rrrrrsJ��D�U�(3�)�'�2�=�A�N�4�+�G�4�]�C��=�,�_�=�m�L��
#rrc�6�eZdZdZdZdeddfd�Zd�Zd�Zd	�Z	y)
r"z*Wrap nodecon statements for diff purposes.��
ip_version�network�oconr>Nc�v�||_|j|_|j|_t|�|_yr )�originrArB�hash�key)r5rCs  r�__init__zNodeconWrapper.__init__Fs*������/�/����|�|�����:��rc��|jSr )rGr<s r�__hash__zNodeconWrapper.__hash__Ls���x�x�rc�4�|j|jkSr )rE�r5�others  r�__lt__zNodeconWrapper.__lt__Os���{�{�U�\�\�)�)rc�j�|j|jk(xr|j|jk(Sr r@rLs  r�__eq__zNodeconWrapper.__eq__Rs.�����%�"2�"2�2�*��L�L�E�M�M�)�	*r)
rrrr�	__slots__rrHrJrNrPrrrr"r"@s,��4�)�I��W�����*�*rr"N)�dataclassesr�	policyreprrr3r�descriptorsr	�
differencer
rrrrr"rrr�<module>rVsZ��"�(�#�-�=�=��$�d�#��&��$��$#��$#�N*�W�W�%�*r