
    Vi                       S r SSKJr  SSKJr  SSKJrJrJr  Sr	\R                  =rr
\R                  =rr\R                  =rr\R                   =rr\R$                  =rr\R(                  =rr\R,                  =rr\R0                  =rr\R4                  =rr\R8                  =rr\R<                  =rr\R@                  =r!r \
\-  \-  \-  \-  \-  \-  \-  \-  \-  \-  \ -  r"SS jr#S\RH                  SS	.         SS
 jjr%S\RH                  SS	.           SS jjr&S\RH                  SS	.           SS jjr'SS jr(SS.SS jjr)g)z9
Wild Card Match.

A custom implementation of `fnmatch`.
    )annotations   )_wcparse)AnyStrIterableSequence)CASEEXTMATCH
IGNORECASERAWCHARSNEGATEMINUSNEGATEDOTMATCHBRACESPLIT	NEGATEALLFORCEWIN	FORCEUNIXCIRNMDESBAWU	translatefnmatchfilterescapeis_magicc                l    U [         -  (       a  U [        -  (       a  U [        [         -  -  n U [        -  $ )z!Transform flags to glob defaults.)r   r   	FLAG_MASKflagss    b/home/james-whalen/.local/share/pipx/venvs/semgrep/lib/python3.13/site-packages/wcmatch/fnmatch.py_flag_transformr+   /   s-     yUX-I%%I    N)r)   limitexcludec               B    [        U5      n[        R                  " XX#S9$ )zTranslate `fnmatch` pattern.r.   )r+   r   r!   )patternsr)   r-   r.   s       r*   r!   r!   9   s!     E"EhuFFr,   c          	     r    [        U5      n[        [        R                  " XX4S9R	                  U 5      5      $ )z
Check if filename matches pattern.

By default case sensitivity is determined by the file system,
but if `case_sensitive` is set, respect that instead.
r0   )r+   boolr   compilematch)filenamer1   r)   r-   r.   s        r*   r"   r"   F   s2     E"E  %IOOPXYZZr,   c                   / n[        U5      n[        R                  " XX4S9nU  H,  nUR                  U5      (       d  M  UR	                  U5        M.     U$ )zFilter names using pattern.r0   )r+   r   r4   r5   append)	filenamesr1   r)   r-   r.   matchesobjr6   s           r*   r#   r#   Y   sQ     GE"E


8E
CC99XNN8$  Nr,   c                ,    [         R                  " U SS9$ )zEscape.F)pathname)r   r$   )patterns    r*   r$   r$   n   s     ??7U33r,   r(   c               D    [        U5      n[        R                  " X5      $ )z+Check if the pattern is likely to be magic.)r+   r   r%   )r>   r)   s     r*   r%   r%   t   s     E"EW,,r,   )r)   intreturnr@   )
r1   AnyStr | Sequence[AnyStr]r)   r@   r-   r@   r.    AnyStr | Sequence[AnyStr] | NonerA   z!tuple[list[AnyStr], list[AnyStr]])r6   r   r1   rB   r)   r@   r-   r@   r.   rC   rA   r3   )r9   zIterable[AnyStr]r1   rB   r)   r@   r-   r@   r.   rC   rA   zlist[AnyStr])r>   r   rA   r   )r>   r   r)   r@   rA   r3   )*__doc__
__future__r    r   typingr   r   r   __all__r	   r   r   r   r   r   r   r   r   r   r   r   r
   r   r   r   r   r   r   r   r   r   r   r    r'   r+   PATTERN_LIMITr!   r"   r#   r$   r%    r,   r*   <module>rK      sU  
 #  - - == D$$ $J    H__ F&& &K    H    HNN ENN E"" "I    H"" "I 	  	
   

 

 	 
  
  ''04
G'
G 
G 	
G
 .
G '
G" ''04[['[ 	[
 [ .[ 
[. ''04' 	
  . *4 /0 - -r,   