a qéqe$ ã@szddlZddlZddlmZmZddlmZddlmZm Z ddl m Z ddl m Z mZmZmZmZGdd „d e eƒZdS) éN)ÚcastÚIterableé)Ú PolicyQuery)ÚCriteriaDescriptorÚCriteriaSetDescriptor)Ú MatchObjClass)Ú AnyDefaultÚ DefaultRangeÚDefaultRuletypeÚ DefaultValueÚDefaultRangeValuecsVeZdZdZeed�Zeed�Z ee d�Z ddœ‡fdd„ Z e edœdd„Z‡ZS) Ú DefaultQuerya# Query default_* statements. Parameter: policy The policy to query. Keyword Parameters/Class attributes: ruletype The rule type(s) to match. tclass The object class(es) to match. tclass_regex If true, use a regular expression for matching the rule's object class. default The default to base new contexts (e.g. "source" or "target") default_range The range to use on new context, default_range only ("low", "high", "low_high") )Ú enum_classN)Úreturnc s(tt|ƒj|fi|¤Žt t¡|_dS)N)ÚsuperrÚ__init__ÚloggingZ getLoggerÚ__name__Úlog)ÚselfÚpolicyÚkwargs©Ú __class__©ú:/usr/lib64/python3.9/site-packages/setools/defaultquery.pyr%szDefaultQuery.__init__c csÚ|j d |¡¡|j d |¡¡| |j¡|j d |¡¡|j d |¡¡|j ¡D]v}|jrv|j|jvrvq^| |¡s‚q^|j r–|j |j kr–q^|j rÎzt t |ƒj |j kr´Wq^Wnt yÌYq^Yn0|Vq^dS)z9Generator which yields all matching default_* statements.z,Generating default_* results from {0.policy}zRuletypes: {0.ruletype!r}zDefault: {0.default!r}zRange: {0.default_range!r}N)rÚinfoÚformatÚdebugZ_match_object_class_debugrÚdefaultsÚruletypeZ_match_object_classÚdefaultÚ default_rangerr ÚAttributeError)rÚdrrrÚresults)s&    zDefaultQuery.results)rÚ __module__Ú __qualname__Ú__doc__rr r!rr r"r r#rrr r&Ú __classcell__rrrrrs    r)rÚreÚtypingrrÚqueryrZ descriptorsrrZmixinsrZ policyrepr r r r r rrrrrÚs