ó
è¾bc           @   sa   d  Z  d d l Z d d d d g Z i  Z d Z d „  Z d	 „  Z d
 „  Z d „  Z d „  Z	 d S(   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ÿÿÿÿNt   filtert   fnmatcht   fnmatchcaset	   translateid   c           C   s   t  j ƒ  d S(   s   Clear the pattern cacheN(   t   _cachet   clear(    (    (    s   /usr/lib/python2.7/fnmatch.pyt   _purge   s    c         C   s=   d d l  } | j j |  ƒ }  | j j | ƒ } 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(   t   ost   patht   normcaseR   (   t   namet   patR   (    (    s   /usr/lib/python2.7/fnmatch.pyR      s    c   	      C   s  d d l  } d d l } g  } | j j | ƒ } y t | } WnS t k
 r“ t | ƒ } t t ƒ t k ry t j	 ƒ  n  t
 j | ƒ t | <} n X| j } | j | k rÜ xf |  D]" } | | ƒ r³ | j | ƒ q³ q³ Wn9 x6 |  D]. } | | j j | ƒ ƒ rã | j | ƒ qã qã W| S(   s2   Return the subset of the list NAMES that match PATiÿÿÿÿN(   R   t	   posixpathR   R	   R   t   KeyErrorR   t   lent	   _MAXCACHER   t   ret   compilet   matcht   append(	   t   namesR   R   R   t   resultt   re_patt   resR   R
   (    (    s   /usr/lib/python2.7/fnmatch.pyR    -   s&    	c         C   sw   y t  | } WnS t k
 rc t | ƒ } t t  ƒ t k rI t  j ƒ  n  t j | ƒ t  | <} n X| j |  ƒ d k	 S(   s   Test whether FILENAME matches PATTERN, including case.

    This is a version of fnmatch() which doesn't case-normalize
    its arguments.
    N(
   R   R   R   R   R   R   R   R   R   t   None(   R
   R   R   R   (    (    s   /usr/lib/python2.7/fnmatch.pyR   E   s    c         C   s«  d t  |  ƒ } } d } x‡| | k  r¢|  | } | d } | d k rU | d } q | d k rn | d } q | d k rŒ| } | | k  r© |  | d	 k r© | d } n  | | k  rÒ |  | d
 k rÒ | d } n  x* | | k  rþ |  | d
 k rþ | d } qÕ W| | k r| d } qŸ|  | | !j d d ƒ } | d } | d d	 k r\d | d } n | d d k ryd | } n  d | | f } q | t j | ƒ } q W| d S(   sf   Translate a shell PATTERN to a regular expression.

    There is no way to quote meta-characters.
    i    t    i   t   *s   .*t   ?t   .t   [t   !t   ]s   \[s   \s   \\t   ^s   %s[%s]s   \Z(?ms)(   R   t   replaceR   t   escape(   R   t   it   nR   t   ct   jt   stuff(    (    s   /usr/lib/python2.7/fnmatch.pyR   U   s8    


(
   t   __doc__R   t   __all__R   R   R   R   R    R   R   (    (    (    s   /usr/lib/python2.7/fnmatch.pyt   <module>   s   				