summaryrefslogtreecommitdiff
path: root/feedgenerator
diff options
context:
space:
mode:
authorDeniz Turgut <dturgut@gmail.com>2013-04-05 20:14:39 -0400
committerDeniz Turgut <dturgut@gmail.com>2013-04-05 20:14:39 -0400
commit60ec738f2c0699b2babc7ff63eac0bece39bddfc (patch)
tree9ce143a6b2957932126a7de8a1c1b320d2147aa6 /feedgenerator
parente49a429be4451995ae13a7bf71299f0ed41d8d04 (diff)
downloadfeedgenerator-60ec738f2c0699b2babc7ff63eac0bece39bddfc.tar.gz
sort attributes for consistent output
Diffstat (limited to 'feedgenerator')
-rw-r--r--feedgenerator/django/utils/feedgenerator.py7
-rw-r--r--feedgenerator/django/utils/xmlutils.py9
2 files changed, 10 insertions, 6 deletions
diff --git a/feedgenerator/django/utils/feedgenerator.py b/feedgenerator/django/utils/feedgenerator.py
index 6ef46de..e8e4d87 100644
--- a/feedgenerator/django/utils/feedgenerator.py
+++ b/feedgenerator/django/utils/feedgenerator.py
@@ -24,7 +24,6 @@ http://web.archive.org/web/20110718035220/http://diveintomark.org/archives/2004/
from __future__ import unicode_literals
import datetime
-import collections
try:
from urllib.parse import urlparse
except ImportError: # Python 2
@@ -221,10 +220,8 @@ class RssFeed(SyndicationFeed):
handler.endElement("rss")
def rss_attributes(self):
- d = collections.OrderedDict()
- d["xmlns:atom"] = "http://www.w3.org/2005/Atom"
- d["version"] = self._version
- return d
+ return {'xmlns:atom': 'http://www.w3.org/2005/Atom',
+ 'version': self._version}
def write_items(self, handler):
for item in self.items:
diff --git a/feedgenerator/django/utils/xmlutils.py b/feedgenerator/django/utils/xmlutils.py
index a1eb5fb..0ee81aa 100644
--- a/feedgenerator/django/utils/xmlutils.py
+++ b/feedgenerator/django/utils/xmlutils.py
@@ -2,7 +2,7 @@
Utilities for XML generation/parsing.
"""
-from xml.sax.saxutils import XMLGenerator
+from xml.sax.saxutils import XMLGenerator, quoteattr
class SimplerXMLGenerator(XMLGenerator):
def addQuickElement(self, name, contents=None, attrs=None):
@@ -12,3 +12,10 @@ class SimplerXMLGenerator(XMLGenerator):
if contents is not None:
self.characters(contents)
self.endElement(name)
+
+ def startElement(self, name, attrs):
+ self._write('<' + name)
+ # sort attributes for consistent output
+ for (name, value) in sorted(attrs.items()):
+ self._write(' %s=%s' % (name, quoteattr(value)))
+ self._write('>')