§
    £”jÜ  ã                   óð  — d Z dZdZddlZ G d„ d¦  «        Z ej        d¦  «        Z ej        d¦  «        Z G d	„ d
e¦  «        Ze	dk    rªd#d„Z
 e
dddd¬¦  «          e
dddd¬¦  «          e
dddd¬¦  «          e
dddd¬¦  «          e
ddd¦  «          e
ddd¦  «          e
ddd¦  «          e
ddd¦  «          e
ddd¦  «          e
ddd¦  «          e
dd d¦  «          e
d!d"d¦  «         dS dS )$)Ú	FormatterÚDecimalFormatterz3.3.0z]
These help format numbers and dates in a user friendly way.
Used by the graphics framework.
é    Nc                   ó*   — e Zd ZdZd„ Zd„ Zd„ Zd„ ZdS )r   z5Base formatter - simply applies python format stringsc                 ó   — || _         d S ©N©Úpattern)Úselfr	   s     úg/var/www/finuniver-perm.ru/html/portfolio/venv/lib/python3.11/site-packages/reportlab/lib/formatters.pyÚ__init__zFormatter.__init__   s   € ØˆŒˆˆó    c                 ó   — | j         |z  S r   r   )r
   Úobjs     r   ÚformatzFormatter.format   s   € ØŒ|˜cÑ!Ð!r   c                 ó0   — | j         j        ›d| j        ›d�S )Nz('z'))Ú	__class__Ú__name__r	   ©r
   s    r   Ú__repr__zFormatter.__repr__   s   € Ø!œ^Ô4Ð4Ð4°d´l°l°lÐCÐCr   c                 ó,   — |                       |¦  «        S r   )r   )r
   Úxs     r   Ú__call__zFormatter.__call__   s   € Ø�{Š{˜1‰~Œ~Ðr   N)r   Ú
__module__Ú__qualname__Ú__doc__r   r   r   r   © r   r   r   r      sY   € € € € € Ø;Ð;ðð ð ð"ð "ð "ðDð Dð Dðð ð ð ð r   r   z^\d*\.z0+$c                   ó,   — e Zd ZdZd	d„Zd„ Zd„ Zd„ ZdS )
r   z¢lets 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                 ór   — |dk    r| j         | _        n|| _        || _        || _        || _        || _        d S )NÚauto)Ú_calcPlacesÚ
calcPlacesÚplacesÚdotÚcommaÚprefixÚsuffix)r
   r$   Ú
decimalSepÚthousandSepr'   r(   s         r   r   zDecimalFormatter.__init__    s>   € Ø�6Š>ˆ>Ø"Ô.ˆDŒOˆOà ˆDŒKØˆŒØ ˆŒ
ØˆŒØˆŒˆˆr   c                 óB   — t          d„ |D ¦   «         ¦  «        | _        dS )zMcalled with the full set of values to be formatted so we can calculate placesc                 óª   — g | ]P}t          t                               d t                               d t	          |¦  «        ¦  «        ¦  «        ¦  «        ‘ŒQS )Ú )ÚlenÚ_tz_reÚsubÚ_ld_reÚstr)Ú.0Úvs     r   ú
<listcomp>z0DecimalFormatter._calcPlaces.<locals>.<listcomp>,   sB   € ÐPÐPÐPÈ�3�vŸzšz¨"­V¯ZªZ¸½3¸q¹6¼6Ñ-BÔ-BÑCÔCÑDÔDÐPÐPÐPr   N)Úmaxr$   )r
   ÚVs     r   r"   zDecimalFormatter._calcPlaces*   s$   € åÐPÐPÈaÐPÑPÔPÑQÔQˆŒˆˆr   c                 óî  — |dk     }|r| }| j         | j        }}|dk    }|r|r| }dt          |¦  «        z   dz   |z  }|rF|                     d¦  «        \  }}||z   }|r&|r$|d         d|fv r|d d…         }|r|d         d|fv °nd}| j        �7d}|r1|dd…         |dd …         }
}	|	dk    r|
|z   }n| j        |
z   |z   }|	}|°1|}||z   }|rd	|z   }| j        r
| j        |z   }| j        r
|| j        z   }|S )
Nr   z%.Úfr   éÿÿÿÿÚ0r-   éýÿÿÿú-)r$   r%   r2   Úsplitr&   r'   r(   )r
   ÚnumÚsignr$   ÚsepÚstripÚstrIntÚstrFracÚstrNewÚleftÚrightÚstrBodys               r   r   zDecimalFormatter.format.   s}  € à�ŠUˆØð 	Ø�$ˆCØ”k 4¤8�ˆØ˜’	ˆØÐ-�eÐ- v g˜VØ�˜V™œÑ$ sÑ*¨cÑ1ˆØð 	Ø$Ÿlšl¨3Ñ/Ô/‰OˆF�GØ˜G‘mˆGØð SØÐR '¨"¤+°#°c°Ð":Ð":ÀgÈcÈrÈcÄl¸G�gÐR '¨"¤+°#°c°Ð":Ð":øàˆGàŒ:Ð!ØˆFØð Ø$ Q r Tœl¨F°2°3°3¬K�e�Ø˜2’:�:à" V™^�F�Fà!œZ¨%Ñ/°&Ñ8�FØ�ð ð ð ˆFà˜7Ñ"ˆØÐ(˜3 ™=�ØŒ;ð 	,Ø”k GÑ+ˆGØŒ;ð 	,Ø ¤Ñ+ˆGØˆr   c           	      óÆ   — d| j         j        | j        t          | j        ¦  «        t          | j        ¦  «        t          | j        ¦  «        t          | j        ¦  «        fz  S )NzB%s(places=%d, decimalSep=%s, thousandSep=%s, prefix=%s, suffix=%s))r   r   r$   Úreprr%   r&   r'   r(   r   s    r   r   zDecimalFormatter.__repr__S   sT   € ØSØ”NÔ+Ø”KÝ˜œ‘N”NÝ˜œÑ$Ô$Ý˜œÑ%Ô%Ý˜œÑ%Ô%ðWñ ð 	r   ©r   r   NNN)r   r   r   r   r   r"   r   r   r   r   r   r   r      sc   € € € € € ð6ð 6ðð ð ð ðRð Rð Rð#ð #ð #ðJð ð ð ð r   r   Ú__main__r   r   c                 ó¶   — t          |||||¦  «        } || ¦  «        }t          d|j        |j        |j        |j        |j        |||k    rdpdfz  ¦  «         d S )NzEplaces=%2d dot=%-4s comma=%-4s prefix=%-4s suffix=%-4s result=%10s %sÚOKÚBAD)r   Úprintr$   r%   r&   r'   r(   )	ÚnÚsr$   r)   r*   r'   r(   r9   Úrs	            r   ÚtrT   ^   s¯   € Ý
˜6 *¨[¸ÀÑ
GÔ
GˆØˆAˆa‰DŒDˆÝÐUÐXYÔX`ÐbcÔbgÐijÔipÐrsÔrzÐ|}ô  }Eð  FGð  IJð  LMò  IMð  IVð  RVð  I_ð  Z_ð  X`ñ  `ñ  	aô  	að  	að  	að  	ar   g33333G�@z1,000.9é   ú,)r*   gš™™™™G�@z1,001.0z1,001r:   z1000.9z1001.0Ú1001gÍÌÌÌÌ@�@z1000.1gfffffD�@z1000.6g;ßO�—C�@z1000.4gš™™™™C�@Ú1000rK   )Ú__all__Ú__version__r   Úrer   Úcompiler1   r/   r   r   rT   r   r   r   ú<module>r]      sÛ  ðð
 	)€Ø€ð	€ð 
€	€	€	ð	ð 	ð 	ð 	ð 	ñ 	ô 	ð 	ð €r„z�)ÑÔ€Ø€r„z�%ÑÔ€ð@ð @ð @ð @ð @�yñ @ô @ð @ðD ˆZÒÐðað að að að €A€fˆY�q SÐ)Ñ)Ô)Ð)Ø€A€gˆi˜ cÐ*Ñ*Ô*Ð*Ø€A€gˆg�b SÐ)Ñ)Ô)Ð)Ø€A€fˆW�Q 3Ð'Ñ'Ô'Ð'Ø€A€fˆX�aÑÔÐØ€A€gˆh�qÑÔÐØ€A€gˆf�RÑÔÐØ€A€fˆV�AÑÔÐØ€A€fˆX�aÑÔÐØ€A€gˆh�qÑÔÐØ€A€hˆx˜ÑÔÐØ€A€gˆf�QÑÔÐÐÐð! Ðr   