a qqe$ @szddlZddlZddlmZmZddlmZddlmZm Z ddl m Z ddl m Z mZmZmZmZGdd d e eZdS) N)castIterable) PolicyQuery)CriteriaDescriptorCriteriaSetDescriptor) MatchObjClass) AnyDefault DefaultRangeDefaultRuletype DefaultValueDefaultRangeValuecsVeZdZdZeedZeedZ ee dZ ddfdd Z e edddZZS) 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|tt|_dS)N)superr__init__loggingZ getLogger__name__log)selfpolicykwargs __class__:/usr/lib64/python3.9/site-packages/setools/defaultquery.pyr%szDefaultQuery.__init__c cs|jd||jd|||j|jd||jd||jD]v}|jrv|j|jvrvq^||sq^|j r|j |j krq^|j rzt t |j |j krWq^Wnt yYq^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)rinfoformatdebugZ_match_object_class_debugrdefaultsruletypeZ_match_object_classdefault default_rangerr AttributeError)rdrrrresults)s&    zDefaultQuery.results)r __module__ __qualname____doc__rr r!rr r"r r#rrr r& __classcell__rrrrrs    r)rretypingrrqueryrZ descriptorsrrZmixinsrZ policyrepr r r r r rrrrrs