
    3vjQ                        d Z ddlZddlmZ ddlmZmZ ddej                  z  ej                  dz  ej                  dz  d	Zdd
ddddddZ	ddde	d   z  de	d   z  dZ
 ee	      Zh dZh dZeez  Zeez  Z ee      ZddZd Zy)z Constants and helpers for units.    N   )LOGGER)character_ratiostrut         )radturndeggradgUUUUUU?   `   g\.B@gx<@gx<?)pxptpcincmmmqr   r   )dppxxdpidpcm>   chemexiclhcaprchremrexricrlhrcap>   vbvhvivwdvbdvhdvidvwlvblvhlvilvwpvbpvhpvipvwsvbsvhsvisvwvmaxvmindvmaxdvminlvmaxlvminpvmaxpvminsvmaxsvminc                 B   | j                   dk(  ry| j                  j                         x}dk(  r| j                   S |t        v r| j                   t        |   z  S |t        v r4||fdk7  sJ ||d   }|dk(  rU|dv r4|j
                  |j                  }n|j
                  }t        |      \  }}nt        |      \  }}| j                   |z  S |dk(  r)|j                  }t        |      \  }}| j                   |z  S |d	k(  r| j                   |z  S |d
k(  r| j                   |j                  d   z  S |j                  d      r8t        |j                  |dd       }| j                   |j                  d   z  |z  S t        ||      }| j                   |z  |z  S |t        v r |j                  |d   dk(  rdnd   }	|	?t        j                  | d       ddlm}
 t!        |
d   dd      }t!        |
d   dd      }n|	\  }}|j#                  d      r| j                   dz  |z  S |j#                  d      r| j                   dz  |z  S |j#                  d      r| j                   dz  t%        ||      z  S |j#                  d      r| j                   dz  t'        ||      z  S yy)z/Get number of pixels corresponding to a length.r   r   )NNN	font_sizer   )rF   line_heightr%   r   r"   rr   pboxareaz' unit resolved before first page layout)INITIAL_PAGE_SIZE)r*   r)   d   )r(   r'   r<   r;   )valueunitlowerLENGTHS_TO_PIXELS
FONT_UNITSparent_style
root_styler   
startswithr   VIEWPORT_UNITSinitial_page_sizesr   warncomputed_valuesrL   	to_pixelsendswithminmax)rN   styleproperty_namerF   rO   rS   rG   _ratio	page_sizerL   
page_widthpage_heights                G/root/.hermes/venv/lib/python3.12/site-packages/weasyprint/css/units.pyrZ   rZ   :   s   {{a**""$
$$	-{{	"	"{{.t444		y!\111k*I4< <<%%-#(#3#3L#(#5#5L!&|!4Q!&uQ;;,,U] ++L"<0NK;;,,T\;;**U];;!1!1+!>>>__S!#E$4$4d12h?E;;!1!1+!>>FF#E40E;;*U22		,,d1gnU&Q	KK4& GHI:"#4Q#7tDJ#$5a$8$EK&/#J==&;;$z11]]<(;;${22]]6";;$s:{'CCC]]6";;$s:{'CCC #! 
     c                     | j                   j                         x}dk(  r| j                  S |t        v r| j                  t        |   z  S y)z0Get number of radians corresponding to an angle.r
   N)rO   rP   rN   ANGLE_TO_RADIANS)rN   rO   s     re   
to_radiansri   s   sI    

  ""u,{{	!	!{{-d333 
"rf   )N)__doc__mathloggerr   text.line_breakr   r   pirh   rQ   RESOLUTION_TO_DPPXsetABSOLUTE_UNITSrR   rV   RELATIVE_UNITSLENGTH_UNITSANGLE_UNITSrZ   ri    rf   re   <module>rv      s    &   4
 K77S=GGcM	  




	  	
 &&!$''	  &'
 n,."#6Dr4rf   