[python-genshi/f18] Apply a patch that changes the default encoding back to utf-8

Luke Macken lmacken at fedoraproject.org
Wed May 1 13:22:06 UTC 2013


commit 383a349613cd5cf1c9d5f86ed02b621d1334450a
Author: Luke Macken <lmacken at redhat.com>
Date:   Wed May 1 09:17:02 2013 -0400

    Apply a patch that changes the default encoding back to utf-8

 python-genshi-0.7-default-utf8.patch |  269 ++++++++++++++++++++++++++++++++++
 python-genshi.spec                   |    7 +-
 2 files changed, 275 insertions(+), 1 deletions(-)
---
diff --git a/python-genshi-0.7-default-utf8.patch b/python-genshi-0.7-default-utf8.patch
new file mode 100644
index 0000000..443ee1f
--- /dev/null
+++ b/python-genshi-0.7-default-utf8.patch
@@ -0,0 +1,269 @@
+diff -Naur Genshi-0.7.orig/genshi/core.py Genshi-0.7/genshi/core.py
+--- Genshi-0.7.orig/genshi/core.py	2013-01-27 10:48:03.000000000 -0500
++++ Genshi-0.7/genshi/core.py	2013-05-01 08:46:49.176763363 -0400
+@@ -154,7 +154,7 @@
+         """
+         return reduce(operator.or_, (self,) + filters)
+ 
+-    def render(self, method=None, encoding=None, out=None, **kwargs):
++    def render(self, method=None, encoding='utf-8', out=None, **kwargs):
+         """Return a string representation of the stream.
+         
+         Any additional keyword arguments are passed to the serializer, and thus
+diff -Naur Genshi-0.7.orig/genshi/input.py Genshi-0.7/genshi/input.py
+--- Genshi-0.7.orig/genshi/input.py	2013-01-27 10:48:04.000000000 -0500
++++ Genshi-0.7/genshi/input.py	2013-05-01 08:47:39.312222208 -0400
+@@ -94,7 +94,7 @@
+                    entities.name2codepoint.items()]
+     _external_dtd = u'\n'.join(_entitydefs).encode('utf-8')
+ 
+-    def __init__(self, source, filename=None, encoding=None):
++    def __init__(self, source, filename=None, encoding='utf-8'):
+         """Initialize the parser for the given XML input.
+         
+         :param source: the XML text as a file-like object
+@@ -297,7 +297,7 @@
+                               'hr', 'img', 'input', 'isindex', 'link', 'meta',
+                               'param'])
+ 
+-    def __init__(self, source, filename=None, encoding=None):
++    def __init__(self, source, filename=None, encoding='utf-8'):
+         """Initialize the parser for the given HTML input.
+         
+         :param source: the HTML text as a file-like object
+@@ -415,7 +415,7 @@
+         self._enqueue(COMMENT, text)
+ 
+ 
+-def HTML(text, encoding=None):
++def HTML(text, encoding='utf-8'):
+     """Parse the given HTML source and return a markup stream.
+     
+     Unlike with `HTMLParser`, the returned stream is reusable, meaning it can be
+diff -Naur Genshi-0.7.orig/genshi/output.py Genshi-0.7/genshi/output.py
+--- Genshi-0.7.orig/genshi/output.py	2013-01-27 10:48:04.000000000 -0500
++++ Genshi-0.7/genshi/output.py	2013-05-01 08:48:21.310606488 -0400
+@@ -27,7 +27,7 @@
+ __docformat__ = 'restructuredtext en'
+ 
+ 
+-def encode(iterator, method='xml', encoding=None, out=None):
++def encode(iterator, method='xml', encoding='utf-8', out=None):
+     """Encode serializer output into a string.
+     
+     :param iterator: the iterator returned from serializing a stream (basically
+diff -Naur Genshi-0.7.orig/genshi/template/base.py Genshi-0.7/genshi/template/base.py
+--- Genshi-0.7.orig/genshi/template/base.py	2013-01-27 10:48:04.000000000 -0500
++++ Genshi-0.7/genshi/template/base.py	2013-05-01 08:49:01.885977671 -0400
+@@ -382,7 +382,7 @@
+     _number_conv = unicode # function used to convert numbers to event data
+ 
+     def __init__(self, source, filepath=None, filename=None, loader=None,
+-                 encoding=None, lookup='strict', allow_exec=True):
++                 encoding='utf-8', lookup='strict', allow_exec=True):
+         """Initialize a template from either a string, a file-like object, or
+         an already parsed markup stream.
+         
+diff -Naur Genshi-0.7.orig/genshi/template/loader.py Genshi-0.7/genshi/template/loader.py
+--- Genshi-0.7.orig/genshi/template/loader.py	2013-01-27 10:48:04.000000000 -0500
++++ Genshi-0.7/genshi/template/loader.py	2013-05-01 08:50:12.354622145 -0400
+@@ -77,7 +77,7 @@
+     >>> os.remove(path)
+     """
+     def __init__(self, search_path=None, auto_reload=False,
+-                 default_encoding=None, max_cache_size=25, default_class=None,
++                 default_encoding='utf-8', max_cache_size=25, default_class=None,
+                  variable_lookup='strict', allow_exec=True, callback=None):
+         """Create the template laoder.
+         
+@@ -248,7 +248,7 @@
+         finally:
+             self._lock.release()
+ 
+-    def _instantiate(self, cls, fileobj, filepath, filename, encoding=None):
++    def _instantiate(self, cls, fileobj, filepath, filename, encoding='utf-8'):
+         """Instantiate and return the `Template` object based on the given
+         class and parameters.
+         
+diff -Naur Genshi-0.7.orig/genshi/template/markup.py Genshi-0.7/genshi/template/markup.py
+--- Genshi-0.7.orig/genshi/template/markup.py	2013-01-27 10:48:04.000000000 -0500
++++ Genshi-0.7/genshi/template/markup.py	2013-05-01 08:50:37.145848825 -0400
+@@ -61,7 +61,7 @@
+     _number_conv = Markup
+ 
+     def __init__(self, source, filepath=None, filename=None, loader=None,
+-                 encoding=None, lookup='strict', allow_exec=True):
++                 encoding='utf-8', lookup='strict', allow_exec=True):
+         Template.__init__(self, source, filepath=filepath, filename=filename,
+                           loader=loader, encoding=encoding, lookup=lookup,
+                           allow_exec=allow_exec)
+diff -Naur Genshi-0.7.orig/genshi/template/plugin.py Genshi-0.7/genshi/template/plugin.py
+--- Genshi-0.7.orig/genshi/template/plugin.py	2013-01-27 10:48:04.000000000 -0500
++++ Genshi-0.7/genshi/template/plugin.py	2013-05-01 08:51:01.439070927 -0400
+@@ -44,7 +44,7 @@
+             options = {}
+         self.options = options
+ 
+-        self.default_encoding = options.get('genshi.default_encoding', None)
++        self.default_encoding = options.get('genshi.default_encoding', 'utf-8')
+         auto_reload = options.get('genshi.auto_reload', '1')
+         if isinstance(auto_reload, basestring):
+             auto_reload = auto_reload.lower() in ('1', 'on', 'yes', 'true')
+diff -Naur Genshi-0.7.orig/genshi/template/text.py Genshi-0.7/genshi/template/text.py
+--- Genshi-0.7.orig/genshi/template/text.py	2013-01-27 10:48:04.000000000 -0500
++++ Genshi-0.7/genshi/template/text.py	2013-05-01 08:51:24.092278014 -0400
+@@ -131,7 +131,7 @@
+     _ESCAPE_RE = r'\\\n|\\(\\)|\\(%s)|\\(%s)'
+ 
+     def __init__(self, source, filepath=None, filename=None, loader=None,
+-                 encoding=None, lookup='strict', allow_exec=False,
++                 encoding='utf-8', lookup='strict', allow_exec=False,
+                  delims=('{%', '%}', '{#', '#}')):
+         self.delimiters = delims
+         Template.__init__(self, source, filepath=filepath, filename=filename,
+diff -Naur Genshi-0.7.orig/genshi/filters/tests/i18n.py Genshi-0.7/genshi/filters/tests/i18n.py
+--- Genshi-0.7.orig/genshi/filters/tests/i18n.py	2013-01-27 10:48:04.000000000 -0500
++++ Genshi-0.7/genshi/filters/tests/i18n.py	2013-05-01 09:03:48.582113990 -0400
+@@ -265,7 +265,7 @@
+         translator.setup(tmpl)
+         self.assertEqual(u"""<html>
+           <p>Für Details siehe bitte <a href="help.html">Hilfe</a></p>
+-        </html>""", tmpl.generate().render())
++        </html>""", tmpl.generate().render(encoding=None))
+ 
+     def test_extract_i18n_msg_elt_nonewline(self):
+         tmpl = MarkupTemplate("""<html xmlns:py="http://genshi.edgewall.org/"
+@@ -418,7 +418,7 @@
+         translator.setup(tmpl)
+         self.assertEqual(u"""<html>
+           <p>Für Details siehe bitte <a href="help.html"><em>Hilfeseite</em></a>.</p>
+-        </html>""", tmpl.generate().render())
++        </html>""", tmpl.generate().render(encoding=None))
+ 
+     def test_extract_i18n_msg_label_with_nested_input(self):
+         tmpl = MarkupTemplate("""<html xmlns:py="http://genshi.edgewall.org/"
+@@ -473,7 +473,7 @@
+         translator.setup(tmpl)
+         self.assertEqual(u"""<html>
+           <p><input type="text" name="num"/> Einträge pro Seite anzeigen.</p>
+-        </html>""", tmpl.generate().render())
++        </html>""", tmpl.generate().render(encoding=None))
+ 
+     def test_extract_i18n_msg_multiple(self):
+         tmpl = MarkupTemplate("""<html xmlns:py="http://genshi.edgewall.org/"
+@@ -500,7 +500,7 @@
+         translator.setup(tmpl)
+         self.assertEqual(u"""<html>
+           <p>Für <em>Details</em> siehe bitte <a href="help.html">Hilfe</a>.</p>
+-        </html>""", tmpl.generate().render())
++        </html>""", tmpl.generate().render(encoding=None))
+ 
+     def test_extract_i18n_msg_multiple_empty(self):
+         tmpl = MarkupTemplate("""<html xmlns:py="http://genshi.edgewall.org/"
+@@ -569,7 +569,7 @@
+         translator.setup(tmpl)
+         self.assertEqual(u"""<html>
+           <p>Jim, sei gegrüßt!</p>
+-        </html>""", tmpl.generate(user=dict(name='Jim')).render())
++        </html>""", tmpl.generate(user=dict(name='Jim')).render(encoding=None))
+ 
+     def test_translate_i18n_msg_with_attribute_param(self):
+         tmpl = MarkupTemplate("""<html xmlns:py="http://genshi.edgewall.org/"
+@@ -583,7 +583,7 @@
+         translator.setup(tmpl)
+         self.assertEqual(u"""<html>
+           <p>Sei gegrüßt, <a href="#42">Alter</a>!</p>
+-        </html>""", tmpl.generate(anchor='42').render())
++        </html>""", tmpl.generate(anchor='42').render(encoding=None))
+ 
+     def test_extract_i18n_msg_with_two_params(self):
+         tmpl = MarkupTemplate("""<html xmlns:py="http://genshi.edgewall.org/"
+@@ -641,7 +641,7 @@
+         translator.setup(tmpl)
+         self.assertEqual(u"""<html>
+           <p><input type="text" name="num" value="x"/> Einträge pro Seite anzeigen.</p>
+-        </html>""", tmpl.generate().render())
++        </html>""", tmpl.generate().render(encoding=None))
+ 
+     def test_extract_i18n_msg_with_comment(self):
+         tmpl = MarkupTemplate("""<html xmlns:py="http://genshi.edgewall.org/"
+@@ -700,7 +700,7 @@
+         tmpl.add_directives(Translator.NAMESPACE, translator)
+         self.assertEqual(u"""<html>
+           <p title="Voh bär">Voh</p>
+-        </html>""", tmpl.generate().render())
++        </html>""", tmpl.generate().render(encoding=None))
+ 
+     def test_translate_i18n_msg_and_py_strip_directives(self):
+         tmpl = MarkupTemplate("""<html xmlns:py="http://genshi.edgewall.org/"
+@@ -841,7 +841,7 @@
+             e configuração do Trac, por favor tente a
+             <a href="http://trac.edgewall.org/wiki/MailingList">mailing list</a>
+             em vez de criar um assunto.</p>
+-        </html>""", tmpl.generate(ctx).render())
++        </html>""", tmpl.generate(ctx).render(encoding=None))
+ 
+     def test_i18n_msg_with_other_nested_directives_with_reordered_content(self):
+         # See: http://genshi.edgewall.org/ticket/300#comment:10
+diff -Naur Genshi-0.7.orig/genshi/template/tests/plugin.py Genshi-0.7/genshi/template/tests/plugin.py
+--- Genshi-0.7.orig/genshi/template/tests/plugin.py	2013-01-27 10:48:04.000000000 -0500
++++ Genshi-0.7/genshi/template/tests/plugin.py	2013-05-01 09:03:14.452801391 -0400
+@@ -30,7 +30,7 @@
+ 
+     def test_init_no_options(self):
+         plugin = MarkupTemplateEnginePlugin()
+-        self.assertEqual(None, plugin.default_encoding)
++        self.assertEqual('utf-8', plugin.default_encoding)
+         self.assertEqual('html', plugin.default_format)
+         self.assertEqual(None, plugin.default_doctype)
+ 
+@@ -178,7 +178,7 @@
+ 
+     def test_init_no_options(self):
+         plugin = TextTemplateEnginePlugin()
+-        self.assertEqual(None, plugin.default_encoding)
++        self.assertEqual('utf-8', plugin.default_encoding)
+         self.assertEqual('text', plugin.default_format)
+ 
+         self.assertEqual([], plugin.loader.search_path)
+diff -Naur Genshi-0.7.orig/genshi/tests/core.py Genshi-0.7/genshi/tests/core.py
+--- Genshi-0.7.orig/genshi/tests/core.py	2013-01-27 10:48:03.000000000 -0500
++++ Genshi-0.7/genshi/tests/core.py	2013-05-01 09:00:39.619382416 -0400
+@@ -29,7 +29,6 @@
+ 
+     def test_render_unicode(self):
+         xml = XML('<li>Über uns</li>')
+-        self.assertEqual(u'<li>Über uns</li>', xml.render())
+         self.assertEqual(u'<li>Über uns</li>', xml.render(encoding=None))
+ 
+     def test_render_ascii(self):
+diff -Naur Genshi-0.7.orig/genshi/tests/input.py Genshi-0.7/genshi/tests/input.py
+--- Genshi-0.7.orig/genshi/tests/input.py	2013-01-27 10:48:03.000000000 -0500
++++ Genshi-0.7/genshi/tests/input.py	2013-05-01 08:57:14.619501353 -0400
+@@ -52,7 +52,7 @@
+ 
+     def test_unicode_input(self):
+         text = u'<div>\u2013</div>'
+-        events = list(XMLParser(StringIO(text)))
++        events = list(XMLParser(StringIO(text), encoding=None))
+         kind, data, pos = events[1]
+         self.assertEqual(Stream.TEXT, kind)
+         self.assertEqual(u'\u2013', data)
+@@ -68,7 +68,7 @@
+         text = u"""<?xml version="1.0" encoding="iso-8859-1" ?>
+         <div>\xf6</div>
+         """.encode('iso-8859-1')
+-        events = list(XMLParser(BytesIO(text)))
++        events = list(XMLParser(BytesIO(text), encoding=None))
+         kind, data, pos = events[2]
+         self.assertEqual(Stream.TEXT, kind)
+         self.assertEqual(u'\xf6', data)
+@@ -148,7 +148,7 @@
+ 
+     def test_unicode_input(self):
+         text = u'<div>\u2013</div>'
+-        events = list(HTMLParser(StringIO(text)))
++        events = list(HTMLParser(StringIO(text), encoding=None))
+         kind, data, pos = events[1]
+         self.assertEqual(Stream.TEXT, kind)
+         self.assertEqual(u'\u2013', data)
diff --git a/python-genshi.spec b/python-genshi.spec
index 2e6144e..70aa37c 100644
--- a/python-genshi.spec
+++ b/python-genshi.spec
@@ -4,7 +4,7 @@
 
 Name:           python-genshi
 Version:        0.7
-Release:        2%{?dist}
+Release:        3%{?dist}
 Summary:        Toolkit for stream-based generation of output for the web
 
 Group:          Development/Languages
@@ -12,6 +12,7 @@ License:        BSD
 URL:            http://genshi.edgewall.org/
 
 Source0:        http://ftp.edgewall.com/pub/genshi/Genshi-%{version}.tar.gz
+Patch0:         %{name}-%{version}-default-utf8.patch
 
 BuildRequires:  python2-devel
 BuildRequires:  python-setuptools
@@ -45,6 +46,7 @@ a template language, which is heavily inspired by Kid.
 
 %prep
 %setup0 -q -n Genshi-%{version}
+%patch0 -p1 -b .utf8
 
 # Remove bundled egg-info in case it exists
 rm -rf %{modname}.egg-info
@@ -92,6 +94,9 @@ popd
 %endif
 
 %changelog
+* Wed May  1 2013 Luke Macken <lmacken at redhat.com> - 0.7-3
+- Apply a patch that changes the default encoding back to utf-8
+
 * Wed Apr 10 2013 Luke Macken <lmacken at redhat.com> - 0.7-2
 - Disable the python3 subpackage until python-babel is ported
 


More information about the scm-commits mailing list