AttributeError: 'SVGLength' object has no attribute 'units' on SVG 1.1 reference SVG file
Created by: nthykier
scour on the current master branch fails to process several of the SVG 1.1 reference SVGs. Below is one of these failures:
Processing filters-conv-01-f.svg
Traceback (most recent call last):
File "scour.py", line 3, in <module>
run()
File "$GIT_DIR/scour/scour.py", line 3928, in run
start(options, input, output)
File "$GIT_DIR/scour/scour.py", line 3896, in start
out_string = scourString(in_string, options).encode("UTF-8")
File "$GIT_DIR/scour/scour.py", line 3567, in scourString
_num_attributes_removed += removeDefaultAttributeValues(doc.documentElement, options)
File "$GIT_DIR/scour/scour.py", line 1965, in removeDefaultAttributeValues
num += removeDefaultAttributeValues(child, options, tainted.copy())
File "$GIT_DIR/scour/scour.py", line 1965, in removeDefaultAttributeValues
num += removeDefaultAttributeValues(child, options, tainted.copy())
File "$GIT_DIR/scour/scour.py", line 1965, in removeDefaultAttributeValues
num += removeDefaultAttributeValues(child, options, tainted.copy())
[Previous line repeated 1 more times]
File "$GIT_DIR/scour/scour.py", line 1939, in removeDefaultAttributeValues
num += removeDefaultAttributeValue(node, attribute)
File "$GIT_DIR/scour/scour.py", line 1911, in removeDefaultAttributeValue
or ((nodeValue.value == attribute.value) and not (nodeValue.units == Unit.INVALID))):
AttributeError: 'SVGLength' object has no attribute 'units'
Processing filters-conv-02-f.svg
Traceback (most recent call last):
File "scour.py", line 3, in <module>
run()
File "$GIT_DIR/scour/scour.py", line 3928, in run
start(options, input, output)
File "$GIT_DIR/scour/scour.py", line 3896, in start
out_string = scourString(in_string, options).encode("UTF-8")
File "$GIT_DIR/scour/scour.py", line 3567, in scourString
_num_attributes_removed += removeDefaultAttributeValues(doc.documentElement, options)
File "$GIT_DIR/scour/scour.py", line 1965, in removeDefaultAttributeValues
num += removeDefaultAttributeValues(child, options, tainted.copy())
File "$GIT_DIR/scour/scour.py", line 1965, in removeDefaultAttributeValues
num += removeDefaultAttributeValues(child, options, tainted.copy())
File "$GIT_DIR/scour/scour.py", line 1965, in removeDefaultAttributeValues
num += removeDefaultAttributeValues(child, options, tainted.copy())
File "$GIT_DIR/scour/scour.py", line 1939, in removeDefaultAttributeValues
num += removeDefaultAttributeValue(node, attribute)
File "$GIT_DIR/scour/scour.py", line 1911, in removeDefaultAttributeValue
or ((nodeValue.value == attribute.value) and not (nodeValue.units == Unit.INVALID))):
AttributeError: 'SVGLength' object has no attribute 'units'
Options used:
scour --enable-id-stripping --enable-comment-stripping --shorten-ids --indent=none --no-line-breaks --strip-xml-prolog --remove-descriptive-elements --set-precision=8 --set-c-precision=8 --create-groups --remove-titles --remove-descriptions --remove-metadata
Test data is from: https://www.w3.org/Graphics/SVG/Test/20110816/