From 4067b17a5964aa2c7863ff4dd60de1971d79c42d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christopher=20Ram=C3=ADrez?= Date: Sun, 20 Jul 2014 13:11:12 -0600 Subject: [PATCH] Sorting escape rules to ensure an apply order. --- secretary.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/secretary.py b/secretary.py index d2ce915..b586869 100644 --- a/secretary.py +++ b/secretary.py @@ -22,6 +22,7 @@ import re import sys import logging import zipfile +from collections import OrderedDict from xml.dom.minidom import parseString from jinja2 import Environment, Undefined @@ -287,6 +288,9 @@ class Renderer(object): def _unescape_entities(self, xml_text): # unescape XML entities gt and lt + if sys.version_info >= (2, 7): + unescape_rules = OrderedDict() + unescape_rules = { r'(?is)({[{|%].*)(>)(.*[%|}]})': r'\1>\3', r'(?is)({[{|%].*)(<)(.*[%|}]})': r'\1<\3', @@ -299,6 +303,9 @@ class Renderer(object): return xml_text def _encode_escape_chars(self, xml_text): + if sys.version_info >= (2, 7): + encode_rules = OrderedDict() + encode_rules = { '(?i)(.*)(\n)(.*)': r'\1\3', '(?i)(.*)(\u0009)(.*)': r'\1\3',