From 478ff982a13548c49a8ec83df716cdc0265e9618 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20P=C3=A9ters?= Date: Sun, 17 Nov 2019 09:27:26 +0100 Subject: [PATCH] misc: sort dictionary keys when exporting to xml (#36515) --- wcs/fields.py | 2 +- wcs/formdef.py | 2 +- wcs/workflows.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/wcs/fields.py b/wcs/fields.py index 2df218771..28f9545fa 100644 --- a/wcs/fields.py +++ b/wcs/fields.py @@ -240,7 +240,7 @@ class Field(object): continue el = ET.SubElement(field, attribute) if type(val) is dict: - for k, v in val.items(): + for k, v in sorted(val.items()): if isinstance(v, str): text_value = force_text(v, charset, errors='replace') else: diff --git a/wcs/formdef.py b/wcs/formdef.py index 66b0cc562..694e4d031 100644 --- a/wcs/formdef.py +++ b/wcs/formdef.py @@ -959,7 +959,7 @@ class FormDef(StorableObject): sub.text = role options = ET.SubElement(root, 'options') - for option in self.workflow_options or []: + for option in sorted(self.workflow_options or []): element = ET.SubElement(options, 'option') element.attrib['varname'] = option option_value = self.workflow_options.get(option) diff --git a/wcs/workflows.py b/wcs/workflows.py index ddd1735fb..a6f11d78c 100644 --- a/wcs/workflows.py +++ b/wcs/workflows.py @@ -528,7 +528,7 @@ class Workflow(StorableObject): roles_node = ET.SubElement(root, 'roles') if self.roles: - for role_id, role_label in self.roles.items(): + for role_id, role_label in sorted(self.roles.items()): role_node = ET.SubElement(roles_node, 'role') role_node.attrib['id'] = role_id role_node.text = force_text(role_label, charset)