3 �^� � @ sH d dl Z ddlmZmZ ddlmZ ddlmZ G dd� deee�ZdS )� N� )�MatchContext� MatchName)�PolicyQuery)�match_regexc s( e Zd ZdZ� fdd�Zdd� Z� ZS )� NetifconQueryaG Network interface context query. Parameter: policy The policy to query. Keyword Parameters/Class attributes: name The name of the network interface to match. name_regex If true, regular expression matching will be used for matching the name. user The criteria to match the context's user. user_regex If true, regular expression matching will be used on the user. role The criteria to match the context's role. role_regex If true, regular expression matching will be used on the role. type_ The criteria to match the context's type. type_regex If true, regular expression matching will be used on the type. range_ The criteria to match the context's range. range_subset If true, the criteria will match if it is a subset of the context's range. range_overlap If true, the criteria will match if it overlaps any of the context's range. range_superset If true, the criteria will match if it is a superset of the context's range. range_proper If true, use proper superset/subset operations. No effect if not using set operations. c s$ t t| �j|f|� tjt�| _d S )N)�superr �__init__�loggingZ getLogger�__name__�log)�self�policy�kwargs)� __class__� �%/usr/lib64/python3.6/netifconquery.pyr : s zNetifconQuery.__init__c c sr | j jdj| �� | j| j � | j| j � xB| jj� D ]4}| jrVt|j | j| j � rVq6| j|j�sdq6|V q6W dS )z.Generator which yields all matching netifcons.z+Generating netifcon results from {0.policy}N) r �info�formatZ_match_name_debugZ_match_context_debugr Z netifcons�namer �netifZ name_regexZ_match_context�context)r r r r r �results>