
    k"g                     :    d dl mZ d dlmZ d dlmZ 	 	 	 	 	 ddZy)    )Decimal)settings)	mark_safeNc           	         | | dk(  rt        |       S |d}|xr t        j                  }|xs |}|xr |dk7  }t        | t              r|s|st        |       S d}t        | t
              r/dt        |       j                         v rt        t        |             } t        | t              r|7t        ddj                  |d      z         }	t        |       |	k  rt        d      } | j                         \  }
}}t        |      t        |      z   d	kD  rHd
j                  |       } | j                  d      \  }}t        |||||||      }dj                  ||      S dj                  |       }nt        |       }|d   dk(  rd}|dd }d|v r|j                  d      \  }}|
|d| }n|d}}||d|t        |      z
  z  z  }|xr ||z   }|rk	 t        |      }|j#                  d      }d}d}|ddd   D ]7  }|r)||k(  r$|r|j#                  d      xs |}||ddd   z  }d}||z  }|dz  }9 |ddd   }||z   |z   S # t         $ r |dg}Y vw xY w)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 ",")
    N 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digits                         R/var/www/html/djangosite/lib/python3.12/site-packages/django/utils/numberformat.pyr   r      s   * ~2  ? ? ?L1>L1HML&#|K  D&% SCK,=,=,?%?V%&'"" TCIIk3$??@F6{V#  %oo/68x=3v;&,]]6*F$*LL$5!K K >>+x88v.J[
!}^

j'--c2("-H'(C;X6772K(2H	&XI $--*dd^ 	Eso-&/mmA&6&I/O|DbD115 K1HC	 tt$(?X%%  	&!1I	&s   H= =II)Nr   r   FN)decimalr   django.confr   django.utils.safestringr   r        r5   <module>r;      s%       - b&r:   