3 �^t � @ sD d dl Z d dlZddlmZmZ ddlmZ G dd� deee�ZdS )� N� )� MatchName�MatchPermission)�PolicyQueryc s( e Zd ZdZ� fdd�Zdd� Z� ZS )�CommonQuerya� Query common permission sets. Parameter: policy The policy to query. Keyword Parameters/Class attributes: name The name of the common to match. name_regex If true, regular expression matching will be used for matching the name. perms The permissions to match. perms_equal If true, only commons with permission sets that are equal to the criteria will match. Otherwise, any intersection will match. perms_regex If true, regular expression matching will be used on the permission names instead of set logic. c s$ t t| �j|f|� tjt�| _d S )N)�superr �__init__�loggingZ getLogger�__name__�log)�self�policy�kwargs)� __class__� �#/usr/lib64/python3.6/commonquery.pyr / s zCommonQuery.__init__c c s` | j jdj| �� | j| j � | j| j � x0| jj� D ]"}| j|�sFq6| j|�sRq6|V q6W dS )z,Generator which yields all matching commons.z)Generating common results from {0.policy}N) r �info�formatZ_match_name_debugZ_match_perms_debugr ZcommonsZ_match_nameZ_match_perms)r Zcomr r r �results3 s zCommonQuery.results)r � __module__�__qualname__�__doc__r r � __classcell__r r )r r r s r )r �reZmixinsr r Zqueryr r r r r r �<module> s