[image] Use "puremagic" instead of "magic" python module (#7536)

This commit is contained in:
guillempages 2024-10-05 09:07:32 +02:00 committed by GitHub
parent 1cf4818640
commit 0a62106b7b
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 5 additions and 6 deletions

View File

@ -6,7 +6,7 @@ import logging
from pathlib import Path from pathlib import Path
import re import re
from magic import Magic import puremagic
from esphome import core, external_files from esphome import core, external_files
import esphome.codegen as cg import esphome.codegen as cg
@ -237,8 +237,8 @@ CONFIG_SCHEMA = cv.All(font.validate_pillow_installed, IMAGE_SCHEMA)
def load_svg_image(file: bytes, resize: tuple[int, int]): def load_svg_image(file: bytes, resize: tuple[int, int]):
# Local import only to allow "validate_pillow_installed" to run *before* importing it # Local imports only to allow "validate_pillow_installed" to run *before* importing it
# This import is only needed in case of SVG images; adding it # cairosvg is only needed in case of SVG images; adding it
# to the top would force configurations not using SVG to also have it # to the top would force configurations not using SVG to also have it
# installed for no reason. # installed for no reason.
from cairosvg import svg2png from cairosvg import svg2png
@ -281,8 +281,7 @@ async def to_code(config):
except Exception as e: except Exception as e:
raise core.EsphomeError(f"Could not load image file {path}: {e}") raise core.EsphomeError(f"Could not load image file {path}: {e}")
mime = Magic(mime=True) file_type = puremagic.from_string(file_contents, mime=True)
file_type = mime.from_buffer(file_contents)
resize = config.get(CONF_RESIZE) resize = config.get(CONF_RESIZE)
if "svg" in file_type: if "svg" in file_type:

View File

@ -15,7 +15,7 @@ click==8.1.7
esphome-dashboard==20240620.0 esphome-dashboard==20240620.0
aioesphomeapi==24.6.2 aioesphomeapi==24.6.2
zeroconf==0.132.2 zeroconf==0.132.2
python-magic==0.4.27 puremagic==1.27
ruamel.yaml==0.18.6 # dashboard_import ruamel.yaml==0.18.6 # dashboard_import
# esp-idf requires this, but doesn't bundle it by default # esp-idf requires this, but doesn't bundle it by default