From 7142667340f78403cbbcaa8f33703c494282b7b7 Mon Sep 17 00:00:00 2001 From: Tim Graham Date: Sat, 4 Apr 2026 15:52:18 -0400 Subject: Replaced yaml serializer workaround to preserve dict order with PyYAML's sort_keys=False. The sort_keys parameter was added in PyYAML 5.1 (released March 2019). The workaround was added in 24b82cd201e21060fbc02117dc16d1702877a1f3 (refs #30159). --- django/core/serializers/pyyaml.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/django/core/serializers/pyyaml.py b/django/core/serializers/pyyaml.py index fdc245756f..935d3cec49 100644 --- a/django/core/serializers/pyyaml.py +++ b/django/core/serializers/pyyaml.py @@ -34,9 +34,6 @@ DjangoSafeDumper.add_representer(decimal.Decimal, DjangoSafeDumper.represent_dec DjangoSafeDumper.add_representer( collections.OrderedDict, DjangoSafeDumper.represent_ordered_dict ) -# Workaround to represent dictionaries in insertion order. -# See https://github.com/yaml/pyyaml/pull/143. -DjangoSafeDumper.add_representer(dict, DjangoSafeDumper.represent_ordered_dict) class Serializer(PythonSerializer): @@ -59,7 +56,13 @@ class Serializer(PythonSerializer): def end_serialization(self): self.options.setdefault("allow_unicode", True) - yaml.dump(self.objects, self.stream, Dumper=DjangoSafeDumper, **self.options) + yaml.dump( + self.objects, + self.stream, + Dumper=DjangoSafeDumper, + sort_keys=False, + **self.options, + ) def getvalue(self): # Grandparent super -- cgit v1.3