\bg ddlZddlZejeejeejzzZGddZdZdS)NcReZdZUdZeed<efdefdZdZdZ dZ dZ dZ d Z d S) Translatorz >>> Translator('xyz') Traceback (most recent call last): ... AssertionError: Invalid separators >>> Translator('') Traceback (most recent call last): ... AssertionError: Invalid separators sepscv|r%t|ttks Jd||_dS)NzInvalid separators)set _default_sepsr)selfrs m/builddir/build/BUILD/cloudlinux-venv-1.0.7/venv/lib/python3.11/site-packages/setuptools/_vendor/zipp/glob.py__init__zTranslator.__init__s:MD S%7%77779M777 cR|||S)zH Given a glob pattern, produce a regex that matches it. )extendtranslate_corer patterns r translatezTranslator.translates${{4..w77888r cd|dS)z Extend regex for pattern-wide concerns. Apply '(?s:)' to create a non-matching group that matches newlines (valid on Unix). Append '\Z' to imply fullmatch even when match is used. z(?s:z)\Zrs r rzTranslator.extend!s$w####r c ||dt|jt ||S)a? Given a glob pattern, produce a regex that matches it. >>> t = Translator() >>> t.translate_core('*.txt').replace('\\\\', '') '[^/]*\\.txt' >>> t.translate_core('a?txt') 'a[^/]txt' >>> t.translate_core('**/*').replace('\\\\', '') '.*/[^/][^/]*' )restrict_rglobjoinmapreplaceseparatestar_not_emptyrs r rzTranslator.translate_core,sL G$$$wws4<$2E2Eg2N2N)O)OPPQQQr c(|dp}tj|dddddtj|jddd S) zM Perform the replacements for a match from :func:`separate`. rrz\*\*z.*z\*[^z]*z\?z[^/])groupreescaperr)r matchs r rzTranslator.replace;sy{{5!! Iekk!nn % % WXu % % WU:")DI"6"6::: ; ; WUG $ $  r cdtj|jd}tj||}t d|Drt ddS)z Raise ValueError if ** appears in anything but a full path segment. >>> Translator().translate('**foo') Traceback (most recent call last): ... ValueError: ** must appear alone in a path segment []+c3*K|]}d|vo|dkVdS)z**Nr).0segments r z,Translator.restrict_rglob..Qs/KKwtw27d?KKKKKKr z&** must appear alone in a path segmentN)r r!rsplitany ValueError)r r seps_patternsegmentss r rzTranslator.restrict_rglobFsl5BIdi00444 8L'22 KK(KKK K K GEFF F G Gr cnd}dtj|jd}tj|||S)z@ Ensure that * will not match an empty segment. c@|d}|dkrdn|S)Nr*z?*)r)r"r(s r handle_segmentz1Translator.star_not_empty..handle_segmentYs#kk!nnG"c>>44w 6r rr%)r r!rsub)r rr2not_seps_patterns r rzTranslator.star_not_emptyTsE  7 7 7:49!5!5999v&@@@r N)__name__ __module__ __qualname____doc__str__annotations__rr rrrrrrrr r rrs   III#0S999 $ $ $ R R R     G G G A A A A Ar rc,tjd|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[\[].*?[\]])|([\[][^\]]*$))r finditer)rs r rras ;Ew O OOr ) osr sepr9altsepboolrrrrr r rAs RY$$ry//99 VAVAVAVAVAVAVAVAr P P P P Pr