JFIF$        dd7 

Viewing File: /usr/lib64/python3.9/site-packages/setools/checker/__pycache__/checkermodule.cpython-39.pyc

a

q�qe��@s�UddlZddlZddlmZmZddlmZmZmZm	Z	ddl
mZddlm
Z
ddlmZmZmZmZiZeeefed	<d
gZGdd�de�ZGd
d
�d
ed�ZdS)�N)�ABCMeta�abstractmethod)�Dict�	FrozenSet�List�Mapping�)�InvalidCheckOption)�
SELinuxPolicy�)�CHECK_TYPE_KEY�CHECK_DESC_KEY�
CHECK_DISABLE�GLOBAL_CONFIG_KEYS�CHECKER_REGISTRY�
CheckerModulecs eZdZdZ�fdd�Z�ZS)�
CheckRegistryzQChecker module registry metaclass.  This registers modules in the check registry.cs�|�d�}|�d�}|dkrnt|t�s4td�|���t|t�sLtd�|���|tvrnt|j}td�||���t��	||||�}|r�|t|<|S)N�
check_type�check_configrz,Checker module {} does not set a check_type.z4Checker module {} does not set a valid check_config.z4Checker module {} conflicts with registered check {})
�get�
isinstance�str�	TypeError�format�	frozensetr�__name__�super�__new__)�clsZclsnameZsuperclassesZ
attributedictrrZexisting_check_moduleZclassdef��	__class__��C/usr/lib64/python3.9/site-packages/setools/checker/checkermodule.pyrs$



�
�zCheckRegistry.__new__)r�
__module__�__qualname__�__doc__r�
__classcell__r!r!rr"rsrc@s�eZdZUdZeed<eeed<dZeed<e	j
Zeed<eee
eefdd�d	d
�Zedd�dd
�Zedd�dd�Zedd�dd�Zeed�dd��ZdS)rz/Abstract base class for policy checker modules.rrF�log_passing�policyN)r(�	checkname�config�returncCsb||_||_t�t�|_t|jB}|D]}||vr&td�	|j|���q&|�
t�|_|�
t
�|_dS)Nz{}: Invalid option: {})r(r)�loggingZ	getLoggerr�logrrr	rrr
Zdescr�disable)�selfr(r)r*Z
valid_options�kr!r!r"�__init__Js
�zCheckerModule.__init__)�msgr+cCs(|j�|�|j�d�|j�|�dS)z Output an informational message.�
N)�output�writer-�debug�r/r2r!r!r"�log_info]szCheckerModule.log_infocCs.|jr|j�d�|��|j�d�|��dS)z�
        Log findings that pass the check.  By default these messages are
        surpressed unless self.log_passing is True.
        z	P   * {}
zP   * {}N)r'r4r5rr-r6r7r!r!r"�log_okcszCheckerModule.log_okcCs4|j�d�|jrdnd|��|j�d�|��dS)z!Log findings that fail the check.z
{}   * {}
�F� zF   * {}N)r4r5rr'r-r6r7r!r!r"�log_faillszCheckerModule.log_fail)r+cCsdS)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/r!r!r"�runqszCheckerModule.run)rr#r$r%r�__annotations__rr'�bool�sys�stdoutr4r
rr1r8r9r<rrr=r!r!r!r"r3s
	)�	metaclass)r@r,�abcrr�typingrrrr�	exceptionr	Z	policyrepr
Z
globalkeysrr
rrrr�typer>�__all__rrr!r!r!r"�<module>s

Back to Directory  nL+D550H?Mx ,D"v]qv;6*Zqn)ZP0!1 A "#a$2Qr D8 a Ri[f\mIykIw0cuFcRı?lO7к_f˓[C$殷WF<_W ԣsKcëIzyQy/_LKℂ;C",pFA:/]=H  ~,ls/9ć:[=/#f;)x{ٛEQ )~ =𘙲r*2~ a _V=' kumFD}KYYC)({ *g&f`툪ry`=^cJ.I](*`wq1dđ#̩͑0;H]u搂@:~וKL Nsh}OIR*8:2 !lDJVo(3=M(zȰ+i*NAr6KnSl)!JJӁ* %݉?|D}d5:eP0R;{$X'xF@.ÊB {,WJuQɲRI;9QE琯62fT.DUJ;*cP A\ILNj!J۱+O\͔]ޒS߼Jȧc%ANolՎprULZԛerE2=XDXgVQeӓk yP7U*omQIs,K`)6\G3t?pgjrmۛجwluGtfh9uyP0D;Uڽ"OXlif$)&|ML0Zrm1[HXPlPR0'G=i2N+0e2]]9VTPO׮7h(F*癈'=QVZDF,d߬~TX G[`le69CR(!S2!P <0x<!1AQ "Raq02Br#SCTb ?Ζ"]mH5WR7k.ۛ!}Q~+yԏz|@T20S~Kek *zFf^2X*(@8r?CIuI|֓>^ExLgNUY+{.RѪ τV׸YTD I62'8Y27'\TP.6d&˦@Vqi|8-OΕ]ʔ U=TL8=;6c| !qfF3aů&~$l}'NWUs$Uk^SV:U# 6w++s&r+nڐ{@29 gL u"TÙM=6(^"7r}=6YݾlCuhquympǦ GjhsǜNlɻ}o7#S6aw4!OSrD57%|?x>L |/nD6?/8w#[)L7+6〼T ATg!%5MmZ/c-{1_Je"|^$'O&ޱմTrb$w)R$& N1EtdU3Uȉ1pM"N*(DNyd96.(jQ)X 5cQɎMyW?Q*!R>6=7)Xj5`J]e8%t!+'!1Q5 !1 AQaqё#2"0BRb?Gt^## .llQT $v,,m㵜5ubV =sY+@d{N! dnO<.-B;_wJt6;QJd.Qc%p{ 1,sNDdFHI0ГoXшe黅XۢF:)[FGXƹ/w_cMeD,ʡcc.WDtA$j@:) -# u c1<@ۗ9F)KJ-hpP]_x[qBlbpʖw q"LFGdƶ*s+ډ_Zc"?%t[IP 6J]#=ɺVvvCGsGh1 >)6|ey?Lӣm,4GWUi`]uJVoVDG< SB6ϏQ@ TiUlyOU0kfV~~}SZ@*WUUi##; s/[=!7}"WN]'(L! ~y5g9T̅JkbM' +s:S +B)v@Mj e Cf jE 0Y\QnzG1д~Wo{T9?`Rmyhsy3!HAD]mc1~2LSu7xT;j$`}4->L#vzŏILS ֭T{rjGKC;bpU=-`BsK.SFw4Mq]ZdHS0)tLg