o
    hágÅ  ã                   @   s<   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   sb  | du s| dkrt | ƒS |du rd}|otj}|p|}|o |dk}t| tƒr.|s.|s.t | ƒS d}t| tƒrCdt| ƒ ¡ v rCtt| ƒƒ} t| tƒr“|dur`tdd 	|d¡ ƒ}	t
| ƒ|	k r`tdƒ} |  ¡ \}
}}t
|ƒt|ƒ d	krd
 | ¡} |  d¡\}}t|||||||ƒ}d ||¡S d | ¡}nt| ƒ}|d dkr¥d}|dd… }d|v r»| d¡\}}|durº|d|… }n|d}}|durÎ|d|t|ƒ  7 }|oÓ|| }|r+zt|ƒ}W n tyê   |dg}Y nw | d¡}d}d}|ddd… D ](}|r||kr|r| d¡p|}||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   Tr   Úez0.Ú1Ú0éÈ   z{:e}z{}e{}z{:f}ú-é   Ú.éÿÿÿÿ)r   r   ÚUSE_THOUSAND_SEPARATORÚ
isinstanceÚintÚfloatÚstrÚlowerr   ÚrjustÚabsÚas_tupleÚlenÚformatÚsplitÚlistÚ	TypeErrorÚpop)ÚnumberÚdecimal_sepÚdecimal_posÚgroupingÚthousand_sepÚforce_groupingÚuse_l10nÚuse_groupingÚsignÚcutoffÚ_ÚdigitsÚexponentÚcoefficientÚ
str_numberÚint_partÚdec_partÚ	intervalsÚactive_intervalÚint_part_gdÚcntÚdigit© r3   úR/var/www/html/wtlms/venv/lib/python3.10/site-packages/django/utils/numberformat.pyr      s€   


ù	€
þ

r   )Nr   r   FN)Údecimalr   Údjango.confr   Údjango.utils.safestringr   r   r3   r3   r3   r4   Ú<module>   s    ù