3
(h                 @   sJ   d dl mZ d dlmZ d dlmZ d dlmZ d dlm	Z	 dd	d
Z
dS )    )unicode_literals)Decimal)settings)six)	mark_safeN Fc             C   sT  t jo
t j}|p|}|o|dk}t| trD| rD| rDttj| S d}t| tr^dj	| }n
tj| }|d dkrd}|dd }d|kr|j
d\}	}
|dk	r|
d| }
n
|d }	}
|dk	r|
d|t|
   }
|
r||
 }
|rHd}xLt|	ddd	 D ]6\}}|r,||  r,||ddd
 7 }||7 }q W |ddd }	||	 |
 S )ap  
    Gets a number (as a number or string), and returns 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
    * thousand_sep: Thousand separator symbol (for example ",")
    r   r   z{:f}-   N.0r   r   )r   ZUSE_L10NZUSE_THOUSAND_SEPARATOR
isinstanceintr   r   	text_typer   formatsplitlen	enumerate)numberZdecimal_sepZdecimal_posgroupingZthousand_sepZforce_groupingZuse_groupingsignZ
str_numberZint_partZdec_partZint_part_gdZcntdigit r   =/tmp/pip-install-q3hcpn_q/Django/django/utils/numberformat.pyr   
   s:    


r   )Nr   r   F)
__future__r   decimalr   Zdjango.confr   Zdjango.utilsr   Zdjango.utils.safestringr   r   r   r   r   r   <module>   s    