ó zfc@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ÿÿÿÿNtfiltertfnmatcht fnmatchcaset translateidcCstjƒdS(sClear the pattern cacheN(t_cachetclear(((s/usr/lib64/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/usr/lib64/python2.7/fnmatch.pyRs c Csddl}ddl}g}|jj|ƒ}yt|}WnStk r“t|ƒ}ttƒtkrytj ƒnt j |ƒt|<}nX|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 RtKeyErrorRtlent _MAXCACHERtretcompiletmatchtappend( tnamesR RR tresulttre_pattresRR ((s/usr/lib64/python2.7/fnmatch.pyR-s&       cCswyt|}WnStk rct|ƒ}ttƒtkrItjƒntj|ƒt|<}nX|j|ƒdk S(sTest whether FILENAME matches PATTERN, including case. This is a version of fnmatch() which doesn't case-normalize its arguments. N( RR RRRRRRRtNone(R R RR((s/usr/lib64/python2.7/fnmatch.pyREs   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Ÿ|||!jd d ƒ}|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)(RtreplaceRtescape(R titnRtctjtstuff((s/usr/lib64/python2.7/fnmatch.pyRUs8             ( t__doc__Rt__all__RRRRRRR(((s/usr/lib64/python2.7/fnmatch.pyt s