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__/mls.cpython-312.pyc
�

���i>)���UddlmZddlmZddlmZmZmZmZm	Z	ddl
mZddlm
Z
mZmZmZddlmZee�Zeeed	<ee�Zee	ed
<edd��Gd
�de��Zedd��Gd�de��Zedd��Gd�de��Zdedeefd�Zde	dee	fd�ZGd�de
�ZGd�de
�ZGd�de
�ZGd�dee�ZGd �d!ee�Z Gd"�d#ee�Z!y$)%�)�defaultdict)�	dataclass�)�Category�Level�	LevelDecl�Range�Sensitivity�)�DiffResultDescriptor)�
Difference�DifferenceResult�
SymbolWrapper�Wrapper)�SymbolCache�_cats_cache�_sens_cacheT)�frozen�orderc�L�eZdZUdZeed<eeed<eeed<eeed<y)�ModifiedCategoryz+Difference details for a modified category.�category�
added_aliases�removed_aliases�matched_aliasesN)�__name__�
__module__�__qualname__�__doc__r�__annotations__�set�str���7/usr/lib64/python3.12/site-packages/setools/diff/mls.pyrrs+��6����s�8����X����X�r$rc�L�eZdZUdZeed<eeed<eeed<eeed<y)�ModifiedSensitivityz.Difference details for a modified sensitivity.�sensitivityrrrN)rrrrr
r r!r"r#r$r%r'r's+��9����s�8����X����X�r$r'c�L�eZdZUdZeed<eeed<eeed<eeed<y)�ModifiedLevelDeclz4Difference details for a modified level declaration.�level�added_categories�removed_categories�matched_categoriesN)rrrrrr r!rr#r$r%r*r*)s+��?����(�m�#��H�
�%��H�
�%r$r*r�returnc��	t|j|S#t$r&t|�}|t|j|<|cYSwxYw)z
    Wrap category from the specified policy.

    This caches results to prevent duplicate wrapper
    objects in memory.
    )r�policy�KeyErrorr)r�cs  r%�category_wrapper_factoryr44sL����8�?�?�+�H�5�5�����(�#��12��H�O�O�$�X�.�������,A�Ar(c��	t|j|S#t$r&t|�}|t|j|<|cYSwxYw)z�
    Wrap sensitivity from the specified policy.

    This caches results to prevent duplicate wrapper
    objects in memory.
    )rr1r2r)r(r3s  r%�sensitivity_wrapper_factoryr7CsP����;�-�-�.�{�;�;�����+�&��78��K�&�&�'��4����r5c�b�eZdZdZdd�Zeee�Zeee�Zee	e�Z
dd�Zy)�CategoriesDifferencez<Determine the difference in categories between two policies.Nc	�*�|jjd|j�d|j���|j	d�|jj�D�d�|jj�D��\|_|_}tt�|_
|D]e\}}|j	|j�|j�d��\}}}|s|s�?|jjt||||���gy)z;Generate the difference in categories between the policies.z%Generating category differences from � to c3�2K�|]}t|����y�w�N�r4��.0r3s  r%�	<genexpr>z7CategoriesDifference.diff_categories.<locals>.<genexpr>]s����P�2O�Q�
%�a�
(�2O���c3�2K�|]}t|����y�wr=r>r?s  r%rAz7CategoriesDifference.diff_categories.<locals>.<genexpr>^s����Q�2P�Q�
%�a�
(�2P�rBF��unwrapN)
�log�info�left_policy�right_policy�	_set_diff�
categoriesr,r-�listr�modified_categories�aliases�append)�selfr.�
left_category�right_categoryrrrs       r%�diff_categoriesz$CategoriesDifference.diff_categoriesVs��	
���
�
�3�D�4D�4D�3E�T�$�J[�J[�I\�]�	_�NR�^�^�P�$�2B�2B�2M�2M�2O�P�Q�$�2C�2C�2N�2N�2P�Q�NS�J���t�6�8J�$(�(8�#9�#;�� �-?�)�M�>�?C�n�n��%�%�'��)?�)?�)A�%�?M�?Q�;�M�?�O����(�(�/�/�0@��AN�AP�AP�1R�S�.@r$c�F�|jjd�|`|`|`y)�%Reset diff results on policy changes.zResetting category differencesN)rF�debugr,r-rM�rPs r%�_reset_diffz CategoriesDifference._reset_diffus%�������7�8��!��#��$r$�r/N)rrrrrSrrr,r-rrMrXr#r$r%r9r9RsL��F�S�06�+�H�5�o�F��7�-�h�7��H��@�.�/?�@��Q��
%r$r9c�b�eZdZdZdd�Zeee�Zeee�Zee	e�Z
dd�Zy)�SensitivitiesDifferencez?Determine the difference in sensitivities between two policies.Nc	�*�|jjd|j�d|j���|j	d�|jj�D�d�|jj�D��\|_|_}tt�|_
|D]e\}}|j	|j�|j�d��\}}}|s|s�?|jjt||||���gy)z>Generate the difference in sensitivities between the policies.z(Generating sensitivity differences from r;c3�2K�|]}t|����y�wr=�r7�r@�ss  r%rAz=SensitivitiesDifference.diff_sensitivities.<locals>.<genexpr>�s����Z�9Y�A�,�Q�/�9Y�rBc3�2K�|]}t|����y�wr=r^r_s  r%rAz=SensitivitiesDifference.diff_sensitivities.<locals>.<genexpr>�s����[�9Z�A�,�Q�/�9Z�rBFrDN)
rFrGrHrIrJ�
sensitivities�added_sensitivities�removed_sensitivitiesrLr'�modified_sensitivitiesrNrO)rP�matched_sensitivities�	left_sens�
right_sensrrrs       r%�diff_sensitivitiesz*SensitivitiesDifference.diff_sensitivities�s
��	
���
�
�6�t�7G�7G�6H��T�M^�M^�L_�`�	b�
�N�N�Z��9I�9I�9W�9W�9Y�Z�[��9J�9J�9X�9X�9Z�[�
]�	T�� �$�"<�>S�
'+�+>�&?�&A��#�%:�!�I�z�?C�n�n��!�!�#�Z�%7�%7�%9�%�?M�?I�;�M�?�O����+�+�2�2�3F�y�GT�GV�GV�4X�Y�&;r$c�F�|jjd�|`|`|`y�rUz!Resetting sensitivity differencesN)rFrVrcrdrerWs r%rXz#SensitivitiesDifference._reset_diff�s%�������:�;��$��&��'r$rY)rrrrrirr
rcrdr'rerXr#r$r%r[r[}sO��I�Y�2<�.�{�;�<N�O��=�0��=�>P�Q��F�1�2E�F�GY�Z��
(r$r[c�b�eZdZdZdd�Zeee�Zeee�Zee	e�Z
dd�Zy)�LevelDeclsDifferencez8Determine the difference in levels between two policies.Nc	�B�|jjd|j�d|j���|j	d�|jj�D�d�|jj�D��\|_|_}tt�|_
|D]q\}}|j	d�|j�D�d�|j�D��\}}}|s|s�K|jjt||||���sy)z7Generate the difference in levels between the policies.z'Generating level decl differences from r;c3�2K�|]}t|����y�wr=��LevelDeclWrapperr_s  r%rAz3LevelDeclsDifference.diff_levels.<locals>.<genexpr>�s����H�.G��!�!�$�.G�rBc3�2K�|]}t|����y�wr=rpr_s  r%rAz3LevelDeclsDifference.diff_levels.<locals>.<genexpr>�s����I�.H��!�!�$�.H�rBc3�2K�|]}t|����y�wr=r>r?s  r%rAz3LevelDeclsDifference.diff_levels.<locals>.<genexpr>�s����N�6M��)�!�,�6M�rBc3�2K�|]}t|����y�wr=r>r?s  r%rAz3LevelDeclsDifference.diff_levels.<locals>.<genexpr>�s����O�6N��)�!�,�6N�rBN)
rFrGrHrIrJ�levels�added_levels�removed_levelsrLr*�modified_levelsrKrO)rP�matched_levels�
left_level�right_levelr,r-r.s       r%�diff_levelsz LevelDeclsDifference.diff_levels�s��	
���
�
�5�d�6F�6F�5G�t�D�L]�L]�K^�_�	a�
�N�N�H�d�.>�.>�.E�.E�.G�H�I�d�.?�.?�.F�.F�.H�I�
K�	?���4�.��
 $�$5�6�8���'5�#�J��HL�~�~�N�j�6K�6K�6M�N�O�k�6L�6L�6N�O�HQ�D��0�2D� �#5��$�$�+�+�,=�� 0�2D�FX�-Z�[�(6r$c�F�|jjd�|`|`|`yrk)rFrVrvrwrxrWs r%rXz LevelDeclsDifference._reset_diff�s%�������:�;������ r$rY)rrrrr|rrrvrwr*rxrXr#r$r%rmrm�sI��B�[�03�'�	�2�;�?�L�4�)�)�4�[�A�N�=�*�+<�=�k�J�O�
!r$rmc�6�eZdZdZdZdeddfd�Zd�Zd�Zd	�Z	y)
rqz-Wrap level declarations to allow comparisons.�r(r+r/Nc�f�||_t|j�|_t|�|_yr=)�originr7r(�hash�key�rPr+s  r%�__init__zLevelDeclWrapper.__init__�s'�����6�u�7H�7H�I�����;��r$c��|jSr=)r�rWs r%�__hash__zLevelDeclWrapper.__hash__�s���x�x�r$c�4�|j|jk(Sr=r�rP�others  r%�__eq__zLevelDeclWrapper.__eq__�s�����5�#4�#4�4�4r$c�4�|j|jkSr=rr�s  r%�__lt__zLevelDeclWrapper.__lt__�s�����%�"3�"3�3�3r$)
rrrr�	__slots__rr�r�r�r�r#r$r%rqrq�s,��7� �I��i��D��
�5�
4r$rqc�6�eZdZdZdZdeddfd�Zd�Zd�Zd	�Z	y)
�LevelWrapperz!Wrap levels to allow comparisons.)r(rKr+r/Nc��||_t|j�|_td�|j	�D��|_y)Nc3�2K�|]}t|����y�wr=r>r?s  r%rAz(LevelWrapper.__init__.<locals>.<genexpr>�s����V�CU�a�6�q�9�CU�rB)r�r7r(r!rKr�s  r%r�zLevelWrapper.__init__�s7�����6�u�7H�7H�I����V�5�CS�CS�CU�V�V��r$c�,�t|j�Sr=�r�r�rWs r%r�zLevelWrapper.__hash__�����D�K�K� � r$c��	|j|jk(xr|j|jk(S#t$rYywxYw�NF�r(rK�AttributeErrorr�s  r%r�zLevelWrapper.__eq__�sK��	��#�#�u�'8�'8�8�4����5�#3�#3�3�
4���	��	���36�	A�Ac��	|j|jkxr|j|jkS#t$rYywxYwr�r�r�s  r%r�zLevelWrapper.__lt__sK��	��#�#�e�&7�&7�7�3����%�"2�"2�2�
3���	��	�r�)
rrrrr�rr�r�r�r�r#r$r%r�r��s/��+�-�I�W�e�W��W�
!��r$r�c�6�eZdZdZdZdeddfd�Zd�Zd�Zd	�Z	y)
�RangeWrapperz�
    Wrap ranges to allow comparisons.

    This only compares the low and high levels of the range.
    It does not detect additions/removals/modifications
    to levels between the low and high levels of the range.
    )�low�high�range_r/Nc�z�||_t|j�|_t|j�|_yr=)r�r�r�r�)rPr�s  r%r�zRangeWrapper.__init__s)�������
�
�+��� ����-��	r$c�,�t|j�Sr=r�rWs r%r�zRangeWrapper.__hash__r�r$c��	|j|jk(xr|j|jk(S#t$rYywxYwr��r�r�r�r�s  r%r�zRangeWrapper.__eq__ sE��	��8�8�u�y�y�(�(��	�	�U�Z�Z�'�
(���	��	�r�c��	|j|jkxr|j|jkS#t$rYywxYwr�r�r�s  r%r�zRangeWrapper.__lt__)sE��	��8�8�e�i�i�'�'��	�	�E�J�J�&�
'���	��	�r�)
rrrrr�r	r�r�r�r�r#r$r%r�r�s0��� �I�.�u�.��.�
!��r$r�N)"�collectionsr�dataclassesr�	policyreprrrr	r
�descriptorsr�
differencer
rrr�typingr�dictrr rrr'r*r4r7r9r[rmrqr�r�r#r$r%�<module>r�s9��$�!�F�F�-�L�L��%0��%6��[��
"�6�(3�D�(9��[��
%�9��$�d�#��'��$���$�d�#��*��$���$�d�#�&�(�&�$�&��x��M�(�4K���[��]�;�=W��(%�:�(%�V)(�j�)(�X(!�:�(!�V4�w�y�)�4�.�7�5�>��B$�7�5�>�$r$