OXIESEC PANEL
- Current Dir:
/
/
opt
/
alt
/
python37
/
lib
/
python3.7
/
site-packages
/
svgwrite
Server IP: 2a02:4780:11:1084:0:327f:3464:10
Upload:
Create Dir:
Name
Size
Modified
Perms
📁
..
-
09/05/2025 09:36:16 AM
rwxr-xr-x
📄
__init__.py
2.33 KB
11/14/2023 02:35:25 PM
rw-r--r--
📁
__pycache__
-
02/16/2024 09:01:46 PM
rwxr-xr-x
📄
animate.py
6.31 KB
11/14/2023 02:35:25 PM
rw-r--r--
📄
base.py
8.01 KB
11/14/2023 02:35:25 PM
rw-r--r--
📄
container.py
10.15 KB
11/14/2023 02:35:25 PM
rw-r--r--
📁
data
-
02/16/2024 09:01:46 PM
rwxr-xr-x
📄
drawing.py
5.05 KB
11/14/2023 02:35:25 PM
rw-r--r--
📄
elementfactory.py
2.15 KB
11/14/2023 02:35:25 PM
rw-r--r--
📄
etree.py
1.26 KB
11/14/2023 02:35:25 PM
rw-r--r--
📁
extensions
-
02/16/2024 09:01:46 PM
rwxr-xr-x
📄
filters.py
7.53 KB
11/14/2023 02:35:25 PM
rw-r--r--
📄
gradients.py
4.5 KB
11/14/2023 02:35:25 PM
rw-r--r--
📄
image.py
2.35 KB
11/14/2023 02:35:25 PM
rw-r--r--
📄
masking.py
1.74 KB
11/14/2023 02:35:25 PM
rw-r--r--
📄
mixins.py
10.18 KB
11/14/2023 02:35:25 PM
rw-r--r--
📄
params.py
1.77 KB
11/14/2023 02:35:25 PM
rw-r--r--
📄
path.py
2.75 KB
11/14/2023 02:35:25 PM
rw-r--r--
📄
pattern.py
1.9 KB
11/14/2023 02:35:25 PM
rw-r--r--
📄
shapes.py
5.61 KB
11/14/2023 02:35:25 PM
rw-r--r--
📄
solidcolor.py
1.63 KB
11/14/2023 02:35:25 PM
rw-r--r--
📄
text.py
7.74 KB
11/14/2023 02:35:25 PM
rw-r--r--
📄
utils.py
7.58 KB
11/14/2023 02:35:25 PM
rw-r--r--
📄
validator2.py
5.87 KB
11/14/2023 02:35:25 PM
rw-r--r--
📄
version.py
1.06 KB
11/14/2023 02:35:25 PM
rw-r--r--
Editing: drawing.py
Close
#coding:utf-8 # Author: mozman # Purpose: drawing # Created: 10.09.2010 # Copyright (C) 2010, Manfred Moitzi # License: MIT License """ The *Drawing* object is the overall container for all SVG elements. It provides the methods to store the drawing into a file or a file-like object. If you want to use stylesheets, the reference links to this stylesheets were also stored (`add_stylesheet`) in the *Drawing* object. set/get SVG attributes:: element['attribute'] = value value = element['attribute'] The Drawing object also includes a defs section, add elements to the defs section by:: drawing.defs.add(element) """ from __future__ import unicode_literals import io from svgwrite.container import SVG, Defs from svgwrite.elementfactory import ElementFactory from svgwrite.utils import pretty_xml class Drawing(SVG, ElementFactory): """ This is the SVG drawing represented by the top level *svg* element. A drawing consists of any number of SVG elements contained within the drawing element, stored in the *elements* attribute. A drawing can range from an empty drawing (i.e., no content inside of the drawing), to a very simple drawing containing a single SVG element such as a *rect*, to a complex, deeply nested collection of container elements and graphics elements. """ def __init__(self, filename="noname.svg", size=('100%', '100%'), **extra): """ :param string filename: filesystem filename valid for :func:`open` :param 2-tuple size: width, height :param keywords extra: additional svg-attributes for the *SVG* object Important (and not SVG Attributes) **extra** parameters: :param string profile: ``'tiny | full'`` - define the SVG baseProfile :param bool debug: switch validation on/off """ super(Drawing, self).__init__(size=size, **extra) self.filename = filename self._stylesheets = [] # list of stylesheets appended def get_xml(self): """ Get the XML representation as `ElementTree` object. :return: XML `ElementTree` of this object and all its subelements """ profile = self.profile version = self.version self.attribs['xmlns'] = "http://www.w3.org/2000/svg" self.attribs['xmlns:xlink'] = "http://www.w3.org/1999/xlink" self.attribs['xmlns:ev'] = "http://www.w3.org/2001/xml-events" self.attribs['baseProfile'] = profile self.attribs['version'] = version return super(Drawing, self).get_xml() def add_stylesheet(self, href, title, alternate="no", media="screen"): """ Add a stylesheet reference. :param string href: link to stylesheet <URI> :param string title: name of stylesheet :param string alternate: ``'yes'|'no'`` :param string media: ``'all | aureal | braille | embossed | handheld | print | projection | screen | tty | tv'`` """ self._stylesheets.append((href, title, alternate, media)) def write(self, fileobj, pretty=False, indent=2): """ Write XML string to `fileobj`. :param fileobj: a file-like object :param pretty: True for easy readable output :param indent: how much to indent if pretty is enabled, by default 2 spaces Python 3.x - set encoding at the open command:: open('filename', 'w', encoding='utf-8') """ # write xml header fileobj.write('<?xml version="1.0" encoding="utf-8" ?>\n') # don't use DOCTYPE. It's useless. see also: # http://tech.groups.yahoo.com/group/svg-developers/message/48562 # write stylesheets stylesheet_template = '<?xml-stylesheet href="%s" type="text/css" ' \ 'title="%s" alternate="%s" media="%s"?>\n' # removed map(), does not work with Python 3 for stylesheet in self._stylesheets: fileobj.write(stylesheet_template % stylesheet) xml_string = self.tostring() if pretty: # write easy readable XML file xml_string = pretty_xml(xml_string, indent=indent) fileobj.write(xml_string) def save(self, pretty=False, indent=2): """ Write the XML string to `self.filename`. :param pretty: True for easy readable output :param indent: how much to indent if pretty is enabled, by default 2 spaces """ fileobj = io.open(self.filename, mode='w', encoding='utf-8') self.write(fileobj, pretty=pretty, indent=indent) fileobj.close() def saveas(self, filename, pretty=False, indent=2): """ Write the XML string to `filename`. :param string filename: filesystem filename valid for :func:`open` :param pretty: True for easy readable output :param indent: how much to indent if pretty is enabled, by default 2 spaces """ self.filename = filename self.save(pretty=pretty, indent=indent) def _repr_svg_(self): """ Show SVG in IPython, Jupyter Notebook, and Jupyter Lab :return: unicode XML string of this object and all its subelements """ return self.tostring()