a †oeƒã@s$ddlZdd„Zdd„Zdd„ZdS)éNcCsd ttt|ƒƒ¡S)zÁ Given a glob pattern, produce a regex that matches it. >>> translate('*.txt') '[^/]*\\.txt' >>> translate('a?txt') 'a[^/]txt' >>> translate('**/*') '.*/[^/]*' Ú)ÚjoinÚmapÚreplaceÚseparate©Úpattern©r ú*C:\Program Files\Certbot\pkgs\zipp\glob.pyÚ translates r cCs t d|¡S)zÓ Separate out character sets to avoid translating their contents. >>> [m.group(0) for m in separate('*.txt')] ['*.txt'] >>> [m.group(0) for m in separate('a[?]txt')] ['a', '[?]', 'txt'] z+([^\[]+)|(?P[\[].*?[\]])|([\[][^\]]*$))ÚreÚfinditerrr r r rs rcCs2| d¡p0t | d¡¡ dd¡ dd¡ dd¡S) zE Perform the replacements for a match from :func:`separate`. Úsetrz\*\*z.*z\*z[^/]*z\?z[^/])Úgroupr Úescaper)Úmatchr r r rs ÿþýÿr)r r rrr r r r Ús