
    Q?h                        S r SrSrSSKr " S S5      r\R
                  " S5      r\R
                  " S5      r " S	 S
\5      r\	S:X  az  S!S jr
\
" SSSSS9  \
" SSSSS9  \
" SSSSS9  \
" SSSSS9  \
" SSS5        \
" SSS5        \
" SSS5        \
" SSS5        \
" SSS5        \
" SSS5        \
" SSS5        \
" SS S5        gg)")	FormatterDecimalFormatterz3.3.0z]
These help format numbers and dates in a user friendly way.
Used by the graphics framework.
    Nc                   0    \ rS rSrSrS rS rS rS rSr	g)	r      z5Base formatter - simply applies python format stringsc                     Xl         g Npattern)selfr
   s     J/var/www/html/env/lib/python3.13/site-packages/reportlab/lib/formatters.py__init__Formatter.__init__   s        c                      U R                   U-  $ r   r	   )r   objs     r   formatFormatter.format   s    ||c!!r   c                 R    U R                   R                  < SU R                  < S3$ )Nz('z'))	__class____name__r
   r   s    r   __repr__Formatter.__repr__   s    !^^44dllCCr   c                 $    U R                  U5      $ r   )r   )r   xs     r   __call__Formatter.__call__   s    {{1~r   r	   N)
r   
__module____qualname____firstlineno____doc__r   r   r   r   __static_attributes__ r   r   r   r      s    ;"Dr   r   z^\d*\.z0+$c                   4    \ rS rSrSrS	S jrS rS rS rSr	g)
r      zlets you specify how to build a decimal.

A future NumberFormatter class will take Microsoft-style patterns
instead - "$#,##0.00" is WAY easier than this.Nc                 p    US:X  a  U R                   U l        OXl        X l        X0l        X@l        XPl        g )Nauto)_calcPlaces
calcPlacesplacesdotcommaprefixsuffix)r   r*   
decimalSepthousandSepr-   r.   s         r   r   DecimalFormatter.__init__    s/    6>"..DO K 
r   c                     [        U Vs/ s H?  n[        [        R                  S[        R                  S[        U5      5      5      5      PMA     sn5      U l        gs  snf )zMcalled with the full set of values to be formatted so we can calculate places N)maxlen_tz_resub_ld_restrr*   )r   Vvs      r   r(   DecimalFormatter._calcPlaces*   s?    aPa3vzz"VZZ3q6-BCDaPQPs   AAc                 z   US:  nU(       a  U* nU R                   U R                  pCUS:*  nU(       a
  U(       a  U* nS[        U5      -   S-   U-  nU(       aI  UR                  S5      u  pgXG-   nU(       a*  U(       a#  US   SU4;   a  US S ow(       a  US   SU4;   a  M  OSnU R                  b<  SnU(       a1  USS USS  pU	S:X  a  X-   nOU R                  U
-   U-   nU	nU(       a  M1  UnXg-   nU(       a  S	U-   nU R
                  (       a  U R
                  U-   nU R                  (       a  XR                  -   nU$ )
Nr   z%.f.0r3   -)r*   r+   r9   splitr,   r-   r.   )r   numsignr*   sepstripstrIntstrFracstrNewleftrightstrBodys               r   r   DecimalFormatter.format.   s9   U$Ckk488	evgVV$s*c1$ll3/OFmG'"+#c":gcrlGg'"+#c":G::!F$QrlF23Ke2:"^F!ZZ%/&8F & F"3=;;kkG+G;;+Gr   c           	          SU R                   R                  U R                  [        U R                  5      [        U R
                  5      [        U R                  5      [        U R                  5      4-  $ )NzB%s(places=%d, decimalSep=%s, thousandSep=%s, prefix=%s, suffix=%s))r   r   r*   reprr+   r,   r-   r.   r   s    r   r   DecimalFormatter.__repr__S   sX    SNN++KKN$%%W  	r   )r)   r,   r+   r*   r-   r.      r?   NNN)
r   r   r   r    r!   r   r(   r   r   r"   r#   r   r   r   r      s    6R#Jr   r   __main__c                     [        X#XEU5      nU" U 5      n[        SUR                  UR                  UR                  UR
                  UR                  XU:H  =(       a    S=(       d    S4-  5        g )NzEplaces=%2d dot=%-4s comma=%-4s prefix=%-4s suffix=%-4s result=%10s %sOKBAD)r   printr*   r+   r,   r-   r.   )	nsr*   r/   r0   r-   r.   r>   rs	            r   tr]   ^   s    
6[
GaDUXYX`X`bcbgbgijipiprsrzrz|}  }E  }E  FG  LM  IM  IV  RV  I_  Z_  X`  `  	ar   g33333G@z1,000.9   ,)r0   gG@z1,001.0z1,001r@   z1000.9z1001.01001g@@z1000.1gfffffD@z1000.6g;OC@z1000.4gC@1000rS   )__all____version__r!   rer   compiler8   r6   r   r   r]   r#   r   r   <module>rf      s  
 	)	 
	 	 
zz)	zz%@y @D Za fYqS)gic*ggbS)fWQ3'fXaghqgfRfVAfXaghqhxgfQ! r   