a
qéqeÒ
ã @ sX d dl Z d dlmZ ddlmZmZ ddlmZ ddlm Z dZ
d ZG d
d„ deƒZdS )é N)ÚListé )ÚInvalidTypeÚInvalidCheckValueé )Ú
CheckerModule)Úconfig_bool_valueÚattrÚ
missing_okc sx e Zd ZdZdZeeefƒZddœ‡ fdd„Z e
dd„ ƒZejd d„ ƒZe
d
d„ ƒZ
e
jdd„ ƒZ
edœd
d„Z‡ ZS )Ú
EmptyTypeAttrz7Checker module for asserting a type attribute is empty.Zempty_typeattrN)Úreturnc sJ t ƒ |||¡ t t¡| _d | _d| _d| _| t
¡| _| t¡| _
d S )NF)ÚsuperÚ__init__ÚloggingZ getLoggerÚ__name__ÚlogÚ_attrÚ_missing_okÚ_pass_by_missingÚgetÚMISSINOK_OPTr
ÚATTR_OPTr )ÚselfÚpolicyÚ checknameZconfig©Ú __class__© ú?/usr/lib64/python3.9/site-packages/setools/checker/emptyattr.pyr s zEmptyTypeAttr.__init__c C s | j S ©N)r ©r r r r r ' s zEmptyTypeAttr.attrc
C s~ z.|st d | jt¡ƒ‚| j |¡| _d| _W nJ tyx } z2| j sXt d | j|¡ƒ|‚|| _d| _W Y d }~n
d }~0 0 d S )Nz{}: "{}" setting is missing.Fz{}: attr setting error: {}T)
r Úformatr r r Zlookup_typeattrr r r r
)r ÚvalueÚer r r r + s
ÿ
ÿÿc C s | j S r )r r r r r r
= s zEmptyTypeAttr.missing_okc C s. t |ƒ| _| jr$t| jtƒr$d| _nd| _d S )NTF)r r Ú
isinstancer Ústrr )r r" r r r r
A s
c C sš | j d | j¡¡ g }| jr2| d | j¡¡ nR| j d | j¡¡ t| j ¡ ƒ}|rz|D ]}|
|j¡ | |¡ q\n
|
d¡ | j d |¡¡ |S )Nz$Checking type attribute {} is empty.z {} does not exist.zMember types of {}:
z