diff --git a/scour/scour.py b/scour/scour.py index fb1ce9b..f7177c4 100644 --- a/scour/scour.py +++ b/scour/scour.py @@ -1741,14 +1741,14 @@ DefaultAttribute = namedtuple('DefaultAttribute', ['name', 'value', 'units', 'el DefaultAttribute.__new__.__defaults__ = (None,) * len(DefaultAttribute._fields) default_attributes = [ # unit systems - DefaultAttribute('clipPathUnits', 'userSpaceOnUse', elements='clipPath'), - DefaultAttribute('filterUnits', 'objectBoundingBox', elements='filter'), + DefaultAttribute('clipPathUnits', 'userSpaceOnUse', elements=['clipPath']), + DefaultAttribute('filterUnits', 'objectBoundingBox', elements=['filter']), DefaultAttribute('gradientUnits', 'objectBoundingBox', elements=['linearGradient', 'radialGradient']), - DefaultAttribute('maskUnits', 'objectBoundingBox', elements='mask'), - DefaultAttribute('maskContentUnits', 'userSpaceOnUse', elements='mask'), - DefaultAttribute('patternUnits', 'objectBoundingBox', elements='pattern'), - DefaultAttribute('patternContentUnits', 'userSpaceOnUse', elements='pattern'), - DefaultAttribute('primitiveUnits', 'userSpaceOnUse', elements='filter'), + DefaultAttribute('maskUnits', 'objectBoundingBox', elements=['mask']), + DefaultAttribute('maskContentUnits', 'userSpaceOnUse', elements=['mask']), + DefaultAttribute('patternUnits', 'objectBoundingBox', elements=['pattern']), + DefaultAttribute('patternContentUnits', 'userSpaceOnUse', elements=['pattern']), + DefaultAttribute('primitiveUnits', 'userSpaceOnUse', elements=['filter']), DefaultAttribute('externalResourcesRequired', 'false', elements=['a', 'altGlyph', 'animate', 'animateColor', @@ -1759,9 +1759,9 @@ default_attributes = [ 'use', 'view']), # svg elements - DefaultAttribute('width', 100, Unit.PCT, elements='svg'), - DefaultAttribute('height', 100, Unit.PCT, elements='svg'), - DefaultAttribute('baseProfile', 'none', elements='svg'), + DefaultAttribute('width', 100, Unit.PCT, elements=['svg']), + DefaultAttribute('height', 100, Unit.PCT, elements=['svg']), + DefaultAttribute('baseProfile', 'none', elements=['svg']), DefaultAttribute('preserveAspectRatio', 'xMidYMid meet', elements=['feImage', 'image', 'marker', 'pattern', 'svg', 'symbol', 'view']), @@ -1771,26 +1771,26 @@ default_attributes = [ DefaultAttribute('y', 0, elements=['cursor', 'fePointLight', 'feSpotLight', 'foreignObject', 'image', 'pattern', 'rect', 'svg', 'text', 'use']), DefaultAttribute('z', 0, elements=['fePointLight', 'feSpotLight']), - DefaultAttribute('x1', 0, elements='line'), - DefaultAttribute('y1', 0, elements='line'), - DefaultAttribute('x2', 0, elements='line'), - DefaultAttribute('y2', 0, elements='line'), + DefaultAttribute('x1', 0, elements=['line']), + DefaultAttribute('y1', 0, elements=['line']), + DefaultAttribute('x2', 0, elements=['line']), + DefaultAttribute('y2', 0, elements=['line']), DefaultAttribute('cx', 0, elements=['circle', 'ellipse']), DefaultAttribute('cy', 0, elements=['circle', 'ellipse']), # markers - DefaultAttribute('markerUnits', 'strokeWidth', elements='marker'), - DefaultAttribute('refX', 0, elements='marker'), - DefaultAttribute('refY', 0, elements='marker'), - DefaultAttribute('markerHeight', 3, elements='marker'), - DefaultAttribute('markerWidth', 3, elements='marker'), - DefaultAttribute('orient', 0, elements='marker'), + DefaultAttribute('markerUnits', 'strokeWidth', elements=['marker']), + DefaultAttribute('refX', 0, elements=['marker']), + DefaultAttribute('refY', 0, elements=['marker']), + DefaultAttribute('markerHeight', 3, elements=['marker']), + DefaultAttribute('markerWidth', 3, elements=['marker']), + DefaultAttribute('orient', 0, elements=['marker']), # text / textPath / tspan / tref DefaultAttribute('lengthAdjust', 'spacing', elements=['text', 'textPath', 'tref', 'tspan']), - DefaultAttribute('startOffset', 0, elements='textPath'), - DefaultAttribute('method', 'align', elements='textPath'), - DefaultAttribute('spacing', 'exact', elements='textPath'), + DefaultAttribute('startOffset', 0, elements=['textPath']), + DefaultAttribute('method', 'align', elements=['textPath']), + DefaultAttribute('spacing', 'exact', elements=['textPath']), # filters and masks DefaultAttribute('x', -10, Unit.PCT, ['filter', 'mask']), @@ -1807,63 +1807,63 @@ default_attributes = [ conditions=lambda node: node.getAttribute('gradientUnits') != 'userSpaceOnUse'), # gradients - DefaultAttribute('x1', 0, elements='linearGradient'), - DefaultAttribute('y1', 0, elements='linearGradient'), - DefaultAttribute('y2', 0, elements='linearGradient'), - DefaultAttribute('x2', 100, Unit.PCT, 'linearGradient'), - DefaultAttribute('x2', 1, Unit.NONE, 'linearGradient', + DefaultAttribute('x1', 0, elements=['linearGradient']), + DefaultAttribute('y1', 0, elements=['linearGradient']), + DefaultAttribute('y2', 0, elements=['linearGradient']), + DefaultAttribute('x2', 100, Unit.PCT, elements=['linearGradient']), + DefaultAttribute('x2', 1, Unit.NONE, elements=['linearGradient'], conditions=lambda node: node.getAttribute('gradientUnits') != 'userSpaceOnUse'), # remove fx/fy before cx/cy to catch the case where fx = cx = 50% or fy = cy = 50% respectively - DefaultAttribute('fx', elements='radialGradient', + DefaultAttribute('fx', elements=['radialGradient'], conditions=lambda node: node.getAttribute('fx') == node.getAttribute('cx')), - DefaultAttribute('fy', elements='radialGradient', + DefaultAttribute('fy', elements=['radialGradient'], conditions=lambda node: node.getAttribute('fy') == node.getAttribute('cy')), - DefaultAttribute('r', 50, Unit.PCT, 'radialGradient'), - DefaultAttribute('r', 0.5, Unit.NONE, 'radialGradient', + DefaultAttribute('r', 50, Unit.PCT, elements=['radialGradient']), + DefaultAttribute('r', 0.5, Unit.NONE, elements=['radialGradient'], conditions=lambda node: node.getAttribute('gradientUnits') != 'userSpaceOnUse'), - DefaultAttribute('cx', 50, Unit.PCT, 'radialGradient'), - DefaultAttribute('cx', 0.5, Unit.NONE, 'radialGradient', + DefaultAttribute('cx', 50, Unit.PCT, elements=['radialGradient']), + DefaultAttribute('cx', 0.5, Unit.NONE, elements=['radialGradient'], conditions=lambda node: node.getAttribute('gradientUnits') != 'userSpaceOnUse'), - DefaultAttribute('cy', 50, Unit.PCT, 'radialGradient'), - DefaultAttribute('cy', 0.5, Unit.NONE, 'radialGradient', + DefaultAttribute('cy', 50, Unit.PCT, elements=['radialGradient']), + DefaultAttribute('cy', 0.5, Unit.NONE, elements=['radialGradient'], conditions=lambda node: node.getAttribute('gradientUnits') != 'userSpaceOnUse'), DefaultAttribute('spreadMethod', 'pad'), # filter effects DefaultAttribute('amplitude', 1, elements=['feFuncA', 'feFuncB', 'feFuncG', 'feFuncR']), - DefaultAttribute('azimuth', 0, elements='feDistantLight'), + DefaultAttribute('azimuth', 0, elements=['feDistantLight']), DefaultAttribute('baseFrequency', 0, elements=['feFuncA', 'feFuncB', 'feFuncG', 'feFuncR']), - DefaultAttribute('bias', 1, elements='feConvolveMatrix'), - DefaultAttribute('diffuseConstant', 1, elements='feDiffuseLighting'), - DefaultAttribute('edgeMode', 'duplicate', elements='feConvolveMatrix'), - DefaultAttribute('elevation', 0, elements='feDistantLight'), + DefaultAttribute('bias', 1, elements=['feConvolveMatrix']), + DefaultAttribute('diffuseConstant', 1, elements=['feDiffuseLighting']), + DefaultAttribute('edgeMode', 'duplicate', elements=['feConvolveMatrix']), + DefaultAttribute('elevation', 0, elements=['feDistantLight']), DefaultAttribute('exponent', 1, elements=['feFuncA', 'feFuncB', 'feFuncG', 'feFuncR']), DefaultAttribute('intercept', 0, elements=['feFuncA', 'feFuncB', 'feFuncG', 'feFuncR']), - DefaultAttribute('k1', 0, elements='feComposite'), - DefaultAttribute('k2', 0, elements='feComposite'), - DefaultAttribute('k3', 0, elements='feComposite'), - DefaultAttribute('k4', 0, elements='feComposite'), - DefaultAttribute('mode', 'normal', elements='feBlend'), - DefaultAttribute('numOctaves', 1, elements='feTurbulence'), + DefaultAttribute('k1', 0, elements=['feComposite']), + DefaultAttribute('k2', 0, elements=['feComposite']), + DefaultAttribute('k3', 0, elements=['feComposite']), + DefaultAttribute('k4', 0, elements=['feComposite']), + DefaultAttribute('mode', 'normal', elements=['feBlend']), + DefaultAttribute('numOctaves', 1, elements=['feTurbulence']), DefaultAttribute('offset', 0, elements=['feFuncA', 'feFuncB', 'feFuncG', 'feFuncR']), - DefaultAttribute('operator', 'over', elements='feComposite'), - DefaultAttribute('operator', 'erode', elements='feMorphology'), - DefaultAttribute('order', 3, elements='feConvolveMatrix'), - DefaultAttribute('pointsAtX', 0, elements='feSpotLight'), - DefaultAttribute('pointsAtY', 0, elements='feSpotLight'), - DefaultAttribute('pointsAtZ', 0, elements='feSpotLight'), - DefaultAttribute('preserveAlpha', 'false', elements='feConvolveMatrix'), - DefaultAttribute('scale', 0, elements='feDisplacementMap'), - DefaultAttribute('seed', 0, elements='feTurbulence'), - DefaultAttribute('specularConstant', 1, elements='feSpecularLighting'), + DefaultAttribute('operator', 'over', elements=['feComposite']), + DefaultAttribute('operator', 'erode', elements=['feMorphology']), + DefaultAttribute('order', 3, elements=['feConvolveMatrix']), + DefaultAttribute('pointsAtX', 0, elements=['feSpotLight']), + DefaultAttribute('pointsAtY', 0, elements=['feSpotLight']), + DefaultAttribute('pointsAtZ', 0, elements=['feSpotLight']), + DefaultAttribute('preserveAlpha', 'false', elements=['feConvolveMatrix']), + DefaultAttribute('scale', 0, elements=['feDisplacementMap']), + DefaultAttribute('seed', 0, elements=['feTurbulence']), + DefaultAttribute('specularConstant', 1, elements=['feSpecularLighting']), DefaultAttribute('specularExponent', 1, elements=['feSpecularLighting', 'feSpotLight']), - DefaultAttribute('stdDeviation', 0, elements='feGaussianBlur'), - DefaultAttribute('stitchTiles', 'noStitch', elements='feTurbulence'), + DefaultAttribute('stdDeviation', 0, elements=['feGaussianBlur']), + DefaultAttribute('stitchTiles', 'noStitch', elements=['feTurbulence']), DefaultAttribute('surfaceScale', 1, elements=['feDiffuseLighting', 'feSpecularLighting']), - DefaultAttribute('type', 'matrix', elements='feColorMatrix'), - DefaultAttribute('type', 'turbulence', elements='feTurbulence'), - DefaultAttribute('xChannelSelector', 'A', elements='feDisplacementMap'), - DefaultAttribute('yChannelSelector', 'A', elements='feDisplacementMap') + DefaultAttribute('type', 'matrix', elements=['feColorMatrix']), + DefaultAttribute('type', 'turbulence', elements=['feTurbulence']), + DefaultAttribute('xChannelSelector', 'A', elements=['feDisplacementMap']), + DefaultAttribute('yChannelSelector', 'A', elements=['feDisplacementMap']) ] default_attributes_restricted_by_tag = defaultdict(list)