Current File : //opt/alt/python35/lib64/python3.5/__pycache__/gettext.cpython-35.opt-2.pyc


���]T�@svddlZddlZddlZddlZddlZddlZddlZddlmZddddddd	d
ddd
ddddddgZ	ej
jejdd�Z
ejdejejB�Zdd�Zdd�ZdNZd(d)�eed*�D�Zdd+dd,d&d-iZdOd.d/�Zd0d1�Zd2d3�Zd4d5�ZGd6d�d�ZGd7d�de�Zddd8d9d�ZiZdddd8dd:d�Zdddd;d�Z ia!ia"d<a#dd=d	�Z$dd>d
�Z%dd?d�Z&d@d�Z'dAd�Z(dBd
�Z)dCd�Z*dDd�Z+dEd�Z,dFd�Z-dGd�Z.eZ/dS)P�N)�ENOENT�NullTranslations�GNUTranslations�Catalog�find�translation�install�
textdomain�bindtextdomain�bind_textdomain_codeset�dgettext�	dngettext�gettext�lgettext�	ldgettext�
ldngettext�	lngettext�ngettext�share�localea�
        (?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
    ccsnxbtjt|�D]N}|j}|dkr1q|j|�}|dkr\td|��|VqWdVdS)N�WHITESPACES�INVALIDz invalid token in plural form: %s�)�re�finditer�_token_pattern�	lastgroup�group�
ValueError)�plural�mo�kind�value�r#�,/opt/alt/python35/lib64/python3.5/gettext.py�	_tokenizeTs		r%cCs"|rtd|�Std�SdS)Nz#unexpected token in plural form: %szunexpected end of plural form)r)r"r#r#r$�_error_sr&�||�&&�==�!=�<�>�<=�>=�+�-�*�/�%cCs,i|]"\}}|D]}||�qqSr#r#)�.0�iZops�opr#r#r$�
<dictcomp>ms	r7��or�andz//cCs<d}t|�}x&|dkr:|d7}t|�}qW|dkr�t|�\}}d||f}|dkr�td��nf|dkr�d	||f}nGyt|d
�}Wn!tk
r�t|�d�YnXd||f}t|�}d}x�|tkr�t|}||kr"P|dkrD|dkrDd|}tj||�}t||d�\}	}d|||	f}|}q�W||ko�dknr�d|}|dkr2|dkr2t|d�\}
}|dkr�t|��t|�\}}d|
||f}|dkr2d|}||fS)Nr�!znot �(z%s(%s)�)z%unbalanced parenthesis in plural form�nz%s%s�
z%s%d�d��z(%s)r8z%s %s %s�?r�:z%s if %s else %s)rArB)rArB)�next�_parser�intr&�_binary_ops�	_c2py_ops�get)�tokens�priority�result�nexttok�subr"�jr5r6�right�if_true�if_falser#r#r$rFpsP






rFcCsEyt|�}Wn.tk
r@td|jjf�d�YnX|S)Nz'Plural value must be an integer, got %s)�round�	TypeError�	__class__�__name__)r>r5r#r#r$�_as_int�s
rXcCs�t|�dkrtd��y�tt|��\}}|rKt|��d}xU|D]M}|dkr�|d7}|dkr�td��qX|dkrX|d8}qXWd	ti}td
||�|dSWntk
r�td��YnXdS)Ni�z"plural form expression is too longrr<r8�z%plural form expression is too complexr=rXz�if True:
            def func(n):
                if not isinstance(n, int):
                    n = _as_int(n)
                return int(%s)
            �func)�lenrrFr%r&rX�exec�RecursionError)rrMrN�depth�c�nsr#r#r$�c2py�s(


rac
Cs�tj|�}d}d	}d
}d}|jd�}|dkro||d�}|d|�}||O}nd}|jd�}|dkr�||d�}|d|�}||O}nd}|jd�}|dkr||d�}|d|�}||O}nd}|}	g}
xrt|d�D]`}||@s.|	}||@rY||7}||@rm||7}||@r�||7}|
j|�q.W|
j�|
S)Nr8r��@r�.�_r8rbrB)r�	normalizer�range�append�reverse)
�loc�COMPONENT_CODESET�COMPONENT_TERRITORY�COMPONENT_MODIFIER�mask�pos�modifier�codeset�	territory�language�retr5�valr#r#r$�_expand_lang�sJ









rvc@s�eZdZddd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Zdd�Z	dd�Z
dd�Zdd�Zdd�Z
ddd�ZdS)rNcCsAi|_d|_d|_d|_|dk	r=|j|�dS)N)�_info�_charset�_output_charset�	_fallbackrF)�self�fpr#r#r$�__init__�s				zNullTranslations.__init__cCsdS)Nr#)r{r|r#r#r$rFszNullTranslations._parsecCs)|jr|jj|�n	||_dS)N)rz�add_fallback)r{�fallbackr#r#r$r~s	zNullTranslations.add_fallbackcCs|jr|jj|�S|S)N)rzr)r{�messager#r#r$r	s	zNullTranslations.gettextcCsE|jr|jj|�S|jr2|j|j�S|jtj��S)N)rzrry�encoder�getpreferredencoding)r{r�r#r#r$rs
		zNullTranslations.lgettextcCs7|jr|jj|||�S|dkr/|S|SdS)Nr8)rzr)r{�msgid1�msgid2r>r#r#r$rs
	zNullTranslations.ngettextcCsf|jr|jj|||�S|dkr4|}n|}|jrS|j|j�S|jtj��S)Nr8)rzrryr�rr�)r{r�r�r>�tmsgr#r#r$rs			zNullTranslations.lngettextcCs|jS)N)rw)r{r#r#r$�info(szNullTranslations.infocCs|jS)N)rx)r{r#r#r$�charset+szNullTranslations.charsetcCs|jS)N)ry)r{r#r#r$�output_charset.szNullTranslations.output_charsetcCs
||_dS)N)ry)r{r�r#r#r$�set_output_charset1sz#NullTranslations.set_output_charsetcCs�ddl}|j|jd<t|d�r�d|krK|jd|jd<d|krg|j|jd<d|kr�|j|jd<d|kr�|j|jd<dS)Nrre�__contains__rrrr)�builtinsr�__dict__�hasattrrrr)r{�namesr�r#r#r$r4szNullTranslations.install)rW�
__module__�__qualname__r}rFr~rrrrr�r�r�r�rr#r#r#r$r�sc@sjeZdZdZdZdZdd�Zdd�Zd	d
�Zdd�Z	d
d�Z
dd�ZdS)rl�*l�$<rr8cCs|d?|d@fS)N�i��r#)r{�versionr#r#r$�
_get_versionsJszGNUTranslations._get_versionsc"Cs�tj}t|dd�}i|_}dd�|_|j�}t|�}|d|dd��d}||jkr�|d|dd	��\}}	}
}d
}nO||jkr�|d|dd	��\}}	}
}d}nt	dd
|��|j
|�\}
}|
|jkr8t	ddt|
�|��x�t
d|	�D]�}||||
|
d��\}}||}|||||d��\}}||}||kr�||kr�|||�}|||�}nt	dd|��|dkrd}x|jd�D]}|j�j�}|s8qd}}d|kr�|jdd�\}}|j�j�}|j�}||j|<|}n|r�|j|d|7<|dkr�|jd�d|_q|dkr|jd�}|djd�d}t|�|_qW|jp+d}d|kr�|jd�\}} |jd�}t||�}xRt|�D]%\}}!t|!|�|||f<qzWnt||�|t||�<|
d7}
|d7}qHWdS)N�namercSst|dk�S)Nr8)rG)r>r#r#r$�<lambda>Usz(GNUTranslations._parse.<locals>.<lambda>z<IrBrz<4IrYz<IIz>4Iz>IIzBad magic numberzBad version number �zFile is corrupts
rDr8�
zcontent-typezcharset=zplural-forms�;zplural=�asciis)�struct�unpack�getattr�_catalogr�readr[�LE_MAGIC�BE_MAGIC�OSErrorr��VERSIONS�strrg�split�decode�strip�lowerrwrxra�	enumerate)"r{r|r��filename�catalog�buf�buflen�magicr��msgcount�	masteridx�transidx�ii�
major_version�
minor_versionr5�mlen�moff�mend�tlen�toff�tend�msgr��lastk�b_item�item�k�vrr�r�r��xr#r#r$rFNsr	
%	%	#
#


	
 
zGNUTranslations._parsecCsut�}|jj||�}||krI|jrC|jj|�S|}|jrb|j|j�S|jtj��S)N)	�objectr�rJrzrryr�rr�)r{r��missingr�r#r#r$r�s			zGNUTranslations.lgettextcCs�y |j||j|�f}WnLtk
rn|jrO|jj|||�S|dkrd|}n|}YnX|jr�|j|j�S|jtj��S)Nr8)	r�r�KeyErrorrzrryr�rr�)r{r�r�r>r�r#r#r$r�s 
			zGNUTranslations.lngettextcCsKt�}|jj||�}||krG|jrC|jj|�S|S|S)N)r�r�rJrzr)r{r�r�r�r#r#r$r�s		zGNUTranslations.gettextcCssy |j||j|�f}WnLtk
rn|jrO|jj|||�S|dkrd|}n|}YnX|S)Nr8)r�rr�rzr)r{r�r�r>r�r#r#r$r�s 
		zGNUTranslations.ngettextN)rr8)rWr�r�r�r�r�r�rFrrrrr#r#r#r$rBsT	FcCs?|dkrt}|dkrvg}x6dD].}tjj|�}|r+|jd�}Pq+Wd|krv|jd�g}x>|D]6}x-t|�D]}||kr�|j|�q�Wq�W|r�g}	nd}	xf|D]^}|dkr�Ptjj||dd|�}
tjj	|
�r�|r3|	j|
�q�|
Sq�W|	S)	N�LANGUAGE�LC_ALL�LC_MESSAGES�LANGrD�Cz%s.mo)r�r�r�r�)
�_default_localedir�os�environrJr�rhrv�path�join�exists)�domain�	localedir�	languages�all�envarru�nelangs�lang�nelangrM�mofiler#r#r$r�s8


	
cCs|dkrt}t|||dd�}|sO|r=t�Sttd|��d}x�|D]�}|tjj|�f}	tj	|	�}
|
dkr�t
|d��}tj|	||��}
WdQRXtj|
�}
|r�|
j
|�|dkr�|
}q\|j|
�q\W|S)Nr�Tz$No translation file found for domain�rb)rrrr�rr�r��abspath�
_translationsrJ�open�
setdefault�copyr�r~)r�r�r��class_rrq�mofilesrMr��key�tr|r#r#r$r�s*

	cCs,t||ddd|�}|j|�dS)NrTrq)rr)r�r�rqr�r�r#r#r$rs�messagescCs|dk	r|atS)N)�_current_domain)r�r#r#r$r	'scCs&|dk	r|t|<tj|t�S)N)�_localedirsrJr�)r�r�r#r#r$r
.s
cCs#|dk	r|t|<tj|�S)N)�_localecodesetsrJ)r�rqr#r#r$r5s
cCsTy.t|tj|d�dtj|��}Wntk
rF|SYnX|j|�S)Nrq)rr�rJr�r�r)r�r�r�r#r#r$r<s
	cCsotj|�}y%t|tj|d�d|�}Wn+tk
ra|j|pYtj��SYnX|j|�S)Nrq)	r�rJrr�r�r�rr�r)r�r�rqr�r#r#r$rDs%
cCsjy.t|tj|d�dtj|��}Wn&tk
rV|dkrN|S|SYnX|j|||�S)Nrqr8)rr�rJr�r�r)r�r�r�r>r�r#r#r$r
Ls
	cCs�tj|�}y%t|tj|d�d|�}WnFtk
r||dkrY|}n|}|j|pttj��SYnX|j|||�S)Nrqr8)	r�rJrr�r�r�rr�r)r�r�r�r>rqr�r�r#r#r$rWs%
	cCs
tt|�S)N)rr�)r�r#r#r$rcscCs
tt|�S)N)rr�)r�r#r#r$rfscCstt|||�S)N)r
r�)r�r�r>r#r#r$riscCstt|||�S)N)rr�)r�r�r>r#r#r$rls�r'�r(�r)r*�r+r,r-r.�r/r0�r1r2r3)r�r�r�r�r�r����)0rr��ior�rr��sys�errnor�__all__r�r��base_prefixr��compile�VERBOSE�DOTALLrr%r&rHr�rIrFrXrarvrrrr�rrr�r�r�r	r
rrrr
rrrrrrr#r#r#r$�<module>1sZT	1$*K�&