a qéqeÑã@sdddlmZddlmZddlmZddlmZddlm Z m Z Gdd „d eƒZ Gd d „d e ƒZ d S) é)Ú NamedTupleé)ÚContexté)ÚContextWrapper)ÚDiffResultDescriptor)Ú DifferenceÚ SymbolWrapperc@s"eZdZUdZeed<eed<dS)ÚModifiedInitialSIDz.Difference details for a modified initial SID.Z added_contextZremoved_contextN)Ú__name__Ú __module__Ú __qualname__Ú__doc__rÚ__annotations__©rrú:/usr/lib64/python3.9/site-packages/setools/diff/initsid.pyr s r c@sDeZdZdZedƒZedƒZedƒZddœdd„Zddœdd„Z dS) ÚInitialSIDsDifferencez:Determine the difference in initsids between two policies.Údiff_initialsidsN)ÚreturncCsŠ|j d |¡¡| dd„|j ¡Dƒdd„|j ¡Dƒ¡\|_|_}t ƒ|_ |D]0\}}t |j ƒt |j ƒkrTt |j |j ƒ|j |<qTdS)z=Generate the difference in initial SIDs between the policies.zKGenerating initial SID differences from {0.left_policy} to {0.right_policy}css|]}t|ƒVqdS©N©r ©Ú.0ÚirrrÚ %óz9InitialSIDsDifference.diff_initialsids..css|]}t|ƒVqdSrrrrrrr&rN)ÚlogÚinfoÚformatZ _set_diffZ left_policyZ initialsidsZ right_policyÚadded_initialsidsÚremoved_initialsidsÚdictÚmodified_initialsidsrÚcontextr )ÚselfZmatched_initialsidsZleft_initialsidZright_initialsidrrrrs ÿþ ÿz&InitialSIDsDifference.diff_initialsidscCs"|j d¡d|_d|_d|_dS)z%Reset diff results on policy changes.z Resetting initialsid differencesN)rÚdebugrr r")r$rrrÚ _reset_diff4s z!InitialSIDsDifference._reset_diff) r r r rrrr r"rr&rrrrrs rN) ÚtypingrZ policyreprr#rZ descriptorsrÚ differencerr r rrrrrÚs