???<!-- GIF89;a -->
123123123123
.....................................................................................................................................???<!-- GIF89;a -->
123123123123
.....................................................................................................................................
ìÕYf[  ã               @   s    d  Z  d d l Z d d l Z d d l Z d d l Z d d d d g Z d d „  Z e j d d	 d
 d ƒ d d „  ƒ Z d d „  Z	 d d „  Z
 d d „  Z d S)a£  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.)
é    NÚfilterÚfnmatchÚfnmatchcaseÚ	translatec             C   s1   t  j j |  ƒ }  t  j j | ƒ } t |  | ƒ S)a½  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).
    )ÚosÚpathÚnormcaser   )ÚnameÚpat© r   ú,/opt/alt/python35/lib64/python3.5/fnmatch.pyr      s    Úmaxsizeé   ÚtypedTc             C   sX   t  |  t ƒ r< t |  d ƒ } t | ƒ } t | d ƒ } n t |  ƒ } t j | ƒ j S)Nz
ISO-8859-1)Ú
isinstanceÚbytesÚstrr   ÚreÚcompileÚmatch)r
   Zpat_strZres_strÚresr   r   r   Ú_compile_pattern&   s    r   c             C   sš   g  } t  j j | ƒ } t | ƒ } t  j t k r` x` |  D] } | | ƒ r: | j | ƒ q: Wn6 x3 |  D]+ } | t  j j | ƒ ƒ rg | j | ƒ qg W| S)z3Return the subset of the list NAMES that match PAT.)r   r   r   r   Ú	posixpathÚappend)Únamesr
   Úresultr   r	   r   r   r   r   0   s    c             C   s   t  | ƒ } | |  ƒ d k	 S)zTest 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   @   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 } | | k  rÌ |  | d
 k rÌ | d } x* | | k  rø |  | d
 k rø | d } qÏ W| | k r| d } qŸ|  | | … j d d ƒ } | d } | d d	 k r_d | d d … } n | d d k ryd | } d | | f } q | t j | ƒ } q W| d S)zfTranslate a shell PATTERN to a regular expression.

    There is no way to quote meta-characters.
    r   Ú é   Ú*z.*ú?Ú.ú[ú!ú]z\[ú\z\\ú^Nz%s[%s]z\Z(?ms))ÚlenÚreplacer   Úescape)r
   ÚiÚnr   ÚcÚjZstuffr   r   r   r   J   s8    





)Ú__doc__r   r   r   Ú	functoolsÚ__all__r   Ú	lru_cacher   r   r   r   r   r   r   r   Ú<module>   s   $

