File: //lib64/python3.9/site-packages/setools/__pycache__/netifconquery.cpython-39.pyc
a
    q�qe�	  �                   @   s`   d dl Z d dlmZ ddlmZmZ ddlmZ ddlm	Z	 ddl
mZ G dd	� d	eee	�ZdS )
�    N)�Iterable�   )�MatchContext�	MatchName)�Netifcon)�PolicyQuery)�match_regexc                       s8   e Zd ZdZdd�� fdd�Zee d�dd�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.
    N)�returnc                    s(   t t| �j|fi |�� t�t�| _d S )N)�superr	   �__init__�loggingZ	getLogger�__name__�log)�self�policy�kwargs��	__class__� �;/usr/lib64/python3.9/site-packages/setools/netifconquery.pyr   .   s    zNetifconQuery.__init__c                 c   sl   | j �d�| �� | �| j � | �| j � | j�� D ]2}| jrRt|j	| j| j
�sRq4| �|j�s`q4|V  q4dS )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   �results2   s    �zNetifconQuery.results)	r   �
__module__�__qualname__�__doc__r   r   r   r   �
__classcell__r   r   r   r   r	      s   r	   )
r
   �typingr   Zmixinsr   r   Z	policyrepr   �queryr   �utilr   r	   r   r   r   r   �<module>   s