| @@ -5,8 +5,8 @@ v0.4 (unreleased): | |||||
| is a breaking change if you rely on the default behavior. | is a breaking change if you rely on the default behavior. | ||||
| - The 'matches' argument of Wikicode's filter methods now accepts a function | - The 'matches' argument of Wikicode's filter methods now accepts a function | ||||
| (taking one argument, a Node, and returning a bool) in addition to a regex. | (taking one argument, a Node, and returning a bool) in addition to a regex. | ||||
| - Wikicode.matches() now accepts a tuple of strings/Wikicode objects instead of | |||||
| just a single string or Wikicode. | |||||
| - Wikicode.matches() now accepts a tuple or list of strings/Wikicode objects | |||||
| instead of just a single string or Wikicode. | |||||
| - C code cleanup and speed improvements. | - C code cleanup and speed improvements. | ||||
| v0.3.2 (released September 1, 2013): | v0.3.2 (released September 1, 2013): | ||||
| @@ -14,7 +14,7 @@ Unreleased | |||||
| - The *matches* argument of :py:class:`Wikicode's <.Wikicode>` | - The *matches* argument of :py:class:`Wikicode's <.Wikicode>` | ||||
| :py:meth:`.filter` methods now accepts a function (taking one argument, a | :py:meth:`.filter` methods now accepts a function (taking one argument, a | ||||
| :py:class:`.Node`, and returning a bool) in addition to a regex. | :py:class:`.Node`, and returning a bool) in addition to a regex. | ||||
| - :py:meth:`.Wikicode.matches` now accepts a tuple of | |||||
| - :py:meth:`.Wikicode.matches` now accepts a tuple or list of | |||||
| strings/:py:class:`.Wikicode` objects instead of just a single string or | strings/:py:class:`.Wikicode` objects instead of just a single string or | ||||
| :py:class:`.Wikicode`. | :py:class:`.Wikicode`. | ||||
| - C code cleanup and speed improvements. | - C code cleanup and speed improvements. | ||||
| @@ -370,7 +370,7 @@ class Wikicode(StringMixIn): | |||||
| cmp = lambda a, b: (a[0].upper() + a[1:] == b[0].upper() + b[1:] | cmp = lambda a, b: (a[0].upper() + a[1:] == b[0].upper() + b[1:] | ||||
| if a and b else a == b) | if a and b else a == b) | ||||
| this = self.strip_code().strip() | this = self.strip_code().strip() | ||||
| if isinstance(other, tuple): | |||||
| if isinstance(other, (tuple, list)): | |||||
| for obj in other: | for obj in other: | ||||
| that = parse_anything(obj).strip_code().strip() | that = parse_anything(obj).strip_code().strip() | ||||
| if cmp(this, that): | if cmp(this, that): | ||||
| @@ -254,7 +254,9 @@ class TestWikicode(TreeEqualityTestCase): | |||||
| self.assertTrue(code1.matches(("cleanup", "stub"))) | self.assertTrue(code1.matches(("cleanup", "stub"))) | ||||
| self.assertTrue(code2.matches(("cleanup", "stub"))) | self.assertTrue(code2.matches(("cleanup", "stub"))) | ||||
| self.assertFalse(code2.matches(("StuB", "sTUb", "foobar"))) | self.assertFalse(code2.matches(("StuB", "sTUb", "foobar"))) | ||||
| self.assertFalse(code2.matches(["StuB", "sTUb", "foobar"])) | |||||
| self.assertTrue(code2.matches(("StuB", "sTUb", "foo", "bar", "Stub"))) | self.assertTrue(code2.matches(("StuB", "sTUb", "foo", "bar", "Stub"))) | ||||
| self.assertTrue(code2.matches(["StuB", "sTUb", "foo", "bar", "Stub"])) | |||||
| self.assertTrue(code3.matches("")) | self.assertTrue(code3.matches("")) | ||||
| self.assertTrue(code3.matches("<!-- nothing -->")) | self.assertTrue(code3.matches("<!-- nothing -->")) | ||||
| self.assertTrue(code3.matches(("a", "b", ""))) | self.assertTrue(code3.matches(("a", "b", ""))) | ||||