HEX
Server: Apache
System: Linux msm5694.mjhst.com 3.10.0-1160.119.1.el7.x86_64 #1 SMP Tue Jun 4 14:43:51 UTC 2024 x86_64
User: camjab_ssh (1000)
PHP: 5.3.29
Disabled: NONE
Upload Files
File: //lib64/python3.6/__pycache__/gettext.cpython-36.opt-1.pyc
3


 \T@sdZddlZddlZddlZddlZddlZddlZddlZddlm	Z	dddddd	d
ddd
dddddddgZ
ejjej
ddZejdejejBZddZddZdPZd)d*eed+DZd,d-d.d/ZdRd0d1Zd2d3Zd4d5Zd6d7ZGd8ddZGd9ddeZdSd;dZiZdTd<dZ dUd=d	Z!ia"ia#d>a$dVd?d
Z%dWd@dZ&dXdAdZ'dBd
Z(dCdZ)dDdZ*dEdZ+dFdZ,dGdZ-dHdZ.dIdZ/e Z0dS)YaInternationalization and localization support.

This module provides internationalization (I18N) and localization (L10N)
support for your Python programs by providing an interface to the GNU gettext
message catalog library.

I18N refers to the operation by which a program is made aware of multiple
languages.  L10N refers to the adaptation of your program, once
internationalized, to the local language and cultural habits.

N)ENOENTNullTranslationsGNUTranslationsCatalogfindtranslationinstall
textdomainbindtextdomainbind_textdomain_codesetdgettext	dngettextgettextlgettext	ldgettext
ldngettext	lngettextngettextZsharelocalea
        (?P<WHITESPACES>[ \t]+)                    | # spaces and horizontal tabs
        (?P<NUMBER>[0-9]+\b)                       | # decimal integer
        (?P<NAME>n\b)                              | # only n is allowed
        (?P<PARENTHESIS>[()])                      |
        (?P<OPERATOR>[-*/%+?:]|[><!]=?|==|&&|\|\|) | # !, *, /, %, +, -, <, >,
                                                     # <=, >=, ==, !=, &&, ||,
                                                     # ? :
                                                     # unary and bitwise ops
                                                     # not allowed
        (?P<INVALID>\w+|.)                           # invalid token
    ccsTxHtjt|D]8}|j}|dkr"q|j|}|dkr@td||VqWdVdS)NZWHITESPACESZINVALIDz invalid token in plural form: %s)refinditer_token_pattern	lastgroupgroup
ValueError)pluralmoZkindvaluer/usr/lib64/python3.6/gettext.py	_tokenizeTs

r!cCs|rtd|StdSdS)Nz#unexpected token in plural form: %szunexpected end of plural form)r)rrrr _error_sr"||&&==!=<><=>=+-*/%cCs i|]\}}|D]
}||qqSrr).0iZopsoprrr 
<dictcomp>msr3orandz//)z||z&&r.cCsd}t|}x|dkr(|d7}t|}qW|dkr\t|\}}d||f}|dkrtdnP|dkrrd	||f}n:yt|d
}Wntk
rt|dYnXd||f}t|}d}xh|tkr t|}||krP|dkr|dkrd|}tj||}t||d\}	}d|||	f}|}qW||ko6dknrFd|}|dkr|dkrt|d\}
}|dkrzt|t|\}}d|
||f}|dkrd|}||fS)Nr!znot (z%s(%s))z%unbalanced parenthesis in plural formnz%s%s
z%s%ddz(%s)r4z%s %s %s?r:z%s if %s else %s)r=r>)r=r>)next_parserintr"_binary_ops	_c2py_opsget)tokensZpriorityresultnexttoksubrjr1r2rightZif_trueZif_falserrr rBpsP



rBcCs:yt|}Wn(tk
r4td|jjfdYnX|S)Nz'Plural value must be an integer, got %s)round	TypeError	__class____name__)r:r1rrr _as_intsrQcCst|dkrtdy~tt|\}}|r2t|d}x>|D]6}|dkrb|d7}|dkrrtdq<|dkr<|d8}q<Wd	ti}td
|||dStk
rtdYnXdS)
zGets a C expression as used in PO files for plural forms and returns a
    Python function that implements an equivalent expression.
    iz"plural form expression is too longrr8r4z%plural form expression is too complexr9rQzif True:
            def func(n):
                if not isinstance(n, int):
                    n = _as_int(n)
                return int(%s)
            funcN)lenrrBr!r"rQexecRecursionError)rrHrIZdepthcnsrrr c2pys(

rYc
Cs:tj|}d}d	}d
}d}|jd}|dkrN||d}|d|}||O}nd}|jd}|dkr||d}|d|}||O}nd}|jd}|dkr||d}|d|}||O}nd}|}	g}
xbt|dD]R}||@s|	}||@r||7}||@r||7}||@r ||7}|
j|qW|
j|
S)Nr4r@r._r4rZr>)rZ	normalizerrangeappendreverse)
locZCOMPONENT_CODESETZCOMPONENT_TERRITORYZCOMPONENT_MODIFIERmaskposZmodifiercodesetZ	territoryZlanguageZretr1valrrr _expand_langsJ










rfc@speZdZdddZddZddZdd	Zd
dZdd
ZddZ	ddZ
ddZddZddZ
dddZdS)rNcCs.i|_d|_d|_d|_|dk	r*|j|dS)N)_info_charset_output_charset	_fallbackrB)selffprrr __init__szNullTranslations.__init__cCsdS)Nr)rkrlrrr rBszNullTranslations._parsecCs|jr|jj|n||_dS)N)rjadd_fallback)rkfallbackrrr rnszNullTranslations.add_fallbackcCs|jr|jj|S|S)N)rjr)rkmessagerrr r	szNullTranslations.gettextcCs2|jr|jj|S|jr$|j|jS|jtjS)N)rjrriencodergetpreferredencoding)rkrprrr rs
zNullTranslations.lgettextcCs*|jr|jj|||S|dkr"|S|SdS)Nr4)rjr)rkmsgid1msgid2r:rrr rs
zNullTranslations.ngettextcCsH|jr|jj|||S|dkr$|}n|}|jr:|j|jS|jtjS)Nr4)rjrrirqrrr)rkrsrtr:tmsgrrr rszNullTranslations.lngettextcCs|jS)N)rg)rkrrr info(szNullTranslations.infocCs|jS)N)rh)rkrrr charset+szNullTranslations.charsetcCs|jS)N)ri)rkrrr output_charset.szNullTranslations.output_charsetcCs
||_dS)N)ri)rkrwrrr set_output_charset1sz#NullTranslations.set_output_charsetcCsvddl}|j|jd<t|drrd|kr6|jd|jd<d|krJ|j|jd<d|kr^|j|jd<d|krr|j|jd<dS)Nrr]__contains__rrrr)builtinsr__dict__hasattrrrr)rknamesr{rrr r4s
zNullTranslations.install)N)N)rP
__module____qualname__rmrBrnrrrrrvrwrxryrrrrr rs
c@sHeZdZdZdZdZddZddZd	d
ZddZ	d
dZ
ddZdS)rl*l$<rr4cCs|d?|d@fS)z/Returns a tuple of major version, minor versionir)rkversionrrr 
_get_versionsJszGNUTranslations._get_versionsc"Cstj}t|dd}i|_}dd|_|j}t|}|d|ddd}||jkrv|d	|dd
\}}	}
}d}n6||jkr|d|dd
\}}	}
}d
}nt	dd||j
|\}
}|
|jkrt	ddt|
|xt
d|	D]}||||
|
d\}}||}|||||d\}}||}||kr^||kr^|||}|||}nt	dd||dkrRd}x|jdD]}|jj}|sqd}}d|kr|jdd\}}|jj}|j}||j|<|}n|r|j|d|7<|dkr|jdd|_n0|dkr|jd}|djdd}t||_qW|jp\d}d|kr|jd\}} |jd}t||}x>t|D]\}}!t|!||||f<qWnt|||t||<|
d7}
|d7}qWdS)z8Override this method to support alternative .mo formats.namercSst|dkS)Nr4)rC)r:rrr <lambda>Usz(GNUTranslations._parse.<locals>.<lambda>z<INr>rz<4IrRz<IIz>4Iz>IIzBad magic numberzBad version number zFile is corrupt
r@r4
zcontent-typezcharset=zplural-forms;zplural=ascii)structunpackgetattr_catalogrreadrTLE_MAGICBE_MAGICOSErrorrVERSIONSstrr^splitdecodestriplowerrgrhrY	enumerate)"rkrlrfilenameZcatalogZbufZbuflenmagicrZmsgcountZ	masteridxZtransidxZiiZ
major_versionZ
minor_versionr1ZmlenZmoffZmendZtlenZtoffZtendmsgruZlastkZb_itemitemkvrrwrsrtxrrr rBNsr














zGNUTranslations._parsecCsRt}|jj||}||kr2|jr.|jj|S|}|jrD|j|jS|jtjS)N)	objectrrFrjrrirqrrr)rkrpmissingrurrr rszGNUTranslations.lgettextcCsvy|j||j|f}Wn<tk
rT|jr>|jj|||S|dkrL|}n|}YnX|jrh|j|jS|jtjS)Nr4)	rrKeyErrorrjrrirqrrr)rkrsrtr:rurrr rs
zGNUTranslations.lngettextcCs6t}|jj||}||kr2|jr.|jj|S|S|S)N)rrrFrjr)rkrprrurrr rszGNUTranslations.gettextcCsZy|j||j|f}Wn<tk
rT|jr>|jj|||S|dkrL|}n|}YnX|S)Nr4)rrrrjr)rkrsrtr:rurrr rs
zGNUTranslations.ngettextN)rr4)rPrrrrrrrBrrrrrrrr rBsT	FcCs|dkrt}|dkrTg}x(dD] }tjj|}|r|jd}PqWd|krT|jdg}x0|D](}x"t|D]}||krl|j|qlWq^W|rg}	nd}	xL|D]D}|dkrPtjj||dd|}
tjj	|
r|r|	j|
q|
SqW|	S)	NLANGUAGELC_ALLLC_MESSAGESLANGr@Cz%s.mo)rrrr)
_default_localedirosenvironrFrr_rfpathjoinexists)domain	localedir	languagesallZenvarreZnelangsZlangZnelangrHmofilerrr rs8




cCs|dkrt}t|||dd}|s6|r*tSttd|d}x|D]|}|tjj|f}	tj	|	}
|
dkrt
|d}tj|	||}
WdQRXtj|
}
|r|
j
||dkr|
}q@|j|
q@W|S)NT)rz$No translation file found for domainrb)rrrrrrrabspath
_translationsrFopen
setdefaultcopyryrn)rrrZclass_rordZmofilesrHrkeytrlrrr rs*



cCst||d|d}|j|dS)NT)rord)rr)rrrdr~rrrr rsZmessagescCs|dk	r|atS)N)_current_domain)rrrr r	'scCs|dk	r|t|<tj|tS)N)_localedirsrFr)rrrrr r
.scCs|dk	r|t|<tj|S)N)_localecodesetsrF)rrdrrr r5scCs@y t|tj|dtj|d}Wntk
r4|SX|j|S)N)rd)rrrFrrr)rrprrrr r<scCsRtj|}yt|tj|d|d}Wn"tk
rF|j|pBtjSX|j|S)N)rd)	rrFrrrrqrrrr)rrprdrrrr rDs
cCsTy t|tj|dtj|d}Wn$tk
rD|dkr<|S|SYnX|j|||S)N)rdr4)rrrFrrr)rrsrtr:rrrr r
Ls
cCshtj|}yt|tj|d|d}Wn4tk
rX|dkrB|}n|}|j|pTtjSX|j|||S)N)rdr4)	rrFrrrrqrrrr)rrsrtr:rdrrurrr rWs
cCs
tt|S)N)rr)rprrr rcscCs
tt|S)N)rr)rprrr rfscCstt|||S)N)r
r)rsrtr:rrr riscCstt|||S)N)rr)rsrtr:rrr rlsr#r$r%r&r'r(r)r*r+r,r-r.r/)rrrrrr)r)NNF)NNNFN)NNN)N)N)N)1__doc__rriorrrsyserrnor__all__rrbase_prefixrcompileVERBOSEDOTALLrr!r"rDrrErBrQrYrfrrrrrrrrrr	r
rrrr
rrrrrrrrrr <module>s^&8



1$*K
&