JFIF$        dd7 

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

a

q�qe��@shddlZddlmZmZddlmZddlmZmZGdd�de�Z	Gdd	�d	e�Z
Gd
d�de�ZdS)�N)�Callable�Union�)�InvalidCheckValue)�CriteriaDescriptor�CriteriaPermissionSetDescriptorcs<eZdZdZeeefdd��fdd�Z�fdd�Z�Z	S)�ConfigDescriptoraU
    Single item configuration option descriptor.

    Parameter:
    lookup_function The name of the SELinuxPolicy lookup function,
                    e.g. lookup_type or lookup_boolean.

    Read-only instance attribute use (obj parameter):
    checkname       The name of the check.
    policy          The instance of SELinuxPolicy
    N)�lookup_function�returncst�j|d�dS)N)r	)�super�__init__)�selfr	��	__class__��A/usr/lib64/python3.9/site-packages/setools/checker/descriptors.pyrszConfigDescriptor.__init__c
sh|sd|j|<nTzt��||���Wn<tyb}z$td�|j|j|��|�WYd}~n
d}~00dS)N�{}: Invalid {} setting: {})	�	instancesr�__set__�strip�
ValueErrorr�format�	checkname�name�r
�obj�value�exrrrrs
��zConfigDescriptor.__set__)
�__name__�
__module__�__qualname__�__doc__rr�strrr�
__classcell__rrrrrsrcs>eZdZdZd
eeefeedd��fdd�
Zdd	�Z	�Z
S)�ConfigSetDescriptora
    Descriptor for a configuration option set.

    Parameter:
    lookup_function The name of the SELinuxPolicy lookup function,
                    e.g. lookup_type or lookup_boolean.

    Keyword Parameters:
    strict          (Bool) If True, all objects must exist in the policy
                    when setting the value.  If False, any objects that
                    fail the policy lookup will be dropped instead of raising
                    an exception.  The default is True.
    expand          (Bool) If True, each object will be expanded.  Default
                    is False.

    Read-only instance attribute use (obj parameter):
    checkname       The name of the check.
    log             A logger instance.
    policy          The instance of SELinuxPolicy
    TFN)r	�strict�expandr
cs"t�j|t�d�||_||_dS)N)r	�
default_value)rr�	frozensetr%r&)r
r	r%r&rrrr?szConfigSetDescriptor.__init__c	Cs|st�|j|<�n|j}t|j�r,|j}nt|j|j�}t�}dd�t�	d|�D�D]�}z,||�}|j
rz|�|�
��n
|�|�WqVt
�y}zd|jr�|�d�|j|��|jd|d�td�|j|j|��|�|�d�|j|j|��WYd}~qVd}~00qVt|�|j|<dS)Ncss|]}|r|VqdS�Nr)�.0�irrr�	<genexpr>P�z.ConfigSetDescriptor.__set__.<locals>.<genexpr>z\szInvalid {} item: {}z
Traceback:)�exc_infoz{}: Invalid {} item: {})r(r�log�callabler	�getattrZpolicy�set�re�splitr&�update�addrr%�errorrr�debugrr�info)	r
rrr/�lookup�ret�item�o�errrrFs4

��
�zConfigSetDescriptor.__set__)TF)rrr r!rrr"�boolrrr#rrrrr$(s��r$cs2eZdZdZdd��fdd�Z�fdd�Z�ZS)�ConfigPermissionSetDescriptoraJ
    Descriptor for a configuration permissions set.

    Read-only instance attribute use (obj parameter):
    checkname       The name of the check.
    policy          The instance of SELinuxPolicy
    tclass          If it exists, it will be used to validate the
                    permissions.  See validate_perms_any()
    N)r
cst�jt�d�dS)N)r')rrr()r
rrrrpsz&ConfigPermissionSetDescriptor.__init__c
sv|st�|j|<n`z"t��|dd�|�d�D��Wn<typ}z$td�|j|j	|��|�WYd}~n
d}~00dS)Ncss|]}|r|VqdSr)r)r*�vrrrr,xr-z8ConfigPermissionSetDescriptor.__set__.<locals>.<genexpr>� r)
r(rrrr4rrrrrrrrrrss"
��z%ConfigPermissionSetDescriptor.__set__)rrr r!rrr#rrrrr@ds
r@)r3�typingrr�	exceptionrZdescriptorsrrrr$r@rrrr�<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