/usr/lib/python2.7/dist-packages/svgwrite/data/types.py is in python-svgwrite 1.1.8-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 | #!/usr/bin/env python
#coding:utf-8
# Author: mozman --<mozman@gmx.at>
# Purpose: svg types
# Created: 30.09.2010
# Copyright (C) 2010, Manfred Moitzi
# License: MIT License
class SVGAttribute(object):
def __init__(self, name, anim, types, const):
self.name = name
self._anim = anim
self._types = types
self._const = const
# 'elementname' is ignored, but necessary because of the signatures of
# the SVGMultiAttribute class methods get_...()
def get_anim(self, elementname='*'):
return self._anim
def get_types(self, elementname='*'):
return self._types
def get_const(self, elementname='*'):
return self._const
class SVGMultiAttribute(object):
# example: SVGMultiAttribute({'*':SVGAttribute(...), 'text tref':SVGAttribute(...)} )
# parametr is a dict-like object
# '*' is the default attribute definition
# 'text' and 'tref' share the same attribute definition
def __init__(self, attributes):
self.name = None
self._attributes = {}
for names, attribute in attributes.items():
for name in names.split():
name = name.strip()
self._attributes[name] = attribute
if not self.name:
self.name = attribute.name
elif self.name != attribute.name:
raise ValueError("Different attribute-names for SVGMultiAttribute "\
"(%s != %s)." % (self.name, attribute.name))
if '*' not in self._attributes and len(self._attributes):
# if no default attribute definition were given
# set the first attribute definition as the default attribute definition
firstkey = sorted(self._attributes.keys())[0]
self._attributes['*'] = self._attributes[firstkey]
def get_attribute(self, elementname):
if elementname in self._attributes:
return self._attributes[elementname]
else:
return self._attributes['*']
def get_anim(self, elementname='*'):
attribute = self.get_attribute(elementname)
return attribute.get_anim()
def get_types(self, elementname='*'):
attribute = self.get_attribute(elementname)
return attribute.get_types()
def get_const(self, elementname='*'):
attribute = self.get_attribute(elementname)
return attribute.get_const()
class SVGElement(object):
def __init__(self, name, attributes, properties, children):
self.name = name
s = set(attributes)
s.update(properties)
self.valid_attributes = frozenset(s)
self.valid_children = frozenset(children)
|