
­­­­­­­­­­­­­­­­­­
<!DOCTYPE html>
<html>
3
^                 @   s6   d dl Z ddlmZ ddlmZ G dd deeZdS )    N   )MatchContext)PolicyQueryc                   sF   e Zd ZdZdZedd Zejdd Z fddZdd	 Z	  Z
S )
PirqconQuerya  
    Pirqcon context query.

    Parameter:
    policy          The policy to query.

    Keyword Parameters/Class attributes:
    irq             A single IRQ value.

    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.
    Nc             C   s   | j S )N)_irq)self r   $/usr/lib64/python3.6/pirqconquery.pyirq=   s    zPirqconQuery.irqc             C   s,   |r"|dk rt dj||| _nd | _d S )Nr   zThe IRQ must be positive: {0})
ValueErrorformatr   )r   valuer   r   r	   r
   A   s
    c                s$   t t| j|f| tjt| _d S )N)superr   __init__loggingZ	getLogger__name__log)r   policykwargs)	__class__r   r	   r   K   s    zPirqconQuery.__init__c             c   sp   | j jdj|  | j jdj|  | j| j  x:| jj D ],}| jrT| j|jkrTq<| j|j	sbq<|V  q<W dS )z-Generator which yields all matching pirqcons.z"Generating results from {0.policy}zIRQ: {0.irq!r}N)
r   infor   debugZ_match_context_debugr   Zpirqconsr
   Z_match_contextcontext)r   Zpirqconr   r   r	   resultsO   s    zPirqconQuery.results)r   
__module____qualname____doc__r   propertyr
   setterr   r   __classcell__r   r   )r   r	   r      s    
r   )r   Zmixinsr   Zqueryr   r   r   r   r   r	   <module>   s   