grthtrhthjhtyjytjytkergtrhtrjytjerhrfh4:24 29/09/2026o ®û|j9ã@s|dZddlZddlZddlZddlZgd¢ZddlmZeƒjZ [dd„Z ej ddd �d d „ƒZ d d „Z dd„Zdd„ZdS)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Ú translate)ÚcountcCs"tj |¡}tj |¡}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/python310/lib64/python3.10/fnmatch.pyrs   réT)ÚmaxsizeÚtypedcCs<t|tƒrt|dƒ}t|ƒ}t|dƒ}nt|ƒ}t |¡jS)Nz ISO-8859-1)Ú isinstanceÚbytesÚstrrÚreÚcompileÚmatch)r Zpat_strZres_strÚresr r r Ú_compile_pattern,s    rcCsjg}tj |¡}t|ƒ}tjtur!|D] }||ƒr| |¡q|S|D]}|tj |¡ƒr2| |¡q#|S)zJConstruct a list from those elements of the iterable NAMES that match PAT.)rrr rÚ posixpathÚappend)Únamesr Úresultrr r r r r6s   €ý €rcCst|ƒ}||ƒduS)z�Test whether FILENAME matches PATTERN, including case. This is a version of fnmatch() which doesn't case-normalize its arguments. N)r)r r rr r r rFs rcCs2tƒ}g}|j}dt|ƒ}}||k�r]||}|d}|dkr.|r(|d|ur,||ƒ�n+|dkr8|dƒ�n!|dk�rR|}||krM||dkrM|d}||kr[||d kr[|d}||krs||d krs|d}||krs||d kse||kr||d ƒnÝ|||…}d |vr�| d d ¡}n„g} ||dkr™|dn|d} | d | |¡} | dkrªn|  ||| …¡| d}| d} qž|||…} | rÊ|  | ¡n| dd 7<tt| ƒdddƒD]*} | | dd| | dk�r| | ddd…| | dd…| | d<| | =qÜd  dd„| Dƒ¡}t dd|¡}|d}|�s$|dƒn5|dk�r.|dƒn+|ddk�r>d|dd…}n |ddv�rId |}|d|›d �ƒn|t  |¡ƒ||ks||k�sdJ‚|} g}|j}dt| ƒ}}||k�r”| ||u�r”|| |ƒ|d7}||k�r”| ||u�s~||k�r| ||u�s¢J‚|d7}||k�r°|dƒnW| ||u�s¹J‚g} ||k�rÞ| ||u�rÞ|  | |¡|d7}||k�rÞ| ||u�sÇd | ¡} ||k�rñ|dƒ|| ƒnt ƒ}|d|›d| ›d|›d�ƒ||k�s™||k�sJ‚d |¡}d|›d �S)!zfTranslate a shell PATTERN to a regular expression. There is no way to quote meta-characters. réÚ*éÿÿÿÿú?Ú.ú[ú!ú]z\[ú-ú\ú\\éTéNcss$�|] }| dd¡ dd¡VqdS)r&r'r%z\-N)Úreplace)Ú.0Úsr r r Ú ‡s€ÿztranslate..z([&~|])z\\\1z(?!)ú^)r.r"z.*Úz(?=(?P.*?z))(?P=gú)z(?s:z)\Z) ÚobjectrÚlenr*ÚfindÚrangeÚjoinrÚsubÚescapeÚ _nextgroupnum)r ÚSTARrÚaddÚiÚnÚcÚjZstuffZchunksÚkÚchunkZinpZfixedZgroupnumr r r rPsº €  ÿ  ú  ,€ ÿ   Á@ þ  þ    ï  r)Ú__doc__rrrÚ functoolsÚ__all__Ú itertoolsrÚ__next__r8rÚ lru_cacherrrrr r r r Ús