3
gz*                 @   s  d Z ddl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 ddlmZ d	d
dddddddddddddddddddddd d!d"d#gZ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d.d Zd/d Zd0d! ZeeeZeeeZ d1d Z!dPd2d3Z"d4d5 Z#dQd6dZ$dRd7dZ%dSd8d"Z&d9d	 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.dTdBdZ/dCdD Z0dAdEdFdGZ1dHd Z2dId Z3dJd Z4edKZ5dLdM Z6dNdO Z7dS )Uz
Internationalization support.
    N)ContextDecorator)ROUND_UPDecimal)autoreload_startedfile_changed)RemovedInDjango40Warning)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ugettextugettext_lazyugettext_noopngettextngettext_lazy	ungettextungettext_lazypgettextpgettext_lazy	npgettextnpgettext_lazyLANGUAGE_SESSION_KEYZ	_languagec               @   s   e Zd ZdS )TranslatorCommentWarningN)__name__
__module____qualname__ r)   r)   _/var/www/tester-filtro-web/env/lib/python3.6/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.   )Zdispatch_uid)
trans_null)Zdjango.confr,   ZUSE_I18NZdjango.utils.translationr-   Z!django.utils.translation.reloaderr.   r/   r   connectr   r0   setattrgetattr)selfZ	real_namer,   Ztransr.   r/   r)   r)   r*   __getattr__7   s    zTrans.__getattr__N)r&   r'   r(   __doc__r5   r)   r)   r)   r*   r+   *   s   r+   c             C   s
   t j| S )N)_transr   )messager)   r)   r*   r   L   s    c             C   s   t jdtdd t| S )zx
    A legacy compatibility wrapper for Unicode handling on Python 2.
    Alias of gettext_noop() since Django 2.0.
    zkdjango.utils.translation.ugettext_noop() is deprecated in favor of django.utils.translation.gettext_noop().   )
stacklevel)warningswarnr   r   )r8   r)   r)   r*   r   P   s    
c             C   s
   t j| S )N)r7   r   )r8   r)   r)   r*   r   ]   s    c             C   s   t jdtdd t| S )zs
    A legacy compatibility wrapper for Unicode handling on Python 2.
    Alias of gettext() since Django 2.0.
    zadjango.utils.translation.ugettext() is deprecated in favor of django.utils.translation.gettext().r9   )r:   )r;   r<   r   r   )r8   r)   r)   r*   r   a   s    
c             C   s   t j| ||S )N)r7   r   )singularpluralnumberr)   r)   r*   r   n   s    c             C   s   t jdtdd t| ||S )zt
    A legacy compatibility wrapper for Unicode handling on Python 2.
    Alias of ngettext() since Django 2.0.
    zcdjango.utils.translation.ungettext() is deprecated in favor of django.utils.translation.ngettext().r9   )r:   )r;   r<   r   r   )r=   r>   r?   r)   r)   r*   r   r   s    
c             C   s   t j| |S )N)r7   r    )contextr8   r)   r)   r*   r       s    c             C   s   t j| |||S )N)r7   r"   )r@   r=   r>   r?   r)   r)   r*   r"      s    c             C   s   t jdtdd t| S )z
    A legacy compatibility wrapper for Unicode handling on Python 2. Has been
    Alias of gettext_lazy since Django 2.0.
    zkdjango.utils.translation.ugettext_lazy() is deprecated in favor of django.utils.translation.gettext_lazy().r9   )r:   )r;   r<   r   r   )r8   r)   r)   r*   r      s    
c                st   t tr$d< tf }nLj G fddd t fdd f }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 )Nr=   )bool)r4   )kwargsr)   r*   __bool__   s    z/lazy_number.<locals>.NumberAwareString.__bool__c                s.   y|  S  t k
r(   t d  Y nX d S )Nz|Your dictionary lacks key '%s'. Please provide it, because it is required to determine whether string is singular or plural.)KeyError)r4   values)r?   r)   r*   _get_number_value   s    z8lazy_number.<locals>.NumberAwareString._get_number_valuec                s   |d<  f S )Nr?   r)   )r4   number_value)funcrB   r)   r*   
_translate   s    z1lazy_number.<locals>.NumberAwareString._translatec                s,   |r r| j |n|d }| j|j||S )Nr   )rF   rI   format)r4   argsrB   rG   )r?   r)   r*   rJ      s    z-lazy_number.<locals>.NumberAwareString.formatc                sN   t |tr r| j|}n|}| j|}y|| }W n tk
rH   Y nX |S )N)
isinstancedictrF   rI   	TypeError)r4   rhsrG   Z
translated)r?   r)   r*   __mod__   s    
z.lazy_number.<locals>.NumberAwareString.__mod__N)r&   r'   r(   rC   rF   rI   rJ   rP   r)   )rH   rB   r?   r)   r*   NumberAwareString   s
   
rQ   c                 s     S )Nr)   )rB   )rQ   r)   r*   <lambda>   s    zlazy_number.<locals>.<lambda>c                  s   t  ffS )N)_lazy_number_unpickler)   )rH   r?   original_kwargsresultclassr)   r*   rR      s    )rL   intr   copy
__reduce__)rH   rU   r?   rB   proxyr)   )rQ   rH   rB   r?   rT   rU   r*   lazy_number   s    
#rZ   c             C   s   t | |fd|i|S )Nr?   )rZ   )rH   rU   r?   rB   r)   r)   r*   rS      s    rS   c             C   s   t tt| ||dS )N)r=   r>   r?   )rZ   r   str)r=   r>   r?   r)   r)   r*   r      s    c             C   s   t jdtdd t| ||S )z}
    A legacy compatibility wrapper for Unicode handling on Python 2.
    An alias of ungettext_lazy() since Django 2.0.
    zmdjango.utils.translation.ungettext_lazy() is deprecated in favor of django.utils.translation.ngettext_lazy().r9   )r:   )r;   r<   r   r   )r=   r>   r?   r)   r)   r*   r      s    
c             C   s   t tt| |||dS )N)r@   r=   r>   r?   )rZ   r"   r[   )r@   r=   r>   r?   r)   r)   r*   r#      s    c             C   s
   t j| S )N)r7   r
   )languager)   r)   r*   r
      s    c               C   s   t j S )N)r7   r   r)   r)   r)   r*   r      s    c               @   s&   e Zd Zd	ddZdd Zdd ZdS )
r   Fc             C   s   || _ || _d S )N)r\   r   )r4   r\   r   r)   r)   r*   __init__   s    zoverride.__init__c             C   s(   t  | _| jd k	rt| j nt  d S )N)r   old_languager\   r
   r   )r4   r)   r)   r*   	__enter__   s    
zoverride.__enter__c             C   s.   | j d krt  n| jr t  n
t| j  d S )N)r^   r   r   r
   )r4   exc_type	exc_value	tracebackr)   r)   r*   __exit__   s
    
zoverride.__exit__N)F)r&   r'   r(   r]   r_   rc   r)   r)   r)   r*   r      s   
c               C   s   t j S )N)r7   r   r)   r)   r)   r*   r      s    c               C   s   t j S )N)r7   r   r)   r)   r)   r*   r     s    c             C   s
   t j| S )N)r7   r   )	lang_coder)   r)   r*   r     s    c             C   sF   | j d}|dkr:| d| j d | |d d j  S | j 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    
(c             C   sd   | j  jd\} }}|s| S |jd\}}}t|dkr@|j n|j }|rX|d| 7 }| d | S )z8Turn a language name (en-us) into a locale name (en_US).rf   r9   re   )ri   	partitionlentitleupper)r\   re   Zcountrytailr)   r)   r*   r     s    Fc             C   s   t j| |S )N)r7   r   )request
check_pathr)   r)   r*   r   "  s    c             C   s
   t j| S )N)r7   get_language_from_path)pathr)   r)   r*   rs   &  s    rs   )strictc            C   s   t j| |S )N)r7   get_supported_language_variant)rd   ru   r)   r)   r*   rv   *  s    rv   c             K   s   ddl m} || f|S )Nrg   )r   )templater   )srcrB   r   r)   r)   r*   r   .  s    c               C   s   t j S )N)r7   r   r)   r)   r)   r*   r   3  s    c             C   s   ddl m} y2||  }d|kr8d|kr8t|d d }n|}W nh tk
r   d| krbtd|  | jdd }y|| }W n$ tk
r   td| |f Y nX Y nX |rt|d |d< |S )	Nr   )	LANG_INFOfallbacknamerf   zUnknown language code %s.z Unknown language code %s and %s.Zname_translated)Zdjango.conf.localery   r   rD   splitr   )rd   ry   Z	lang_infoinfoZgeneric_lang_coder)   r)   r*   r   7  s"    z\s*\n\s*c             C   s   t jd| j S )N )trim_whitespace_resubstrip)sr)   r)   r*   trim_whitespaceP  s    r   c             C   s"   t t| d jtdtdd S )Nrg   0)rounding)rV   r   quantizer   )valuer)   r)   r*   round_away_from_oneT  s    r   )N)N)N)N)F)8r6   r;   
contextlibr   decimalr   r   Zdjango.utils.autoreloadr   r   Zdjango.utils.deprecationr   Zdjango.utils.functionalr   Zdjango.utils.regex_helperr	   __all__r$   SyntaxWarningr%   r+   r7   r   r   r   r   r   r   r    r"   r[   r   r!   r   rZ   rS   r   r   r#   r
   r   r   r   r   r   r   r   r   rs   rv   r   r   r   r   r   r   r)   r)   r)   r*   <module>   sp   


/


	
