
­­­­­­­­­­­­­­­­­­
<!DOCTYPE html>
<html>
3
^	                 @   sV   d dl mZ ddlmZ ddlmZ ddlmZmZ edddgZ	G d	d
 d
eZ
dS )    )
namedtuple   )ContextWrapper)DiffResultDescriptor)
DifferenceSymbolWrapperZmodified_initsidZadded_contextZremoved_contextc               @   s8   e Zd ZdZedZedZedZdd Zdd Z	dS )InitialSIDsDifferencez:Determine the difference in initsids between two policies.diff_initialsidsc             C   s   | j jdj|  | jdd | jj D dd | jj D \| _| _}t	 | _
x8|D ]0\}}t|jt|jkrVt|j|j| j
|< qVW dS )z=Generate the difference in initial SIDs between the policies.zKGenerating initial SID differences from {0.left_policy} to {0.right_policy}c             s   s   | ]}t |V  qd S )N)r   ).0i r   /usr/lib64/python3.6/initsid.py	<genexpr>,   s    z9InitialSIDsDifference.diff_initialsids.<locals>.<genexpr>c             s   s   | ]}t |V  qd S )N)r   )r
   r   r   r   r   r   -   s    N)loginfoformatZ	_set_diffZleft_policyZinitialsidsZright_policyadded_initialsidsremoved_initialsidsdictmodified_initialsidsr   contextmodified_initsids_record)selfZmatched_initialsidsZleft_initialsidZright_initialsidr   r   r   r	   %   s    
 z&InitialSIDsDifference.diff_initialsidsc             C   s"   | j jd d| _d| _d| _dS )z%Reset diff results on policy changes.z Resetting initialsid differencesN)r   debugr   r   r   )r   r   r   r   _reset_diff;   s    z!InitialSIDsDifference._reset_diffN)
__name__
__module____qualname____doc__r   r   r   r   r	   r   r   r   r   r   r      s   r   N)collectionsr   r   r   Zdescriptorsr   
differencer   r   r   r   r   r   r   r   <module>   s
   