File: //home/arjun/projects/env/lib/python3.10/site-packages/weasyprint/__pycache__/draw.cpython-310.pyc
o
&weT� � @ s� d Z ddlZddlZddlmZmZ ddlmZ ddlm Z m
Z
mZmZm
Z
ddlmZ ddlmZ dd lmZ dd
lmZmZ ddlmZ ddlmZ dd
lmZ ddlmZ ddlm Z m!Z!m"Z"m#Z#m$Z$ ddl%m&Z& dZ'ej(dd� �Z)dd� Z*dd� Z+dd� Z,dd� Z-dd� Z.dd� Z/d d!� Z0dHd$d%�Z1d&d'� Z2d(d)� Z3d*d+� Z4 dId,d-�Z5d.d/� Z6d0d1� Z7dJd2d3�Z8d4d5� Z9d6d7� Z:d8d9� Z;d:d;� Z< < =dKd>d?�Z=d@dA� Z>dBdC� Z?dDdE� Z@dFdG� ZAdS )Lz@Take an "after layout" box tree and draw it onto a pydyf stream.� N)�
hsv_to_rgb�
rgb_to_hsv)�BytesIO)�ceil�floor�pi�sqrt�tan)�ElementTree)�Image� )�boxes)�RasterImage�SVGImage)�replaced)�BackgroundLayer)�Matrix)�StackingContext)�ffi�harfbuzz�pango�units_from_double�units_to_double)�get_last_word_end)�top�right�bottom�leftc c s* � | � � z
dV W | �� dS | �� w )zDSave and restore stream context when used with the ``with`` keyword.N)�
push_state� pop_state)�stream� r! �H/home/arjun/projects/env/lib/python3.10/site-packages/weasyprint/draw.py�stacked s
�r# c C s | | }|dkr
|S | d S )N�currentColor�colorr! )�style�key�valuer! r! r"