a qqeZ@srddlZddlmZddlmZmZddlmZddlm Z m Z ddl m Z ddl mZmZGd d d ee ZdS) N)Iterable)CriteriaDescriptorCriteriaSetDescriptor) MatchObjClass)MLSRule MLSRuletype) PolicyQuery)match_indirect_regex match_rangecseZdZUdZeedZeddZdZ e e d<dZ e e d<eddZ dZe e d<dZe e d <ed d ZdZe e d <ed d ZdZe e d<dZe e d<dZe e d<dZe e d<ddfdd ZeedddZZS) MLSRuleQuerya Query MLS rules. Parameter: policy The policy to query. Keyword Parameters/Class attributes: ruletype The list of rule type(s) to match. source The name of the source type/attribute to match. source_regex If true, regular expression matching will be used on the source type/attribute. target The name of the target type/attribute to match. target_regex If true, regular expression matching will be used on the target type/attribute. tclass The object class(es) to match. tclass_regex If true, use a regular expression for matching the rule's object class. ) enum_class source_regexZlookup_type_or_attrFTsource_indirect target_regextarget_indirect tclass_regexZ lookup_classZ lookup_range)Zlookup_functiondefault_overlapdefault_subsetdefault_supersetdefault_properN)returnc s(tt|j|fi|tt|_dS)N)superr __init__loggingZ getLogger__name__log)selfpolicykwargs __class__:/usr/lib64/python3.9/site-packages/setools/mlsrulequery.pyr3szMLSRuleQuery.__init__ccs|jd||jd||jd||jd|||j|jd||jD]}|jr|j|jvrqp|jrt |j|j|j |j sqp|j rt |j |j |j |jsqp||sqp|jrt|j|j|j|j|j|jsqp|VqpdS)z.Generator which yields all matching MLS rules.z+Generating MLS rule results from {0.policy}zRuletypes: {0.ruletype}zLSource: {0.source!r}, indirect: {0.source_indirect}, regex: {0.source_regex}zLTarget: {0.target!r}, indirect: {0.target_indirect}, regex: {0.target_regex}zDefault: {0.default!r}, overlap: {0.default_overlap}, subset: {0.default_subset}, superset: {0.default_superset}, proper: {0.default_proper}N)rinfoformatdebugZ_match_object_class_debugrZmlsrulesruletypesourcer rrtargetrrZ_match_object_classdefaultr rrrr)rZruler"r"r#results7sT      zMLSRuleQuery.results)r __module__ __qualname____doc__rrr'rr(rbool__annotations__rr)rrZtclassrr*rrrrrrrr+ __classcell__r"r"r r#r s"               r )rtypingrZ descriptorsrrZmixinsrZ policyreprrqueryr utilr r r r"r"r"r#s