[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