3
ybW
                 @   s$   d Z dddddddZdd	d
ZdS )z
Units functions.

   gffffff9@gRQ@g      R@g      @N)mmcminptZpcZpxxyc             C   sh  |sdS yt |S  tk
r$   Y nX d|kr|dkrB| jp>d}n8|dkrV| jpRd}n$|dkrz| jd | jd  d d }t |jd	| d
 S d|kr| jt |jd S d|kr| jt |jd d S xFtj D ]:\}}||krt |jd| }||r
| j| nd S qW d}x@|rX|d j	 s<|d dkrX||d 7 }|dd }qW t |pddS )ap  Replace a ``string`` with units by a float value.

    If ``reference`` is a float, it is used as reference for percentages. If it
    is ``'x'``, we use the viewport width as reference. If it is ``'y'``, we
    use the viewport height as reference. If it is ``'xy'``, we use
    ``(viewport_width ** 2 + viewport_height ** 2) ** .5 / 2 ** .5`` as
    reference.

    g        %x    yr      g      ?z %d   Zemz emexz ex r    z+-.Ng;f?)
float
ValueErrorZcontext_widthZcontext_heightstripZ	font_sizeUNITSitemsZdpiisdigit)Zsurfacestring	referenceZunitZcoefficientnumberZreturn_string r   V/var/www/html/enquirykeeper_venv/lib/python3.6/site-packages/cairosvg/surface/units.pysize!   s8    

$r   g
BP(?gL&d2?gqq?gUUUUUU?)r   )__doc__r   r   r   r   r   r   <module>   s   