
vÅÏ^  ã               @   sO   d  d l  m Z d  d l m Z d  d l m Z d d  d d d d d „ Z d S)	é    )ÚDecimal)Úsettings)Ú	mark_safeNÚ Fc             C   sù  | s | d k o! t  j o! t  j } | p- | } | o? | d k } t |  t ƒ ri | ri | ri t |  ƒ Sd } t |  t ƒ rY| d k	 rÄ t d d j | d ƒ ƒ }	 t |  ƒ |	 k  rÄ t d ƒ }  |  j	 ƒ  \ }
 } } t | ƒ t
 | ƒ d k rGd j |  ƒ }  |  j d	 ƒ \ } } t | | | | | | | ƒ } d
 j | | ƒ Sd j |  ƒ } n t |  ƒ } | d d k r‹d } | d d … } d | k rË| j d ƒ \ } } | d k	 rØ| d | … } n | d } } | d k	 rü| d | t
 | ƒ } | o	| | } | ríy t | ƒ } Wn t k
 rB| d g } Yn X| j d ƒ } d } d } xy | d d d … D]d } | rÂ| | k rÂ| r¥| j d ƒ p¢| } | | d d d … 7} d } | | 7} | d 7} qrW| 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   z0.Ú1Ú0éÈ   z{:e}Úez{}e{}z{:f}ú-é   Ú.éÿÿÿÿr   r   )r   ZUSE_L10NZUSE_THOUSAND_SEPARATORÚ
isinstanceÚintr   r   ÚrjustÚabsÚas_tupleÚlenÚformatÚsplitÚstrÚlistÚ	TypeErrorÚpop)ÚnumberZdecimal_sepZdecimal_posÚgroupingZthousand_sepZforce_groupingZuse_l10nZuse_groupingÚsignÚcutoffÚ_ÚdigitsZexponentZcoefficientZ
str_numberZint_partZdec_partZ	intervalsZactive_intervalZint_part_gdZcntÚdigit© r!   ú;/tmp/pip-build-8lau8j11/django/django/utils/numberformat.pyr      sd    $

r   )Údecimalr   Zdjango.confr   Zdjango.utils.safestringr   r   r!   r!   r!   r"   Ú<module>   s   	