
­­­­­­­­­­­­­­­­­­
<!DOCTYPE html>
<html>
3
^R                 @   s^   d dl mZmZ ddlmZ ddlmZmZ edddgZee	Z
dd	 ZG d
d deZdS )    )defaultdict
namedtuple   )DiffResultDescriptor)
DifferenceSymbolWrapperZmodified_booleanZadded_stateZremoved_statec             C   s:   yt |  | S  tk
r4   t|}|t |  |< |S X dS )z
    Wrap booleans from the specified policy.

    This caches results to prevent duplicate wrapper
    objects in memory.
    N)_bool_cacheKeyErrorr   )ZpolicyZbooleanb r   /usr/lib64/python3.6/bool.pyboolean_wrapper   s    r   c               @   s8   e Zd ZdZedZedZedZdd Zdd Z	dS )BooleansDifferencezADetermine the difference in type attributes between two policies.diff_booleansc             C   s   | j jdj|  | jdd | jj D dd | jj D \| _| _}t	 | _
x0|D ](\}}|j|jkrVt|j|j| j
|< qVW dS )z@Generate the difference in type attributes between the policies.zGGenerating Boolean differences from {0.left_policy} to {0.right_policy}c             s   s   | ]}t |V  qd S )N)r   ).0r
   r   r   r   	<genexpr>>   s    z3BooleansDifference.diff_booleans.<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boolsZright_policyadded_booleansremoved_booleansdictmodified_booleansstatemodified_bool_record)selfZmatched_booleansZleft_booleanZright_booleanr   r   r   r   6   s    
 z BooleansDifference.diff_booleansc             C   s"   | j jd d| _d| _d| _dS )z%Reset diff results on policy changes.zResetting Boolean differencesN)r   debugr   r   r   )r   r   r   r   _reset_diffM   s    zBooleansDifference._reset_diffN)
__name__
__module____qualname____doc__r   r   r   r   r   r   r   r   r   r   r   .   s   r   N)collectionsr   r   Zdescriptorsr   
differencer   r   r   r   r   r   r   r   r   r   r   <module>   s   