parse_transform() handled invalid transform attributes inconsistently:
some malformed substrings raised bare errors (e.g. "could not convert
string to float") partway through the list, others were skipped or
silently misapplied. It now degrades gracefully by default -- each
invalid substring emits an SVGSyntaxWarning and contributes an identity
matrix, so the valid transforms still apply -- and raises ValueError on
any invalid syntax when strict parsing is requested.
- parse_transform(s, strict=True) opts into hard errors
- strict_transform_parsing kwarg on Document, Document.from_svg_string,
SaxDocument, flattened_paths, and flattened_paths_from_group
- SVGSyntaxWarning (a UserWarning subclass) exported at top level, so
the warnings can be filtered or escalated selectively
- Transform types now match exactly (no more 'notmatrix' as 'matrix');
values are validated against the SVG number grammar (rejects nan/inf,
'1_0', overflow); falsy non-strings raise TypeError
- transform="none", tabs/newlines, and trailing separator commas parse
correctly 1 new message (click) ↓