Coverage for lib/lottie/exporters/svg.py: 62%

16 statements  

« prev     ^ index     » next       coverage.py v7.2.2, created at 2023-03-20 16:17 +0100

1from xml.dom import minidom 

2from xml.etree import ElementTree 

3 

4from .base import exporter 

5from ..parsers.baseporter import ExtraOption 

6from ..parsers.svg.builder import to_svg 

7from ..utils.file import open_file 

8 

9 

10def _print_ugly_xml(dom, file): 

11 return dom.write(file, "utf-8", True) 

12 

13 

14def _print_pretty_xml(dom, file): 

15 with open_file(file) as fp: 

16 xmlstr = minidom.parseString(ElementTree.tostring(dom.getroot())).toprettyxml(indent=" ") 

17 fp.write(xmlstr) 

18 

19 

20@exporter("SVG", ["svg"], [ 

21 ExtraOption("animated", action="store_true", help="Export animated svg"), 

22], {"pretty", "frame"}) 

23def export_svg(animation, file, frame=0, pretty=True, animated=False): 

24 _print_xml = _print_pretty_xml if pretty else _print_ugly_xml 

25 _print_xml(to_svg(animation, frame, animated), file)