e SSKrSSKr\R\"\R5\"\R5--r"SS5rSrg)Ncb\rSrSr%Sr\\S'\4S\4SjjrSr Sr Sr Sr S r S rS rS rg ) Translatorz >>> Translator('xyz') Traceback (most recent call last): ... AssertionError: Invalid separators >>> Translator('') Traceback (most recent call last): ... AssertionError: Invalid separators sepscdU(a[U5[[5::dS5eXlg)NzInvalid separators)set _default_sepsr)selfrs 8/opt/imh/python3.13/lib/python3.13/zipfile/_path/glob.py__init__Translator.__init__s&D S%77M9MM7 c`URURURU555$)z8 Given a glob pattern, produce a regex that matches it. )extend match_dirstranslate_corer patterns r translateTranslator.translates'{{4??4+>+>w+GHIIrcSUS3$)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 rTranslator.extend!swis##rc US3$)zl Ensure that zipfile.Path directory names are matched. zipfile.Path directory names always end in a slash. z[/]?rrs r rTranslator.match_dirs,s )4  rc URU5 SR[UR[ UR U5555$)z 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 rTranslator.translate_core4s< G$wws4<<$2E2Eg2N)OPQQrc URS5=(dw [R"URS55RSS5RSS[R"UR5S35RSS 5$) z= Perform the replacements for a match from :func:`separate`. rrz\*\*z.*z\*[^z]*z\?z[^/])groupreescaper!r)r matchs r r!Translator.replaceCsi{{5! IIekk!n % WXu % WUr"))DII"6!7r: ; WUG $  rcS[R"UR5S3n[R"X!5n[ SU55(a [ S5eg)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 []+c3D# UHnSU;=(a US:gv M g7f)z**Nr).0segments r ,Translator.restrict_rglob..Ys K(wtw27d?2(s z&** must appear alone in a path segmentN)r(r)rsplitany ValueError)r r seps_patternsegmentss r rTranslator.restrict_rglobNsQBIIdii014 88L2 K(K K KEF F Lrc~SnS[R"UR5S3n[R"X2U5$)z0 Ensure that * will not match an empty segment. c8URS5nUS:XaS$U$)Nr*z?*)r')r*r1s r handle_segment1Translator.star_not_empty..handle_segmentas kk!nG"c>4 6w 6rr&r.)r(r)rsub)r rr=not_seps_patterns r r#Translator.star_not_empty\s8  7!499!5 6b9vv&@@r)rN)__name__ __module__ __qualname____firstlineno____doc__str__annotations__r r rrrrr!rr#__static_attributes__rrr rrsD  I#0SJ $! R   G Arrc0[R"SU5$)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 r"r"is ;;Ew OOr) osr(seprGaltsepboolr rr"rrr rPsE RYY$ryy/99 ^A^AB Pr