Jz`f csSSKrSSKr\R\"\R5\"\R5--r"SS5rSrg)Ncs\\rSrSr%Sr\\S'\4S\4SjjrSr Sr Sr Sr S r S rS rg ) Translatoriz >>> Translator('xyz') Traceback (most recent call last): ... AssertionError: Invalid separators >>> Translator('') Traceback (most recent call last): ... AssertionError: Invalid separators sepscsdU(a[U5[[5::dS5eXlg)NzInvalid separators)set _default_sepsr)selfr +/usr/lib64/python3.13/zipfile/_path/glob.py__init__ZTranslator.__init__s&D S%77M9MM7 csBURURU55$)z8 Given a glob pattern, produce a regex that matches it. )extendtranslate_corerpatternrr translateZTranslator.translates{{4..w788r csSUS3$)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)\Zr rrr ZTranslator.extend!swis##r c sURU5 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('\\\\', '') '.*/[^/][^/]*' Z)restrict_rglobZjoinZmapreplaceseparatestar_not_emptyr rrr ZTranslator.translate_core,s< G$wws4<<$2E2Eg2N)OPQQr cs URS5=(dw [R"URS55RSS5RSS[R"UR5S35RSS 5$) z= Perform the replacements for a match from :func:`separate`. rrz\*\*z.*z\*[^z]*z\?z[^/])groupreescaperr)rmatchrrrZTranslator.replace;si{{5! IIekk!n % WXu % WUr"))DII"6!7r: ; WUG $  r csS[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 Z[]+c3sB# UHnSU;=(a US:gv M g7f)z**Nr)Z.0segmentrrZ Z,Translator.restrict_rglob..QsKwtw27d?2Ksz&** must appear alone in a path segmentN)rrrZsplitZanyZ ValueError)rr Z seps_patternZsegments rrZTranslator.restrict_rglobFsQBIIdii014 88L2 K(K K KEF F Lr cs~SnS[R"UR5S3n[R"X2U5$)z0 Ensure that * will not match an empty segment. cs8URS5nUS:XaS$U$)NrZ*z?*)r)rrrrhandle_segmentZ1Translator.star_not_empty..handle_segmentYs kk!nG"c>4 6w 6r rr)rrrZsub)rr rZnot_seps_patternrrrZTranslator.star_not_emptyTs8  7!499!5 6b9vv&@@r )rrN)Z__name__Z __module__Z __qualname__Z__firstlineno__Z__doc__strZ__annotations__rrrr r rrrZ__static_attributes__rr rrrs>  I#0S9 $ R   G Ar rcs0[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[\[].*?[\]])|([\[][^\]]*$))rZfinditer)r s rrras ;;Ew OOr ) ZosrZseprZaltsepZboolrrrrr rrsE RYY$ryy/99 VAVAr Pr