From cb875ae347f0b746d99159fa7edb235006145fbd Mon Sep 17 00:00:00 2001 From: Kunal Mehta Date: Sat, 2 Aug 2014 19:30:20 -0700 Subject: [PATCH 1/2] Force opening README.rst as utf-8 Causes issues if the locale is not set to utf-8 --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index d488650..68943ac 100644 --- a/setup.py +++ b/setup.py @@ -32,7 +32,7 @@ from setuptools import setup, find_packages, Extension from mwparserfromhell import __version__ from mwparserfromhell.compat import py26, py3k -with open("README.rst") as fp: +with open("README.rst", **{'encoding':'utf-8'} if py3k else {}) as fp: long_docs = fp.read() tokenizer = Extension("mwparserfromhell.parser._tokenizer", From 810c24e123c3adf67cd09f7bfe5a356305917612 Mon Sep 17 00:00:00 2001 From: Ben Kurtovic Date: Sun, 19 Oct 2014 01:11:46 -0500 Subject: [PATCH 2/2] Don't check quotes when attributes are built from tokens. --- mwparserfromhell/nodes/extras/attribute.py | 4 ++-- mwparserfromhell/parser/builder.py | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/mwparserfromhell/nodes/extras/attribute.py b/mwparserfromhell/nodes/extras/attribute.py index cb50194..7d296dc 100644 --- a/mwparserfromhell/nodes/extras/attribute.py +++ b/mwparserfromhell/nodes/extras/attribute.py @@ -37,9 +37,9 @@ class Attribute(StringMixIn): """ def __init__(self, name, value=None, quotes='"', pad_first=" ", - pad_before_eq="", pad_after_eq=""): + pad_before_eq="", pad_after_eq="", check_quotes=True): super(Attribute, self).__init__() - if not quotes and self._value_needs_quotes(value): + if check_quotes and not quotes and self._value_needs_quotes(value): raise ValueError("given value {0!r} requires quotes".format(value)) self._name = name self._value = value diff --git a/mwparserfromhell/parser/builder.py b/mwparserfromhell/parser/builder.py index 2d68036..97123f7 100644 --- a/mwparserfromhell/parser/builder.py +++ b/mwparserfromhell/parser/builder.py @@ -237,7 +237,8 @@ class Builder(object): else: name, value = self._pop(), None return Attribute(name, value, quotes, start.pad_first, - start.pad_before_eq, start.pad_after_eq) + start.pad_before_eq, start.pad_after_eq, + check_quotes=False) else: self._write(self._handle_token(token)) raise ParserError("_handle_attribute() missed a close token")