summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--django/core/serializers/xml_serializer.py25
1 files changed, 2 insertions, 23 deletions
diff --git a/django/core/serializers/xml_serializer.py b/django/core/serializers/xml_serializer.py
index 6d3005ac40..366e077c78 100644
--- a/django/core/serializers/xml_serializer.py
+++ b/django/core/serializers/xml_serializer.py
@@ -3,8 +3,7 @@ XML serializer.
"""
import json
-from contextlib import contextmanager
-from xml.dom import minidom, pulldom
+from xml.dom import pulldom
from xml.sax import handler
from xml.sax.expatreader import ExpatParser as _ExpatParser
@@ -16,25 +15,6 @@ from django.db import DEFAULT_DB_ALIAS, models
from django.utils.xmlutils import SimplerXMLGenerator, UnserializableContentError
-@contextmanager
-def fast_cache_clearing():
- """Workaround for performance issues in minidom document checks.
-
- Speeds up repeated DOM operations by skipping unnecessary full traversal
- of the DOM tree.
- """
- module_helper_was_lambda = False
- if original_fn := getattr(minidom, "_in_document", None):
- module_helper_was_lambda = original_fn.__name__ == "<lambda>"
- if not module_helper_was_lambda:
- minidom._in_document = lambda node: bool(node.ownerDocument)
- try:
- yield
- finally:
- if original_fn and not module_helper_was_lambda:
- minidom._in_document = original_fn
-
-
class Serializer(base.Serializer):
"""Serialize a QuerySet to XML."""
@@ -267,8 +247,7 @@ class Deserializer(base.Deserializer):
def __next__(self):
for event, node in self.event_stream:
if event == "START_ELEMENT" and node.nodeName == "object":
- with fast_cache_clearing():
- self.event_stream.expandNode(node)
+ self.event_stream.expandNode(node)
return self._handle_object(node)
raise StopIteration