L,ddlZddlZddlmZdedefdZdeefdZdeefdZdeefdZ ded edefd Z ded edefd Z dS) N)Optionalsvg_datareturnct}|rt||St}|rt||St }|rt||St d)z Converts SVG data to PNG format using available converters. Args: svg_data (str): The SVG data to convert. Returns: bytes: The converted PNG data. Raises: RuntimeError: If no suitable converter is found. z&No suitable SVG to PNG converter found)_get_alt_imagemagick_binary_convert_with_imagemagick_get_rsvg_convert_binary_convert_with_rsvg_get_imagemagick_binary RuntimeError)ralt_imagemagick rsvg_convert imagemagicks /builddir/build/BUILDROOT/lve-stats-4.3.2-1.el9.x86_64/opt/cloudlinux/venv/lib/python3.11/site-packages/lvestats/lib/chart/svg2png.py svg_to_pngr s~233OD(?CCC+--L:!(L999)++K@(;??? ? @ @@cLd}tj|r|SdS)zV Returns the path to the alt-ImageMagick binary if it exists, otherwise None. z'/opt/alt/alt-ImageMagick/usr/bin/magickNospathexists)r s rrr)s+@O w~~o&& 4rcLd}tj|r|SdS)zR Returns the path to the ImageMagick binary if it exists, otherwise None. z/usr/bin/convertNr)native_imagemagicks rr r 3s,, w~~())"!! 4rcLd}tj|r|SdS)zS Returns the path to the rsvg-convert binary if it exists, otherwise None. z/usr/bin/rsvg-convertNr)rs rr r =s*+L w~~l## 4rrc$tjdkrdnd}tj|ddddgtjtj|5}|| \}}dddn #1swxYwY|S) z Converts SVG data to PNG format using rsvg-convert. Args: svg_data (str): The SVG data to convert. rsvg_convert (str): The path to the rsvg-convert binary. Returns: bytes: The converted PNG data. r /var/lve/tmpNz-fpngz-bzrgba(255, 255, 255, 255)stdinstdoutcwdinputrgetuid subprocessPopenPIPE communicateencode)rrr!procpng_data_s rr r GsIKK1,,..$C   tUD*DEo     @ &&X__->->&?? ! @@@@@@@@@@@@@@@ Os ,BB  B rc tjdkrdnd}tj|ddgtjtj|5}||\}}dddn #1swxYwY|S)z Converts SVG data to PNG format using ImageMagick. Args: svg_data (str): The SVG data to convert. imagemagick (str): The path to the ImageMagick binary. Returns: bytes: The converted PNG data. rrN-zpng:-rr"r$)rrr!r+r,r-s rrr]sIKK1,,..$C   c7#o     @ &&X__->->&?? ! @@@@@@@@@@@@@@@ Os ,BB B) rr&typingrstrbytesrrr r r rrrr4s AAAAAA:Xc]#(3-CE,#%r