
ยยญยยญยยญยยญยยญยยญยยญยยญยยญยยญยยญยยญยยญยยญยยญยยญยยญยยญ
<!DOCTYPE html>
<html>
3
."ษdณ  ใ               @   s    d dl Z ddlmZ G dd deZG dd deZG dd	 d	eZG d
d deZG dd deZG dd deZG dd deZ	dd Z
dd Zdd ZdS )้    N้   )ฺPolicySyntaxErrorc               @   s   e Zd ZdS )ฺScopeSyntaxErrorN)ฺ__name__ฺ
__module__ฺ__qualname__ฉ r   r   ๚E./usr/share/crypto-policies/python/cryptopolicies/validation/scope.pyr   
   s   r   c                   s   e Zd Z fddZ  ZS )ฺScopeUnknownErrorc                s   t  jd|  d S )Nzunknown scope )ฺsuperฺ__init__)ฺselfZ
scope_glob)ฺ	__class__r   r	   r      s    zScopeUnknownError.__init__)r   r   r   r   ฺ__classcell__r   r   )r   r	   r
      s   r
   c                   s   e Zd Z fddZ  ZS )ฺScopeSelectorEmptyErrorc                s   t  jd d S )Nzempty scope selector)r   r   )r   )r   r   r	   r      s    z ScopeSelectorEmptyError.__init__)r   r   r   r   r   r   r   )r   r	   r      s   r   c                   s   e Zd Z fddZ  ZS )ฺ"ScopeSelectorIllegalCharacterErrorc                s   t  jd| d d S )Nz%illegal character in scope selector `๚`)r   r   )r   Zselector)r   r   r	   r      s    z+ScopeSelectorIllegalCharacterError.__init__)r   r   r   r   r   r   r   )r   r	   r      s   r   c                   s   e Zd Z fddZ  ZS )ฺScopeSelectorCurlyBracketsErrorc                s   t  jd| d d S )Nz%unsupported curly brackets usage in `r   )r   r   )r   ฺpattern)r   r   r	   r      s    z(ScopeSelectorCurlyBracketsError.__init__)r   r   r   r   r   r   r   )r   r	   r      s   r   c                   s   e Zd Z fddZ  ZS )ฺScopeSelectorCommaErrorc                s   t  jd| d d S )Nzunsupported comma usage in `r   )r   r   )r   r   )r   r   r	   r   #   s    z ScopeSelectorCommaError.__init__)r   r   r   r   r   r   r   )r   r	   r   "   s   r   c                   s   e Zd Z fddZ  ZS )ฺ ScopeSelectorMatchedNothingErrorc                s   t  jd| d d S )Nzscope selector `z` matches no scope)r   r   )r   r   )r   r   r	   r   (   s    z)ScopeSelectorMatchedNothingError.__init__)r   r   r   r   r   r   r   )r   r	   r   '   s   r   c             C   s   t dd | D st|d S )Nc             s   s   | ]}|j  p|d kV  qdS )z{,}*_-N)ฺisalnum)ฺ.0ฺcr   r   r	   ๚	<genexpr>-   s    z%illegal_characters.<locals>.<genexpr>)ฺallr   )ฺpฺoriginal_patternr   r   r	   ฺillegal_characters,   s    r   c             C   sP   | j d| j dfdksD| jdr.| jd sD| jd rL| jdrLt|d S )N๚{๚}r   r   ฉr   r   ฉr   r   )r!   r"   )ฺcountฺ
startswithฺendswithr   )r   r   r   r   r	   ฺcurly_brackets1   s    r&   c             C   sZ   t dd | D rt|x:| D ]2}|s.t tj||s d|krJt|t|q W d S )Nc             s   s   | ]}d |kV  qdS )๚,Nr   )r   ฺgr   r   r	   r   9   s    z"resulting_globs.<locals>.<genexpr>ฺ*)ฺanyr   r   ฺfnmatchฺfilterr   r
   )ZglobsZ
all_scopesr   r(   r   r   r	   ฺresulting_globs8   s    
r-   )r+   Zgeneralr   r   r
   r   r   r   r   r   r   r&   r-   r   r   r   r	   ฺ<module>   s   