a
    ¦Q•h­"  ã                   @   st  d Z ddlmZ ddlmZmZ ddlmZmZ ddl	m
Z
 ddlmZ g d¢ZG dd	„ d	eƒZG d
d„ dƒZeƒ Z[dd„ Zdd„ Zdd„ Zdd„ Zdd„ Ze
eeƒZe
eeƒZdBdd„Zdd„ ZdCdd„ZdDdd„Zdd „ Zd!d"„ ZG d#d$„ d$eƒZ d%d&„ Z!d'd(„ Z"d)d*„ Z#d+d,„ Z$d-d.„ Z%dEd0d1„Z&d2d3„ Z'd/d4œd5d6„Z(d7d8„ Z)d9d:„ Z*d;d<„ Z+ed=ƒZ,d>d?„ Z-d@dA„ Z.dS )Fz
Internationalization support.
é    )ÚContextDecorator)ÚROUND_UPÚDecimal)Úautoreload_startedÚfile_changed)Úlazy)Ú_lazy_re_compile)ÚactivateÚ
deactivateÚoverrideÚdeactivate_allÚget_languageÚget_language_from_requestÚget_language_infoÚget_language_bidiÚcheck_for_languageÚto_languageÚ	to_localeÚ
templatizeÚgettextÚgettext_lazyÚgettext_noopÚngettextÚngettext_lazyÚpgettextÚpgettext_lazyÚ	npgettextÚnpgettext_lazyc                   @   s   e Zd ZdS )ÚTranslatorCommentWarningN)Ú__name__Ú
__module__Ú__qualname__© r"   r"   úZ/var/www/sistema_ama/venv/lib/python3.9/site-packages/django/utils/translation/__init__.pyr   $   s   r   c                   @   s   e Zd ZdZdd„ ZdS )ÚTransa  
    The purpose of this class is to store the actual translation function upon
    receiving the first call to that function. After this is done, changes to
    USE_I18N will have no effect to which function is served upon request. If
    your tests rely on changing USE_I18N, you can delete all the functions
    from _trans.__dict__.

    Note that storing the function with setattr will have a noticeable
    performance effect, as access to the function goes the normal path,
    instead of using __getattr__.
    c                 C   st   ddl m} |jrLddlm} ddlm}m} tj	|dd� t
j	|dd� nddlm} t| |t||ƒƒ t||ƒS )Nr   )Úsettings)Ú
trans_real)Útranslation_file_changedÚwatch_for_translation_changesr'   )Údispatch_uid)Ú
trans_null)Údjango.confr%   ÚUSE_I18NÚdjango.utils.translationr&   Z!django.utils.translation.reloaderr'   r(   r   Úconnectr   r*   ÚsetattrÚgetattr)ÚselfZ	real_namer%   Ztransr'   r(   r"   r"   r#   Ú__getattr__>   s    ÿÿzTrans.__getattr__N)r   r    r!   Ú__doc__r2   r"   r"   r"   r#   r$   1   s   r$   c                 C   s
   t  | ¡S ©N)Ú_transr   ©Úmessager"   r"   r#   r   Z   s    r   c                 C   s
   t  | ¡S r4   )r5   r   r6   r"   r"   r#   r   ^   s    r   c                 C   s   t  | ||¡S r4   )r5   r   ©ÚsingularÚpluralÚnumberr"   r"   r#   r   b   s    r   c                 C   s   t  | |¡S r4   )r5   r   )Úcontextr7   r"   r"   r#   r   f   s    r   c                 C   s   t  | |||¡S r4   )r5   r   ©r<   r9   r:   r;   r"   r"   r#   r   j   s    r   Nc                    s|   t ˆtƒr(ˆˆd< tˆˆƒf i ˆ¤Ž}nPˆ ¡ ‰G ‡‡‡fdd„dˆƒ‰ t‡ fdd„ˆ ƒf i ˆ¤Ž}‡‡‡‡fdd„|_|S )Nr;   c                       sJ   e Zd Z‡fdd„Z‡fdd„Z‡ ‡fdd„Z‡fdd„Z‡fd	d
„ZdS )z&lazy_number.<locals>.NumberAwareStringc                    s   t ˆ d ƒS )Nr9   )Úbool©r1   ©Úkwargsr"   r#   Ú__bool__z   s    z/lazy_number.<locals>.NumberAwareString.__bool__c                    s.   z
|ˆ  W S  t y(   t dˆ  ƒ‚Y n0 d S )Nz|Your dictionary lacks key '%s'. Please provide it, because it is required to determine whether string is singular or plural.)ÚKeyError)r1   Úvalues©r;   r"   r#   Ú_get_number_value}   s    
þÿz8lazy_number.<locals>.NumberAwareString._get_number_valuec                    s   |ˆd< ˆ f i ˆ¤ŽS ©Nr;   r"   )r1   Únumber_value)ÚfuncrA   r"   r#   Ú
_translate‡   s    z1lazy_number.<locals>.NumberAwareString._translatec                    s0   |rˆ r|   |¡n|d }|  |¡j|i |¤ŽS )Nr   )rF   rJ   Úformat)r1   ÚargsrA   rH   rE   r"   r#   rK   ‹   s    ÿz-lazy_number.<locals>.NumberAwareString.formatc                    sL   t |tƒrˆ r|  |¡}n|}|  |¡}z||; }W n tyF   Y n0 |S r4   )Ú
isinstanceÚdictrF   rJ   Ú	TypeError)r1   ÚrhsrH   Z
translatedrE   r"   r#   Ú__mod__‘   s    
z.lazy_number.<locals>.NumberAwareString.__mod__N)r   r    r!   rB   rF   rJ   rK   rQ   r"   )rI   rA   r;   r"   r#   ÚNumberAwareStringy   s
   
rR   c                     s   ˆ ƒ S r4   r"   r@   )rR   r"   r#   Ú<lambda>ž   ó    zlazy_number.<locals>.<lambda>c                      s   t ˆ ˆˆˆffS r4   )Ú_lazy_number_unpickler"   )rI   r;   Úoriginal_kwargsÚresultclassr"   r#   rS   Ÿ   s    
þ)rM   Úintr   ÚcopyÚ
__reduce__)rI   rW   r;   rA   Úproxyr"   )rR   rI   rA   r;   rV   rW   r#   Úlazy_numberr   s    
%r\   c                 C   s   t | |fd|i|¤ŽS rG   )r\   )rI   rW   r;   rA   r"   r"   r#   rU   ¦   s    rU   c                 C   s   t tt| ||d�S )Nr8   )r\   r   Ústrr8   r"   r"   r#   r   ª   s    r   c                 C   s   t tt| |||d�S )Nr=   )r\   r   r]   r=   r"   r"   r#   r   ®   s    ÿr   c                 C   s
   t  | ¡S r4   )r5   r	   )Úlanguager"   r"   r#   r	   ´   s    r	   c                   C   s   t  ¡ S r4   )r5   r
   r"   r"   r"   r#   r
   ¸   s    r
   c                   @   s&   e Zd Zd	dd„Zdd„ Zdd„ ZdS )
r   Fc                 C   s   || _ || _d S r4   )r^   r
   )r1   r^   r
   r"   r"   r#   Ú__init__½   s    zoverride.__init__c                 C   s(   t ƒ | _| jd urt| jƒ ntƒ  d S r4   )r   Úold_languager^   r	   r   r?   r"   r"   r#   Ú	__enter__Á   s    
zoverride.__enter__c                 C   s.   | j d u rtƒ  n| jr tƒ  n
t| j ƒ d S r4   )r`   r   r
   r	   )r1   Úexc_typeÚ	exc_valueÚ	tracebackr"   r"   r#   Ú__exit__È   s
    
zoverride.__exit__N)F)r   r    r!   r_   ra   re   r"   r"   r"   r#   r   ¼   s   
r   c                   C   s   t  ¡ S r4   )r5   r   r"   r"   r"   r#   r   Ñ   s    r   c                   C   s   t  ¡ S r4   )r5   r   r"   r"   r"   r#   r   Õ   s    r   c                 C   s
   t  | ¡S r4   )r5   r   )Ú	lang_coder"   r"   r#   r   Ù   s    r   c                 C   sF   |   d¡}|dkr:| d|…  ¡ d | |d d…  ¡  S |  ¡ S dS )z8Turn a locale name (en_US) into a language name (en-us).Ú_r   Nú-é   )ÚfindÚlower)ÚlocaleÚpr"   r"   r#   r   Ý   s    
(r   c                 C   s|   |   ¡  d¡\}}}|s4| dd…   ¡ | dd…  S | d¡\}}}t|ƒdkrX| ¡ n| ¡ }|rp|d| 7 }|d | S )z8Turn a language name (en-us) into a locale name (en_US).rh   Né   é   rg   )rk   Ú	partitionÚlenÚtitleÚupper)r^   Úlangrg   ZcountryÚtailr"   r"   r#   r   æ   s    r   Fc                 C   s   t  | |¡S r4   )r5   r   )ÚrequestZ
check_pathr"   r"   r#   r   ö   s    r   c                 C   s
   t  | ¡S r4   )r5   Úget_language_from_path)Úpathr"   r"   r#   rw   ú   s    rw   )Ústrictc                C   s   t  | |¡S r4   )r5   Úget_supported_language_variant)rf   ry   r"   r"   r#   rz   þ   s    rz   c                 K   s   ddl m} || fi |¤ŽS )Nri   )r   )Útemplater   )ÚsrcrA   r   r"   r"   r#   r     s    r   c                   C   s   t  ¡ S r4   )r5   r   r"   r"   r"   r#   r     s    r   c                 C   s¼   ddl m} z2||  }d|v r8d|vr8t|d d ƒ}n|}W nd ty¢   d| vr`td|  ƒ‚|  d¡d }z|| }W n" tyœ   td| |f ƒ‚Y n0 Y n0 |r¸t|d ƒ|d< |S )	Nr   )Ú	LANG_INFOÚfallbackÚnamerh   zUnknown language code %s.z Unknown language code %s and %s.Zname_translated)Zdjango.conf.localer}   r   rC   Úsplitr   )rf   r}   Z	lang_infoÚinfoZgeneric_lang_coder"   r"   r#   r     s&    
ÿr   z\s*\n\s*c                 C   s   t  d|  ¡ ¡S )Nú )Útrim_whitespace_reÚsubÚstrip)Úsr"   r"   r#   Útrim_whitespace(  s    r‡   c                 C   s"   t t| d ƒjtdƒtd�ƒd S )Nri   Ú0)Úrounding)rX   r   Úquantizer   )Úvaluer"   r"   r#   Úround_away_from_one,  s    rŒ   )N)N)N)F)/r3   Ú
contextlibr   Údecimalr   r   Zdjango.utils.autoreloadr   r   Údjango.utils.functionalr   Údjango.utils.regex_helperr   Ú__all__ÚSyntaxWarningr   r$   r5   r   r   r   r   r   r]   r   r   r\   rU   r   r   r	   r
   r   r   r   r   r   r   r   rw   rz   r   r   r   rƒ   r‡   rŒ   r"   r"   r"   r#   Ú<module>   sL   #


4

	
