HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: //home/arjun/projects/env/lib/python3.10/site-packages/qrcode/image/__pycache__/svg.cpython-310.pyc
o

$we~�@s�ddlZddlmZddlmZmZmZmZmZddlm	Z	ddl
Zddlm
Z
ddlmZddlmZGdd	�d	ejjj�ZGd
d�de�ZGdd
�d
e�ZGdd�de�ZGdd�de�ZdS)�N)�Decimal)�List�Optional�Type�Union�overload)�Literal)�ET��svg)�QRModuleDrawercs�eZdZUdZdZdZdZejZ	e
eed<�fdd�Z
edeeefd	ed
defdd
��Zeddeeefd	eddefdd
��Zddd
�Zddd�Zdd�Zdd�Zddd�Zdd�Z�ZS) �SvgFragmentImagezT
    SVG image builder

    Creates a QR-code image as a SVG document fragment.
    zhttp://www.w3.org/2000/svg�SVG)r�default_drawer_classcs2t�d|j�t�j|i|��|�|j�|_dS)Nr)r	�register_namespace�_SVG_namespace�super�__init__�units�box_size�	unit_size��self�args�kwargs��	__class__��I/home/arjun/projects/env/lib/python3.10/site-packages/qrcode/image/svg.pyrszSvgFragmentImage.__init__�pixels�textF�returncC�dS�Nr�rrr rrrr�zSvgFragmentImage.unitsTcCr"r#rr$rrrr#r%cCs�t|�d}|s
|S|�td��}tjtjgd�}ztd�td�td�fD]	}|j||d�}q%Wn
tjy:Ynw|�d�S)	z8
        A box_size of 10 (default) equals 1mm.
        �
z0.001)�trapsz0.01z0.1�0)�context�mm)r�quantize�decimal�Context�Inexact)rrr rr)�drrrr's��
NcCs|j|d�|�|�dS)N)�kind)�
check_kind�_write)r�streamr0rrr�save7szSvgFragmentImage.savecKstj|jfi|��Sr#)r	�tostring�_img�rrrrr�	to_string;szSvgFragmentImage.to_stringcKs|jdi|��S)Nr)�_svgr7rrr�	new_image>szSvgFragmentImage.new_image�1.1cKs<|durt�|jd�}|�|j�}tj|f|||d�|��S)Nr)�width�height�version)r	�QNamerr�
pixel_size�Element)r�tagr>r�	dimensionrrrr9As���zSvgFragmentImage._svgcCst�|j�j|dd�dS)NF)�xml_declaration�r	�ElementTreer6�write�rr3rrrr2MszSvgFragmentImage._write)Tr#)Nr;)�__name__�
__module__�__qualname__�__doc__rr0�
allowed_kinds�svg_drawers�SvgSquareDrawerrrr�__annotations__rrr�intrrr�strr4r8r:r9r2�
__classcell__rrrrr

s"
$&


r
csxeZdZUdZdZeeed<ej	ifej	de
d�ifejde
d�ifd�Ze
jjjed<d
�fd	d
�	Zdd�Z�ZS)�SvgImageza
    Standalone SVG image builder

    Creates a QR-code image as a standalone SVG document.
    N�
background�
size_ratio皙�����?��circlez
gapped-circlez
gapped-square�drawer_aliasesrc
sLt�jdd|i|��}|�d|j�|jr$|�tjd|jddddd��|S)NrB�xmlns�rectr(z100%)�fill�x�yr<r=r)rr9�setrrU�appendr	rA)rrBrrrrrr9_s��
z
SvgImage._svgcCst�|j�j|ddd�dS)NzUTF-8T)�encodingrDrErHrrrr2oszSvgImage._writer
)rIrJrKrLrUrrRrPrN�SvgCircleDrawerrrOrZ�qrcode�image�base�
DrawerAliasesr9r2rSrrrrrTQs
�rTcs�eZdZUdZddddd�ZdZdZeej	e
d	<ejZ
eee
d
<ejifejded�ifejded�ifd
�Z�fdd�Zd�fdd�	Zdd�Z�ZS)�SvgPathImagezs
    SVG image builder with one single <path> element (removes white spaces
    between individual QR points).
    z#000000�1�nonzero�none)r]zfill-opacityz	fill-rule�strokeTN�pathrrVrWrXcsg|_t�j|i|��dSr#)�	_subpathsrrrrrrr�szSvgPathImage.__init__cs:|dur|j|jdd�}dj|d�}t�jdd|i|��S)NF)r z0 0 {d} {d})r/�viewBoxr)rr@�formatrr9)rrorrCrrrr9�szSvgPathImage._svgcCsBtjt�d�fd�|j�dd�|j��|_g|_|j�|j�dS)Nrm�zqr-path)r/�id)	r	rAr?�joinrn�
QR_PATH_STYLErmr6ra)rrrr�process�s�
��zSvgPathImage.processr#)rIrJrKrLrt�needs_processingrmrr	rArPrN�SvgPathSquareDrawerrrr�SvgPathCircleDrawerrrZrr9rurSrrrrrhss*
�
�
��rhc@�eZdZdZdZdS)�SvgFillImagez9
    An SvgImage that fills the background to white.
    �whiteN�rIrJrKrLrUrrrrrz��rzc@ry)�SvgPathFillImagez=
    An SvgPathImage that fills the background to white.
    r{Nr|rrrrr~�r}r~)r,r�typingrrrrr�typing_extensionsr�qrcode.image.baserd�qrcode.compat.etreer	�!qrcode.image.styles.moduledrawersrrN�&qrcode.image.styles.moduledrawers.baserrerf�BaseImageWithDrawerr
rTrhrzr~rrrr�<module>sD"3