
    r                     V    d Z ddlmZ ddlmZ ddlmZ ddlZddlmZ  G d de      Z	y)	z&Utilities for regex in gcloud storage.    )absolute_import)division)unicode_literalsN)debug_outputc                   *    e Zd ZdZddZd Zd Zd Zy)Patternsz<Holds multiple regex strings and checks matches against all.c                 l    |D cg c]  }t        j                  |       c}| _        || _        yc c}w )zInitializes class.N)recompile	_patterns_ignore_prefix_length)selfpattern_stringsignore_prefix_lengthxs       4lib/googlecloudsdk/command_lib/storage/regex_util.py__init__zPatterns.__init__   s-    -<=_bjjm_=DN!5D >s   1c                 ^    || j                   d t        fd| j                  D              S )z,Checks if string matches any stored pattern.Nc              3   @   K   | ]  }|j                          y wN)match).0ptarget_substrings     r   	<genexpr>z!Patterns.match.<locals>.<genexpr>%   s     B>a()>s   )r   anyr   )r   targetr   s     @r   r   zPatterns.match"   s,    d88:;B4>>BCC    c                 ,    t        j                  |       S r   )r   generic_repr)r   s    r   __repr__zPatterns.__repr__'   s    $$T**r   c                     t        |t        |             st        S | j                  |j                  k(  xr | j                  |j                  k(  S r   )
isinstancetypeNotImplementedr   r   )r   others     r   __eq__zPatterns.__eq__*   sE    eT$Z(%//) 	F&&%*E*EEr   N)r   )__name__
__module____qualname____doc__r   r   r!   r'    r   r   r   r      s    D6
D
+r   r   )
r+   
__future__r   r   r   r
   googlecloudsdk.core.utilr   objectr   r,   r   r   <module>r0      s%    - &  ' 	 1v r   