Server IP : 66.29.132.122 / Your IP : 18.189.186.165 Web Server : LiteSpeed System : Linux business142.web-hosting.com 4.18.0-553.lve.el8.x86_64 #1 SMP Mon May 27 15:27:34 UTC 2024 x86_64 User : admazpex ( 531) PHP Version : 7.2.34 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /proc/self/root/proc/self/root/proc/thread-self/root/proc/thread-self/root/opt/cloudlinux/venv/lib64/python3.11/site-packages/svgwrite/extensions/ |
Upload File : |
# Copyright (c) 2018 Manfred Moitzi # License: MIT License # based on work of: # Copyright (c) 2018 Antonio Ospite <ao2@ao2.it> from svgwrite.data.types import SVGAttribute INKSCAPE_NAMESPACE = 'http://www.inkscape.org/namespaces/inkscape' SODIPODI_NAMESPACE = 'http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd' INKSCAPE_ATTRIBUTES = { 'xmlns:inkscape': SVGAttribute('xmlns:inkscape', anim=False, types=[], const=frozenset([INKSCAPE_NAMESPACE])), 'xmlns:sodipodi': SVGAttribute('xmlns:sodipodi', anim=False, types=[], const=frozenset([SODIPODI_NAMESPACE])), 'inkscape:groupmode': SVGAttribute('inkscape:groupmode', anim=False, types=[], const=frozenset(['layer'])), 'inkscape:label': SVGAttribute('inkscape:label', anim=False, types=frozenset(['string']), const=[]), 'sodipodi:insensitive': SVGAttribute('sodipodi:insensitive', anim=False, types=[], const=frozenset(['true', 'false', '0', '1'])) } def _setup_validator(validator): # setup already done? if 'xmlns:inkscape' in validator.attributes: return validator.attributes.update(INKSCAPE_ATTRIBUTES) elements = validator.elements # extend SVG attributes elements['svg'].valid_attributes = \ { 'xmlns:inkscape', 'xmlns:sodipodi', } | elements['svg'].valid_attributes # extend group attributes elements['g'].valid_attributes = \ { 'inkscape:groupmode', 'inkscape:label', 'sodipodi:insensitive', } | elements['g'].valid_attributes GROUP_MODE = 'inkscape:groupmode' LABEL = 'inkscape:label' INSENSITIVE = 'sodipodi:insensitive' class Inkscape(object): """ Extension to support SOME Inkscape features. """ def __init__(self, drawing): self.svg = drawing _setup_validator(drawing.validator) drawing['xmlns:inkscape'] = INKSCAPE_NAMESPACE drawing['xmlns:sodipodi'] = SODIPODI_NAMESPACE def layer(self, label=None, locked=False, **kwargs): """ Create new Inkscape layer. Args: label: layer name as string locked: when set to True, make objects at this layer unselectable """ new_layer = self.svg.g(**kwargs) new_layer[GROUP_MODE] = 'layer' if label is not None: new_layer[LABEL] = label if locked: new_layer[INSENSITIVE] = 1 return new_layer