U
    R+|jÐ  ã                   @   s2   d dl mZ d dlmZ d dlmZ d	dd„ZdS )
é    )ÚDecimal)Úsettings)Ú	mark_safeNÚ Fc                 C   sx  | dks| dkrt | ƒS |s*|dko.tjo.tj}|p6|}|oB|dk}t| tƒr^|s^|s^t | ƒS d}t| tƒrˆdt| ƒ ¡ krˆt	t| ƒƒ} t| t	ƒ�r,|dk	rÄt	dd 
|d¡ ƒ}	t| ƒ|	k rÄt	dƒ} |  ¡ \}
}}t|ƒt|ƒ dk�r d	 | ¡} |  d¡\}}t|||||||ƒ}d
 ||¡S d | ¡}nt| ƒ}|d dk�rRd}|dd… }d|k�r‚| d¡\}}|dk	�rŒ|d|… }n
|d }}|dk	�rª|d|t|ƒ  7 }|�o¶|| }|�rlzt|ƒ}W n tk
�rè   |dg}Y nX | d¡}d}d}|ddd… D ]R}|�rJ||k�rJ|�r4| d¡�p2|}||ddd… 7 }d}||7 }|d7 }�q
|ddd… }|| | S )aT  
    Get a number (as a number or string), and return it as a string,
    using formats defined as arguments:

    * decimal_sep: Decimal separator symbol (for example ".")
    * decimal_pos: Number of decimal positions
    * grouping: Number of digits in every group limited by thousand separator.
        For non-uniform digit grouping, it can be a sequence with the number
        of digit group sizes following the format used by the Python locale
        module in locale.localeconv() LC_NUMERIC grouping (e.g. (3, 2, 0)).
    * thousand_sep: Thousand separator symbol (for example ",")
    Nr   r   Úez0.Ú1Ú0éÈ   z{:e}z{}e{}z{:f}ú-é   Ú.éÿÿÿÿ)r   r   ZUSE_L10NZUSE_THOUSAND_SEPARATORÚ
isinstanceÚintÚfloatÚstrÚlowerr   ÚrjustÚabsÚas_tupleÚlenÚformatÚsplitÚlistÚ	TypeErrorÚpop)ÚnumberZdecimal_sepZdecimal_posÚgroupingZthousand_sepZforce_groupingZuse_l10nZuse_groupingÚsignÚcutoffÚ_ÚdigitsÚexponentZcoefficientZ
str_numberZint_partZdec_partZ	intervalsZactive_intervalZint_part_gdZcntÚdigit© r$   úac:\users\snmko\desktop\web_content\django_cbt\venv\Lib\site-packages\django/utils/numberformat.pyr      s~    ÿþ
ù	




r   )Nr   r   FN)Údecimalr   Zdjango.confr   Zdjango.utils.safestringr   r   r$   r$   r$   r%   Ú<module>   s        ù