Merge pull request #3936 from modoboa/fix/graphics-issue-popen

Make graphics rendering work again after change to Popen execution mode.
This commit is contained in:
Antoine Nguyen
2026-02-23 15:45:32 +01:00
committed by GitHub
2 changed files with 14 additions and 13 deletions
+8 -7
View File
@@ -37,7 +37,7 @@ def smart_str(value, *args, **kwargs):
return django_smart_str(value, *args, **kwargs)
def fix_utf8_encoding(value):
def fix_utf8_encoding(value: str) -> str:
"""Fix utf-8 strings that contain utf-8 escaped characters.
msgs.from_addr and msgs.subject potentialy contain badly escaped utf-8
@@ -58,12 +58,13 @@ def fix_utf8_encoding(value):
value = bytes_value.decode("utf-8")
except UnicodeDecodeError:
encoding = chardet.detect(bytes_value)
try:
value = bytes_value.decode(encoding["encoding"], "replace")
except (TypeError, UnicodeDecodeError):
# ??? use the original value, we've done our best to try and
# convert it to a clean utf-8 string.
pass
if encoding["confidence"] > 50.0:
try:
value = bytes_value.decode(encoding["encoding"], "replace")
except (TypeError, UnicodeDecodeError):
# ??? use the original value, we've done our best to try and
# convert it to a clean utf-8 string.
pass
return value
+6 -6
View File
@@ -41,16 +41,16 @@ class Curve:
return [
f"DEF:{self.dsname}={rrdfile}:{self.dsname}:{self.cfunc}",
f"CDEF:{self.dsname}pm={self.dsname},UN,0,{self.dsname},IF,60,*",
f'XPORT:{self.dsname}pm:"{self.legend}"',
f"XPORT:{self.dsname}pm:'{self.legend}'",
]
class Graphic:
"""Graphic."""
def __init__(self):
def __init__(self) -> None:
"""Constructor."""
self._curves = []
self._curves: list[Curve] = []
try:
order = self.order
except AttributeError:
@@ -131,9 +131,9 @@ class Graphic:
class GraphicSet:
"""A set of graphics."""
domain_selector = False
title = None
_graphics = []
domain_selector: bool = False
title: str | None = None
_graphics: list[Graphic] = []
def __init__(self, instances=None):
if instances is None: