+
                                a  R t0 t ^ RIt^ RIt^ RIHtHt ^ RIHt ^ RIt^RI	H
t
 ^RIHt ^RIHtHtHt / t] ^ k Rt] ^k  ! R R	]4      t ! R
 R]R7      tR# )    N)ABCMetaabstractmethod)Mapping)InvalidCheckOption)SELinuxPolicy)CHECK_DESC_KEYCHECK_DISABLEGLOBAL_CONFIG_KEYSCheckerModulec                   6   a a ] tR t^t oRtV 3R ltRtVtV ;t# )CheckRegistryzQChecker module registry metaclass.  This registers modules in the check registry.c                  < VP                  R 4      pVP                  R4      pVR8w  d~   \        V\        4      '       g   \        RV R24      h\        V\        4      '       g   \        RV R24      hV\
        9   d)   \
        V,          P                  p\        RV RV 24      h\        SV `!  WW#4      pV'       d
   V\
        V&   V# )
check_typecheck_configr   zChecker module z does not set a check_type.z# does not set a valid check_config.z! conflicts with registered check )	get
isinstancestr	TypeError	frozensetCHECKER_REGISTRY__name__super__new__)	clsclsnamesuperclassesattributedictr   r   existing_check_moduleclassdef	__class__s	   &&&&    D/usr/lib64/python3.14/site-packages/setools/checker/checkermodule.pyr   CheckRegistry.__new__   s    "&&|4
$((8o%j#../':U VWWlI66/':] ^__--(8(D(M(M%%gY /((='>@A A 7?3M+3Z(     )	r   
__module____qualname____firstlineno____doc__r   __static_attributes____classdictcell____classcell__)r    __classdict__s   @@r!   r   r      s     [ r#   r   c                      a  ] tR t^4t o RtRt]P                  tV 3R lR lt	V 3R lR lt
V 3R lR ltV 3R	 lR
 lt]V 3R lR l4       tV 3R ltRtV tR# )r   z/Abstract base class for policy checker modules.Fc                F   < V ^8  d   QhRS[ RS[RS[S[S[3,          RR/# )   policy	checknameconfigreturnN)r   r   r   )formatr,   s   "r!   __annotate__CheckerModule.__annotate__K   s4     1 1} 1 1gcSVhFW 1\` 1r#   c                P   Wn         W n        \        P                  ! V P                  4      V n        \        V P                  ,          pV F#  pWT9  g   K  \        V P                   R V 24      h	  VP                  \        4      V n        VP                  \        4      V n        R# )z: Invalid option: N)r0   r1   logging	getLoggerr%   logr
   r   r   r   r   descr	   disable)selfr0   r1   r2   valid_optionsks   &&&&  r!   __init__CheckerModule.__init__K   s    "$$T__5 +T->->>A%(DNN+;;MaS)QRR 
 JJ~.	zz-0r#   c                $   < V ^8  d   QhRS[ RR/# r/   msgr3   Nr   )r4   r,   s   "r!   r5   r6   Z   s      C D r#   c                    V P                   P                  V4       V P                   P                  R4       V P                  P                  V4       R# )z Output an informational message.
N)outputwriter:   debugr=   rD   s   &&r!   log_infoCheckerModule.log_infoZ   s6    #$sr#   c                $   < V ^8  d   QhRS[ RR/# rC   rE   )r4   r,   s   "r!   r5   r6   `   s     ' '# '$ 'r#   c                    V P                   '       d    V P                  P                  RV R24       V P                  P	                  RV 24       R# )zn
Log findings that pass the check.  By default these messages are
suppressed unless self.log_passing is True.
zP   * rG   N)log_passingrH   rI   r:   rJ   rK   s   &&r!   log_okCheckerModule.log_ok`   sA    
 KKse2./u~&r#   c                $   < V ^8  d   QhRS[ RR/# rC   rE   )r4   r,   s   "r!   r5   r6   i   s     ' 'C 'D 'r#   c                    V P                   P                  V P                  '       d   RMR RV R24       V P                  P	                  RV 24       R# )z!Log findings that fail the check.F z   * rG   zF   * N)rH   rI   rP   r:   rJ   rK   s   &&r!   log_failCheckerModule.log_faili   sE    D$4$4$4S#>eC5KLu~&r#   c                    < V ^8  d   QhRS[ /# )r/   r3   )list)r4   r,   s   "r!   r5   r6   o   s      T r#   c                    R# )z|
Run the configured check on the policy.

Return:   List of failed items in the check.  If the check passes, list is empty.
Nr$   )r=   s   &r!   runCheckerModule.runn   s     	r#   c                   < V ^8  d   Qh/ S[ P                  S[,          ;R&   S[ P                  S[S[,          ,          ;R&   S[ P                  S[,          ;R&   S[ P
                  ;R&   S[;R&   # )r/   r   r   rP   rH   r0   )typingClassVarr   r   boolTextIOr   )r4   r,   s   "r!   r5   r6   4   si      $$  //)C.11   &.! & MM&' * + r#   )r1   r;   r<   r:   r0   N)r   r%   r&   r'   r(   rP   sysstdoutrH   r@   rL   rQ   rW   r   r\   __annotate_func__r)   r*   )r,   s   @r!   r   r   4   s^     9 */K  JJF1 1 ' '' '
  w  r#   )	metaclassc                    V ^8  d   Qh/ ^ \         9   d   \        \        \        3,          ;R&   ^\         9   d,   \        P
                  \        \        R3,          ,          ;R&   # )r/   r   .__all__)__conditional_annotations__dictr   typer_   Finaltuple)r4   s   "r!   r5   r5      sC    

 ' &$sDy/ &  < ;eCHo	& ; r#   )r   )ri   rc   r8   abcr   r   collections.abcr   r_   	exceptionr   	policyrepr   
globalkeysr   r	   r
   r   rh   r   r   r5   )ri   s   @r!   <module>rs      sR    
  ' #  * % I I %'  &); ;G :Am Ar#   