Browse Source

Update changelog, rerun hooks, add an assert

main
Ben Kurtovic 3 months ago
parent
commit
e0150e359e
6 changed files with 17 additions and 9 deletions
  1. +1
    -1
      CHANGELOG
  2. +3
    -1
      docs/changelog.rst
  3. +1
    -1
      scripts/memtest.py
  4. +5
    -3
      src/mwparserfromhell/nodes/template.py
  5. +1
    -1
      src/mwparserfromhell/parser/ctokenizer/avl_tree.c
  6. +6
    -2
      tests/test_template.py

+ 1
- 1
CHANGELOG View File

@@ -1,6 +1,6 @@
v0.7 (unreleased): v0.7 (unreleased):


- ...
- Added 'after' parameter to Template.add(). (#281, #315)


v0.6.6 (released January 4, 2024): v0.6.6 (released January 4, 2024):




+ 3
- 1
docs/changelog.rst View File

@@ -7,7 +7,9 @@ v0.7
Unreleased Unreleased
(`changes <https://github.com/earwig/mwparserfromhell/compare/v0.6.6...main>`__): (`changes <https://github.com/earwig/mwparserfromhell/compare/v0.6.6...main>`__):


- ...
- Added 'after' parameter to Template.add().
(`#281 <https://github.com/earwig/mwparserfromhell/issues/281>`_,
`#315 <https://github.com/earwig/mwparserfromhell/pull/315>`_)


v0.6.6 v0.6.6
------ ------


+ 1
- 1
scripts/memtest.py View File

@@ -114,7 +114,7 @@ class MemoryTest:
def run(self): def run(self):
"""Run the memory test suite.""" """Run the memory test suite."""
width = 1 width = 1
for (name, _) in self._tests:
for name, _ in self._tests:
if len(name) > width: if len(name) > width:
width = len(name) width = len(name)




+ 5
- 3
src/mwparserfromhell/nodes/template.py View File

@@ -237,8 +237,9 @@ class Template(Node):
def __getitem__(self, name): def __getitem__(self, name):
return self.get(name) return self.get(name)


def add(self, name, value, showkey=None, before=None, after=None,
preserve_spacing=True):
def add(
self, name, value, showkey=None, before=None, after=None, preserve_spacing=True
):
"""Add a parameter to the template with a given *name* and *value*. """Add a parameter to the template with a given *name* and *value*.


*name* and *value* can be anything parsable by *name* and *value* can be anything parsable by
@@ -317,13 +318,14 @@ class Template(Node):


param = Parameter(name, value, showkey) param = Parameter(name, value, showkey)
if before: if before:
assert after is None, "Cannot set a value for both 'before' and 'after'"
if not isinstance(before, Parameter): if not isinstance(before, Parameter):
before = self.get(before) before = self.get(before)
self.params.insert(self.params.index(before), param) self.params.insert(self.params.index(before), param)
elif after: elif after:
if not isinstance(after, Parameter): if not isinstance(after, Parameter):
after = self.get(after) after = self.get(after)
self.params.insert(self.params.index(after)+1, param)
self.params.insert(self.params.index(after) + 1, param)
else: else:
self.params.append(param) self.params.append(param)
return param return param


+ 1
- 1
src/mwparserfromhell/parser/ctokenizer/avl_tree.c View File

@@ -19,7 +19,7 @@
*/ */


#define false 0 #define false 0
#define true 1
#define true 1


typedef int bool; typedef int bool;




+ 6
- 2
tests/test_template.py View File

@@ -334,8 +334,12 @@ def test_add():
node40.add("3", "d") node40.add("3", "d")
node41.add("3", "d") node41.add("3", "d")
node42.add("b", "hello") node42.add("b", "hello")
node43 = Template(wraptext("a"), [pgens("b", "c"), pgens("d", "e"), pgens("f", "g")])
node44 = Template(wraptext("a"), [pgens("b", "c"), pgens("d", "e"), pgens("f", "g")])
node43 = Template(
wraptext("a"), [pgens("b", "c"), pgens("d", "e"), pgens("f", "g")]
)
node44 = Template(
wraptext("a"), [pgens("b", "c"), pgens("d", "e"), pgens("f", "g")]
)
node43.add("new_param", "value", after="d") node43.add("new_param", "value", after="d")
node44.add("new_param", "value", after="f") node44.add("new_param", "value", after="f")




Loading…
Cancel
Save