o ?Ogj@s ddlZddlZddlZgdZejejddZedej ej BZ ddZ dd Z d Zd d eed DZddddZdFddZddZddZddZGdddZGdddeZdGd d!ZiZd"gZddddefd#d$Zdedfd%d&Ziaiad'adHd(d)ZdHd*d+Z dHd,d-Z!d.d/Z"d0d1Z#d2d3Z$d4d5Z%d6d7Z&d8d9Z'd:d;Z(dd?Z*d@dAZ+dBdCZ,dDdEZ-eZ.dS)IN)NullTranslationsGNUTranslationsCatalogfind translationinstall textdomainbindtextdomainbind_textdomain_codesetdgettext dngettextgettextlgettext ldgettext ldngettext lngettextngettextpgettext dpgettext npgettext dnpgettextZsharelocalea (?P[ \t]+) | # spaces and horizontal tabs (?P[0-9]+\b) | # decimal integer (?Pn\b) | # only n is allowed (?P[()]) | (?P[-*/%+?:]|[>, # <=, >=, ==, !=, &&, ||, # ? : # unary and bitwise ops # not allowed (?P\w+|.) # invalid token ccsRtt|D]}|j}|dkrq||}|dkr td||VqdVdS)NZ WHITESPACESZINVALIDz invalid token in plural form: %s)refinditer_token_pattern lastgroupgroup ValueError)pluralZmokindvaluer"./opt/alt/python310/lib64/python3.10/gettext.py _tokenizeVs   r$cCs|rtd|StdS)Nz#unexpected token in plural form: %szunexpected end of plural form)r)r!r"r"r#_erroras r%))||)&&)z==z!=)<>z<=z>=)+-)*/%cCs i|] \}}|D]}||qqSr"r").0iopsopr"r"r# os r3orandz//)r&r'r-c Csd}t|}|dkr|d7}t|}|dks |dkr/t|\}}d||f}|dkr.tdn%|dkr:d ||f}nzt|d }Wn tyMt|dwd ||f}t|}d }|tvrt|}||krgn(|d vrs|d vrsd|}t||}t||d\} }d||| f}|}|tvs^||krdkrnnd|}|dkr|dkrt|d\} }|dkrt|t|\} }d| || f}|dkrd|}||fS)Nr!znot (z%s(%s))z%unbalanced parenthesis in plural formnz%s%s z%s%dd)z(%s)r4z%s %s %sr??r:z%s if %s else %s)next_parserintr% _binary_ops _c2py_opsget) tokensZpriorityresultnexttoksubr!jr0r2rightZif_trueZif_falser"r"r#rCrsX        rCcCsTzt|}Wntytd|jjfdwddl}|d|jjftd|S)Nz'Plural value must be an integer, got %srr?)round TypeError __class____name__warningswarnDeprecationWarning)r;r0rRr"r"r#_as_ints   rUcCs t|dkr tdz>tt|\}}|rt|d}|D]}|dkr1|d7}|dkr0tdq|dkr9|d8}qd ti}td |||d WStyTtdw) Niz"plural form expression is too longrr9r4z%plural form expression is too complexr:rUzif True: def func(n): if not isinstance(n, int): n = _as_int(n) return int(%s) func)lenrrCr$r%rUexecRecursionError)rrIrJZdepthcnsr"r"r#c2pys6   r]cCs8ddl}||}d}d}d}d}|d}|dkr+||d}|d|}||O}nd}|d}|dkrG||d}|d|}||O}nd}|d}|dkrc||d} |d|}||O}nd} |} g} t|dD]&} | |@s| } | |@r| | 7} | |@r| |7} | |@r| |7} | | qo| | S) Nrr4r?@r._)rZ normalizerrangeappendreverse)ZlocrZCOMPONENT_CODESETZCOMPONENT_TERRITORYZCOMPONENT_MODIFIERmaskposZmodifiercodesetZ territoryZlanguageZretr0valr"r"r# _expand_langsH               ric@seZdZdddZddZddZdd Zd d Zd d ZddZ ddZ ddZ ddZ ddZ ddZddZdddZdS)rNcCs2i|_d|_d|_d|_|dur||dSdSN)_info_charset_output_charset _fallbackrCselffpr"r"r#__init__szNullTranslations.__init__cCsdSrjr"ror"r"r#rCszNullTranslations._parsecCs |jr |j|dS||_dSrj)rn add_fallback)rpfallbackr"r"r#rs s zNullTranslations.add_fallbackcCs|jr |j|S|Srj)rnr )rpmessager"r"r#r s zNullTranslations.gettextcCsddl}|dtdddl}|jr3||ddt|j|WdS1s.wY|jr<| |jS| | S)Nr/lgettext() is deprecated, use gettext() insteadr^ignore.*\blgettext\b.*) rRrSrTrrncatch_warningsfilterwarningsrrmencodegetpreferredencoding)rprurRrr"r"r#rs    zNullTranslations.lgettextcCs&|jr |j|||S|dkr|S|SNr4)rnr)rpmsgid1msgid2r;r"r"r#r#s zNullTranslations.ngettextcCsddl}|dtdddl}|jr5||ddt|j|||WdS1s0wY|dkr<|}n|}|jrG| |jS| | S)Nr1lngettext() is deprecated, use ngettext() insteadr^rw.*\blngettext\b.*r4) rRrSrTrrnryrzrrmr{r|rpr~rr;rRrtmsgr"r"r#r+s$   zNullTranslations.lngettextcCs|jr |j||S|Srj)rnr)rpcontextrur"r"r#r=szNullTranslations.pgettextcCs(|jr |j||||S|dkr|S|Sr})rnr)rprr~rr;r"r"r#rBs zNullTranslations.npgettextcC|jSrj)rkrpr"r"r#infoJzNullTranslations.infocCrrj)rlrr"r"r#charsetMrzNullTranslations.charsetcCsddl}|dtd|jS)Nrzoutput_charset() is deprecatedr^rRrSrTrm)rprRr"r"r#output_charsetPs zNullTranslations.output_charsetcCs ddl}|dtd||_dS)Nrz"set_output_charset() is deprecatedr^r)rprrRr"r"r#set_output_charsetVs  z#NullTranslations.set_output_charsetcCsNddl}|j|jd<|dur#hd}|t|@D] }t|||j|<qdSdS)Nrra>rr rrrr)builtinsr __dict__setgetattr)rpnamesrZallowednamer"r"r#r\s zNullTranslations.installrj)rQ __module__ __qualname__rrrCrsr rrrrrrrrrrr"r"r"r#rs rc@s\eZdZdZdZdZdZddZddZd d Z d d Z d dZ ddZ ddZ ddZdS)rl*l$<z%s%s)rr4cCs |d?|d@fS)Nir")rpversionr"r"r# _get_versionsrszGNUTranslations._get_versionsc"Cs ddlm}t|dd}i|_}dd|_|}t|}|d|ddd}||jkr?|d |dd \}} } } d } n||jkrT|d |dd \}} } } d } nt dd|| |\} }| |j vrpt ddt | |t d| D]}|| || | d\}}||}|| || | d\}}||}||kr||kr|||}|||}nt dd||dkr-d}|dD]l}|}|sq|dr|drqd}}d|vr|dd\}}|}|}||j|<|}n|r|j|d|7<|dkr|dd|_q|dkr,|d}|ddd}t||_q|jp2d}d|vr]|d\}} |d}t ||}t|D]\}}!t |!||||f<qMn t |||t ||<| d7} | d7} qudS)Nr)unpackrrcSs t|dkSr})rD)r;r"r"r#s z(GNUTranslations._parse..z4Iz>IIzBad magic numberzBad version number zFile is corrupt z #-#-#-#-#rAr4 z content-typezcharset=z plural-forms;zplural=ascii)Zstructrr_catalogrreadrXLE_MAGICBE_MAGICOSErrorrVERSIONSstrrbsplitdecodestrip startswithendswithlowerrkrlr] enumerate)"rprqrfilenameZcatalogZbufZbuflenmagicrZmsgcountZ masteridxZtransidxZiiZ major_versionZ minor_versionr0ZmlenZmoffZmendZtlenZtoffZtendmsgrZlastkZb_itemitemkvrrr~rxr"r"r#rCvs~                      zGNUTranslations._parsecCspddl}|dtdddl}t}|j||}||ur(|jr&|j|S|}|j r1| |j S| | S)Nrrvr^) rRrSrTrobjectrrGrnrrmr{r|)rprurRrmissingrr"r"r#rs  zGNUTranslations.lgettextcCsddl}|dtdddl}z |j|||f}Wnty:|jr/|j|||YS|dkr6|}n|}Ynw|j rD| |j S| | S)Nrrr^r4) rRrSrTrrrKeyErrorrnrrmr{r|rr"r"r#rs$  zGNUTranslations.lngettextcCs6t}|j||}||ur|jr|j|S|S|Srj)rrrGrnr )rprurrr"r"r#r s zGNUTranslations.gettextcCs`z |j|||f}W|Sty/|jr!|j|||YS|dkr*|}Y|S|}Y|Swr})rrrrnr)rpr~rr;rr"r"r#rs zGNUTranslations.ngettextcCsF|j||f}t}|j||}||ur!|jr|j||S|S|Srj)CONTEXTrrrGrnr)rprru ctxt_msg_idrrr"r"r#rszGNUTranslations.pgettextc Csp|j||f}z |j|||f}W|Sty7|jr)|j||||YS|dkr2|}Y|S|}Y|Swr})rrrrrnr)rprr~rr;rrr"r"r#rs zGNUTranslations.npgettextN)rQrrrrrrrrCrrr rrrr"r"r"r#rfsY  rFc Cs|durt}|dur)g}dD]}tj|}|r|d}nqd|vr)|dg}|D]}t|D] }||vr>||q3q-|rEg} nd} |D]&}|dkrR| Stj||dd|} tj | ro|rk| | qI| SqI| S)N)ZLANGUAGELC_ALL LC_MESSAGESZLANGrACrz%s.mo) _default_localedirosenvironrGrrcripathjoinexists) domain localedir languagesallZenvarrhZnelangsZlangZnelangrImofiler"r"r#rsB       rZ unspecifiedc Cs<|durt}t|||dd}|s!|rtSddlm}t|d|d}|D]v} |tj| f} t | } | durUt | d} t | || } Wdn1sPwYddl } | | } |turddl}|dtd|r||d d t| |Wdn1swY|dur| }q%|| q%|S) NT)rr)ENOENTz$No translation file found for domainrbzparameter codeset is deprecatedr^rwz.*\bset_output_charset\b.*)rrrerrnorFileNotFoundErrorrrabspath _translationsrGopen setdefaultcopy _unspecifiedrRrSrTryrzrrs)rrrZclass_rtrgZmofilesrrIrkeytrqrrRr"r"r#rGsH       rcCst||d|d}||dS)NT)rtrg)rr)rrrgrrr"r"r#rrsrZmessagescCs|dur|atSrj)_current_domain)rr"r"r#rsrcCs|dur|t|<t|tSrj) _localedirsrGr)rrr"r"r#r s r cCs0ddl}|dtd|dur|t|<t|S)Nrz'bind_textdomain_codeset() is deprecatedr^)rRrSrT_localecodesetsrG)rrgrRr"r"r#r s r cCs8z t|t|d}Wn ty|YSw||Srj)rrrGrr )rrurr"r"r#r s   r cCsddl}|dtdddl}t|}z(||ddtt|t |d|d}Wdn1s6wYWnt yN| |pJ| YSw||ddt| |WdS1sjwYdS)Nrz1ldgettext() is deprecated, use dgettext() insteadr^rw.*\bparameter codeset\b.*rgrx)rRrSrTrrrGryrzrrrr{r|r)rrurRrrgrr"r"r#rs.    $rcCsLz t|t|d}Wnty|dkr|YS|YSw||||Sr})rrrGrr)rr~rr;rr"r"r#r s r c Csddl}|dtdddl}t|}z(||ddtt|t |d|d}Wdn1s6wYWnt yW|dkrJ|}n|}| |pS| YSw||ddt| |||WdS1suwYdS) Nrz3ldngettext() is deprecated, use dngettext() insteadr^rwrrr4r)rRrSrTrrrGryrzrrrr{r|r) rr~rr;rRrrgrrr"r"r#rs4     $rcCs:z t|t|d}Wn ty|YSw|||Srj)rrrGrr)rrrurr"r"r#rs   rcCsNz t|t|d}Wnty|dkr|YS|YSw|||||Sr})rrrGrr)rrr~rr;rr"r"r#rs rcCs tt|Srj)r r)rur"r"r#r s r cCsZddl}|dtd||ddttt|WdS1s&wYdS)Nrrvr^rwz.*\bldgettext\b.*)rRrSrTryrzrr)rurRr"r"r#rs $rcCstt|||Srj)r r)r~rr;r"r"r#rsrcCs^ddl}|dtd||ddttt|||WdS1s(wYdS)Nrrr^rwz.*\bldngettext\b.*)rRrSrTryrzrr)r~rr;rRr"r"r#rs  $rcCs tt||Srj)rr)rrur"r"r#rs rcCstt||||Srj)rr)rr~rr;r"r"r#rsr)r7)NNFrj)/rrsys__all__rr base_prefixrcompileVERBOSEDOTALLrr$r%rErrFrCrUr]rirrrrrrrrrrrr r r rr rrrr rrrrrrr"r"r"r#s^0     1 $+h 9& +