/opt/alt/python27/lib/python2.7/site-packages/svgwrite
NameSizeModeActions
data/-0755rm
animate.py66300644editdlrm
animate.pyc77910644editdlrm
animate.pyo77910644editdlrm
base.py80640644editdlrm
base.pyc100160644editdlrm
base.pyo100160644editdlrm
container.py90220644editdlrm
container.pyc109450644editdlrm
container.pyo109450644editdlrm
drawing.py43440644editdlrm
drawing.pyc49400644editdlrm
drawing.pyo49400644editdlrm
elementfactory.py21990644editdlrm
elementfactory.pyc29640644editdlrm
elementfactory.pyo29640644editdlrm
etree.py13610644editdlrm
etree.pyc13000644editdlrm
etree.pyo13000644editdlrm
filters.py78990644editdlrm
filters.pyc136550644editdlrm
filters.pyo136550644editdlrm
gradients.py47190644editdlrm
gradients.pyc60300644editdlrm
gradients.pyo60300644editdlrm
image.py24450644editdlrm
image.pyc30210644editdlrm
image.pyo30210644editdlrm
masking.py18270644editdlrm
masking.pyc22930644editdlrm
masking.pyo22930644editdlrm
mixins.py104460644editdlrm
mixins.pyc130410644editdlrm
mixins.pyo130410644editdlrm
params.py18800644editdlrm
params.pyc27910644editdlrm
params.pyo27910644editdlrm
path.py35910644editdlrm
path.pyc37430644editdlrm
path.pyo37430644editdlrm
pattern.py19500644editdlrm
pattern.pyc23470644editdlrm
pattern.pyo23470644editdlrm
shapes.py58580644editdlrm
shapes.pyc67560644editdlrm
shapes.pyo67560644editdlrm
text.py81290644editdlrm
text.pyc97290644editdlrm
text.pyo97290644editdlrm
utils.py62180644editdlrm
utils.pyc75440644editdlrm
utils.pyo75440644editdlrm
validator2.py60730644editdlrm
validator2.pyc71120644editdlrm
validator2.pyo71120644editdlrm
__init__.py24490644editdlrm
__init__.pyc32260644editdlrm
__init__.pyo32260644editdlrm
Edit: /opt/alt/python27/lib/python2.7/site-packages/svgwrite/validator2.py (6073B)
#coding:utf-8 # Author: mozman -- # Purpose: validator2 module - new validator module # Created: 01.10.2010 # Copyright (C) 2010, Manfred Moitzi # License: MIT License from svgwrite.data import full11 from svgwrite.data import tiny12 from svgwrite.data import pattern validator_cache = {} def cache_key(profile, debug): return str(profile) + str(debug) def get_validator(profile, debug=True): """ Validator factory """ try: return validator_cache[cache_key(profile, debug)] except KeyError: if profile == 'tiny': validator = Tiny12Validator(debug) elif profile in ('full', 'basic', 'none'): validator = Full11Validator(debug) else: raise ValueError("Unsupported profile: '%s'" % profile) validator_cache[cache_key(profile, debug)] = validator return validator class Tiny12Validator(object): profilename = "Tiny 1.2" def __init__(self, debug=True): self.debug = debug self.attributes = tiny12.attributes self.elements = tiny12.elements self.typechecker = tiny12.TypeChecker() def check_all_svg_attribute_values(self, elementname, attributes): """ Check if attributes are valid for object 'elementname' and all svg attributes have valid types and values. Raises ValueError. """ for attributename, value in attributes.items(): self.check_svg_attribute_value(elementname, attributename, value) def check_svg_attribute_value(self, elementname, attributename, value): """ Check if 'attributename' is valid for object 'elementname' and 'value' is a valid svg type and value. Raises ValueError. """ self._check_valid_svg_attribute_name(elementname, attributename) self._check_svg_value(elementname, attributename, value) def _check_svg_value(self, elementname, attributename, value): """ Checks if 'value' is a valid svg-type for svg-attribute 'attributename' at svg-element 'elementname'. Raises TypeError. """ attribute = self.attributes[attributename] # check if 'value' match a valid datatype for typename in attribute.get_types(elementname): if self.typechecker.check(typename, value): return # check if 'value' is a valid constant valuestr = str(value) if not valuestr in attribute.get_const(elementname): raise TypeError("'%s' is not a valid value for attribute '%s' at svg-element <%s>." % (value, attributename, elementname)) def _check_valid_svg_attribute_name(self, elementname, attributename): """ Check if 'attributename' is a valid svg-attribute for svg-element 'elementname'. Raises ValueError. """ if not self.is_valid_svg_attribute(elementname, attributename): raise ValueError("Invalid attribute '%s' for svg-element <%s>." % (attributename, elementname)) def _get_element(self, elementname): try: return self.elements[elementname] except KeyError: raise KeyError("<%s> is not valid for selected profile: '%s'." % (elementname, self.profilename)) def check_svg_type(self, value, typename='string'): """ Check if 'value' matches svg type 'typename'. Raises TypeError. """ if self.typechecker.check(typename, value): return value else: raise TypeError("%s is not of type '%s'." % (value, typename)) def is_valid_elementname(self, elementname): """ True if 'elementname' is a valid svg-element name. """ return elementname in self.elements def is_valid_svg_attribute(self, elementname, attributename): """ True if 'attributename' is a valid svg-attribute for svg-element 'elementname'. """ element = self._get_element(elementname) return attributename in element.valid_attributes def is_valid_children(self, elementname, childrenname): """ True if svg-element 'childrenname' is a valid children of svg-element 'elementname'. """ element = self._get_element(elementname) return childrenname in element.valid_children def check_valid_children(self, elementname, childrenname): """ Checks if svg-element 'childrenname' is a valid children of svg-element 'elementname'. Raises ValueError. """ if not self.is_valid_children(elementname, childrenname): raise ValueError("Invalid children '%s' for svg-element <%s>." % (childrenname, elementname)) def get_coordinate(self, value): """ Split value in (number, unit) if value has an unit or (number, None). Raises ValueError. """ if value is None: raise TypeError("Invalid type 'None'.") if isinstance(value, (int, float)): result = (value, None) else: result = pattern.coordinate.match(value.strip()) if result: number, tmp, unit = result.groups() number = float(number) else: raise ValueError("'%s' is not a valid svg-coordinate." % value) result = (number, unit) if self.typechecker.is_number(result[0]): return result else: version = "SVG %s %s" % self.typechecker.get_version() raise ValueError("%s is not a valid number for: %s." % (value, version)) get_length = get_coordinate class Full11Validator(Tiny12Validator): profilename = "Full 1.1" def __init__(self, debug=True): self.debug = debug self.attributes = full11.attributes self.elements = full11.elements self.typechecker = full11.TypeChecker()