Skip to content

Commit 4fd7de6

Browse files
committed
Defer importinng defusedxml
1 parent d36e26c commit 4fd7de6

1 file changed

Lines changed: 5 additions & 10 deletions

File tree

src/PIL/Image.py

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -67,16 +67,9 @@
6767
from ._deprecate import deprecate
6868
from ._util import DeferredError, is_path
6969

70-
ElementTree: ModuleType | None
71-
try:
72-
from defusedxml import ElementTree
73-
except ImportError:
74-
ElementTree = None
75-
7670
TYPE_CHECKING = False
7771
if TYPE_CHECKING:
7872
from collections.abc import Callable, Iterator, Sequence
79-
from types import ModuleType
8073
from typing import Any, Literal
8174

8275
logger = logging.getLogger(__name__)
@@ -1596,6 +1589,11 @@ def getxmp(self) -> dict[str, Any]:
15961589
15971590
:returns: XMP tags in a dictionary.
15981591
"""
1592+
try:
1593+
from defusedxml import ElementTree
1594+
except ImportError:
1595+
warnings.warn("XMP data cannot be read without defusedxml dependency")
1596+
return {}
15991597

16001598
def get_name(tag: str) -> str:
16011599
return re.sub("^{[^}]+}", "", tag)
@@ -1620,9 +1618,6 @@ def get_value(element: Element) -> str | dict[str, Any] | None:
16201618
return element.text
16211619
return value
16221620

1623-
if ElementTree is None:
1624-
warnings.warn("XMP data cannot be read without defusedxml dependency")
1625-
return {}
16261621
if "xmp" not in self.info:
16271622
return {}
16281623
root = ElementTree.fromstring(self.info["xmp"].rstrip(b"\x00 "))

0 commit comments

Comments
 (0)