a qqe$ @ sz d dl Z d dlZd dlmZmZ ddlmZ ddlmZm Z ddl mZ ddlm Z mZmZmZmZ G dd d eeZdS ) N)castIterable )PolicyQuery)CriteriaDescriptorCriteriaSetDescriptor) MatchObjClass) AnyDefaultDefaultRangeDefaultRuletypeDefaultValueDefaultRangeValuec sV e Zd ZdZeedZeedZ ee dZdd fddZe e dddZ 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( t t| j|fi | tt| _d S )N)superr __init__loggingZ getLogger__name__log)selfpolicykwargs __class__ :/usr/lib64/python3.9/site-packages/setools/defaultquery.pyr % s zDefaultQuery.__init__c c s | j d| | j d| | | j | j d| | j d| | j D ]v}| jrv|j| jvrvq^| |sq^| j r|j | j krq^| j rztt|j | j krW q^W n t y Y q^Y n0 |V q^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 infoformatdebugZ_match_object_class_debugr defaultsruletypeZ_match_object_classdefault default_ranger r AttributeError)r dr r r results) s&