+
    ,ih  c                   s   a  R t0 t ^ RIt^RIHtHt ^RIHt ^RIHt ^RI	H
t
HtHt Rt] ^ k Rt] ^k Rt] ^k R	t] ^k R
t] ^k Rt] ^k Rt] ^k Rt] ^k Rt] ^k  ! R R]4      tR# )i    N)	exception	policyrep)TERuleQuery)CheckerModule)ConfigDescriptorConfigSetDescriptorConfigPermissionSetDescriptorsourcetargettclasspermsexempt_sourceexempt_targetexpect_sourceexpect_targetAssertTEc            
       s  a a ] tR t^t oRtRt]! ]]]	]
]]]]34      t]]P$                  ,          ! R4      t]]P$                  ,          ! R4      t]]P,                  ,          ! RRRR7      t]! 4       t]]P4                  ,          ! RRRR7      t]]P4                  ,          ! RRRR7      t]]P4                  ,          ! RRRR7      t]]P4                  ,          ! RRRR7      tV3R lV 3R	 lltV3R
 lR lt Rt!Vt"V ;t## )r   zKChecker module for asserting a type enforcement allow rule exists (or not).Z	assert_teZlookup_type_or_attrZlookup_classTF)Zstrictexpandc                sZ   < V ^8  d   QhRS[ P                  RS[RS[S[S[3,          RR/# )   policy	checknameconfigreturnN)r   ZSELinuxPolicystrZdictformat__classdict__   "?/usr/lib64/python3.14/site-packages/setools/checker/assertte.py__annotate__AssertTE.__annotate__4   s?     X Xy66 X3 Xc3hX,0X    c                s  < \         SV `  WV4       VP                  \        4      V n        VP                  \
        4      V n        VP                  \        4      V n        VP                  \        4      V n
        VP                  \        4      V n        VP                  \        4      V n        VP                  \        4      V n        VP                  \"        4      V n        \'        V P                  V P                  V P                  V P                  34      '       g   \(        P*                  ! R 4      hV P                  V P                   ,          pV'       d5   V P,                  P/                  RRP1                  R V 4       4       24       V P                  V P$                  ,          pV'       d7   V P,                  P/                  RRP1                  R V 4       4       24       R# R# )zEAt least one of source, target, tclass, or perms options must be set.z,Overlap in expect_source and exempt_source: z, c              3   8   "   T F  qP                   x  K  	  R # 5iNZnameZ.0Zi   & r   	<genexpr>$AssertTE.__init__.<locals>.<genexpr>I        &T7S!vv7S   z,Overlap in expect_target and exempt_target: c              3   r   r    r!   r"   r#   r   r$   r%   N   r&   r'   N)Zsuper__init__Zget
SOURCE_OPTr   
TARGET_OPTr   	CLASS_OPTr	   	PERMS_OPTr
   EXEMPT_SRC_OPTr   EXEMPT_TGT_OPTr   EXPECT_SRC_OPTr   EXPECT_TGT_OPTr   Zanyr    ZInvalidCheckValueloginfoZjoin)selfr   r   r   Zsource_exempt_expect_overlapZtarget_exempt_expect_overlap	__class__s   &&&&  r   r(   ZAssertTE.__init__4   sq    	F3jj,jj,jj+ZZ	*
#ZZ7#ZZ7#ZZ7#ZZ7DKKdkk4::FGG--WY Y (,'9'9D<N<N'N$'HHMMH!YY&T7S&TTUW X (,'9'9D<N<N'N$'HHMMH!YY&T7S&TTUW X (r   c                sT   < V ^8  d   QhRS[ S[P                  S[,          ,          /# )r   r   )Zlistr   Z	AnyTERuler   r   r   r   r   r   P   s$     ) )T)--34 )r   c           	     s8   V P                   P                  R 4       \        V P                  V P                  V P
                  V P                  V P                  RR7      p\        V P                  4      p\        V P                  4      p. p\        VP                  4       4       F  p\        VP                  P                  4       4      p\        VP
                  P                  4       4      pW&,          pW7,          pW`P                  ,
          V P                  ,
          '       dW   WpP                  ,
          V P                  ,
          '       d.   V P!                  \#        V4      4       VP%                  V4       K  V P'                  \#        V4      4       K  	  V F+  pRV R2p	V P!                  V	4       VP%                  V	4       K-  	  V F+  pRV R2p	V P!                  V	4       VP%                  V	4       K-  	  V P                   P)                  V R24       V# )z!Checking TE allow rule assertion.)r   r   r	   r
   ZruletypezExpected rule with source "z" not found.zExpected rule with target "z failure(s))Zallow)r1   r2   r   r   r   r   r	   r
   Zsetr   r   ZsortedZresultsr   r   r   Zlog_failr   ZappendZlog_okZdebug)
r3   ZqueryZunseen_sourcesZunseen_targetsZfailuresZruleZsrcsZtgtsZitemZfailures
   &         r   runZAssertTE.runP   s    	9:DKK#';;#';;#';;"&**%/1 T//0T//0465==?+Dt{{))+,Dt{{))+,D"N"N)))D,>,>>>...1C1CCCc$i(%CI& , #D4TF-HGMM'"OOG$ #
 #D4TF-HGMM'"OOG$ #
 	(;/0r   )r   r   r   r   r
   r   r   r	   )$Z__name__Z
__module__Z__qualname__Z__firstlineno__Z__doc__Z
check_typeZ	frozensetr)   r*   r+   r,   r-   r.   r/   r0   Zcheck_configr   r   Z
TypeOrAttrr   r   r   ZObjClassr	   r   r
   ZTyper   r   r   r   r(   r5   Z__static_attributes__Z__classdictcell__Z__classcell__)r4   r   s   @@r   r   r      s    UJj*iN,nnN OL i2234IJFi2234IJF !3!34^DY^_F)+E'	78M?D?CEM (	78M?D?CEM (	78M?C?CEM (	78M?C?CEMX X8) ) )r   c                s   V ^8  d   Qh/ ^ \         9   d   \        P                  \        ,          ;R&   ^\         9   d   \        P                  \        ,          ;R&   ^\         9   d   \        P                  \        ,          ;R&   ^\         9   d   \        P                  \        ,          ;R&   ^\         9   d   \        P                  \        ,          ;R&   ^\         9   d   \        P                  \        ,          ;R&   ^\         9   d   \        P                  \        ,          ;R&   ^\         9   d   \        P                  \        ,          ;R&   ^\         9   d,   \        P                  \        \        R	3,          ,          ;R
&   # )r   r)   r*   r+   r,   r-   r.   r/   r0   .__all__)__conditional_annotations__typingZFinalr   Ztuple)r   s   "r   r   r      s    ) (FLL (  ) (FLL (  ( '6<< '  ' &6<< &  4 3S! 3  4 3S! 3  4 3S! 3  4 3S! 3   7 6eCHo	& 6! r   )r   )r7   r8   Z r    r   Zterulequeryr   Zcheckermoduler   Zdescriptorsr   r   r   r)   r*   r+   r,   r-   r.   r/   r0   r6   r   r   )r7   s   @r   <module>r9      sr     # % ( ] ] (
 ( (
 ('	 '&	 &$3 3$3 3$3 3$3 3)6 6_} _r   