3
g#                 @   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   sh  |s|dkot jot j}|p|}|o*|dk}t| trJ| rJ| rJt| S d}t| trtdt| j krtt	t| } t| t	r|dk	rt	ddj
|d }	t| |	k rt	d} | j \}
}}t|t| dkrd	j| } | jd\}}t|||||||}d
j||S dj| }nt| }|d dkr>d}|dd }d|krn|jd\}}|dk	rx|d| }n
|d }}|dk	r|d|t|   }|o|| }|r\yt|}W n tk
r   |dg}Y nX |jd}d}d}xd|ddd D ]R}|r8||kr8|r"|jdp |}||ddd 7 }d}||7 }|d7 }qW |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   )r   ZUSE_L10NZUSE_THOUSAND_SEPARATOR
isinstanceintr   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$   W/var/www/tester-filtro-web/env/lib/python3.6/site-packages/django/utils/numberformat.pyr      sh    






r   )Nr   r   FN)decimalr   Zdjango.confr   Zdjango.utils.safestringr   r   r$   r$   r$   r%   <module>   s    