�`^c@sadZddlZddddgZiZdZd�Zd �Zd
�Zd�Zd�Z dS(
s�Filename matching with shell patterns.
fnmatch(FILENAME, PATTERN) matches according to the local convention.
fnmatchcase(FILENAME, PATTERN) always takes case in account.
The functions operate by translating the pattern into a regular
expression. They cache the compiled regular expressions for speed.
The function translate(PATTERN) returns a regular expression
corresponding to PATTERN. (It does not compile it.)
i�Ntfiltertfnmatchtfnmatchcaset translateidcCstj�dS(sClear the pattern cacheN(t_cachetclear(((s/sys/lib/python2.7/fnmatch.pyt_purgescCs=ddl}|jj|�}|jj|�}t||�S(s�Test whether FILENAME matches PATTERN.
Patterns are Unix shell style:
* matches everything
? matches any single character
[seq] matches any character in seq
[!seq] matches any char not in seq
An initial period in FILENAME is not special.
Both FILENAME and PATTERN are first case-normalized
if the operating system requires it.
If you don't want this, use fnmatchcase(FILENAME, PATTERN).
i�N(tostpathtnormcaseR(tnametpatR((s/sys/lib/python2.7/fnmatch.pyRscCsddl}ddl}g}|jj|�}|tkr}t|�}tt�tkrgtj�nt j
|�t|<nt|j}|j|kr�xf|D]"}||�r�|j|�q�q�Wn9x6|D].}||jj|��r�|j|�q�q�W|S(s2Return the subset of the list NAMES that match PATi�N(
Rt posixpathRR RRtlent _MAXCACHERtretcompiletmatchtappend(tnamesRRRtresulttresRR
((s/sys/lib/python2.7/fnmatch.pyR-s"
cCsd|tkrMt|�}tt�tkr7tj�ntj|�t|<nt|j|�dk S(s�Test whether FILENAME matches PATTERN, including case.
This is a version of fnmatch() which doesn't case-normalize
its arguments.
N( RRR
RRRRRtNone(R
RR((s/sys/lib/python2.7/fnmatch.pyRCs
cCs�dt|�}}d}x�||kr�||}|d}|dkrU|d}q|dkrn|d}q|dkr�|}||kr�||d kr�|d}n||kr�||d
kr�|d}nx*||kr�|d
kr�d}q�W||kr|d}q�|||!jdd
�}|d}|dd kr\d|d}n|ddkryd|}nd||f}q|tj|�}qW|dS(sfTranslate a shell PATTERN to a regular expression.
There is no way to quote meta-characters.
itit*s.*t?t.t[t!t]s\[s\s\\t^s%s[%s]s\Z(?ms)(R
treplaceRtescape(RtitnRtctjtstuff((s/sys/lib/python2.7/fnmatch.pyRQs8
(
t__doc__Rt__all__RRRRRRR(((s/sys/lib/python2.7/fnmatch.pyt<module>s
|