Преглед изворни кода

Keep wikilink filters semantically aligned

pull/362/head
Vincent Gao пре 3 месеци
родитељ
комит
1be7727579
No known key found for this signature in database GPG Key ID: 4EB74F921300AF3B
2 измењених фајлова са 13 додато и 8 уклоњено
  1. +10
    -8
      src/mwparserfromhell/wikicode.py
  2. +3
    -0
      tests/test_parser.py

+ 10
- 8
src/mwparserfromhell/wikicode.py Прегледај датотеку

@@ -160,6 +160,12 @@ class Wikicode(StringMixIn):
else:
inodes = enumerate(self.nodes)
for i, node in inodes:
if (
forcetype is Wikilink
and isinstance(node, Wikilink)
and not str(node.title)
):
continue
if (forcetype is None or isinstance(node, forcetype)) and match(
cast(N, node)
):
@@ -761,12 +767,8 @@ class Wikicode(StringMixIn):
This is equivalent to :meth:`ifilter` with *forcetype* set to
:class:`~wikilink.Wikilink`.
"""
return (
node
for node in self.ifilter(
recursive=recursive, matches=matches, flags=flags, forcetype=Wikilink
)
if str(node.title)
return self.ifilter(
recursive=recursive, matches=matches, flags=flags, forcetype=Wikilink
)

@overload
@@ -938,8 +940,8 @@ class Wikicode(StringMixIn):
This is equivalent to :meth:`filter` with *forcetype* set to
:class:`~wikilink.Wikilink`.
"""
return list(
self.ifilter_wikilinks(recursive=recursive, matches=matches, flags=flags)
return self.filter(
recursive=recursive, matches=matches, flags=flags, forcetype=Wikilink
)

def get_sections(


+ 3
- 0
tests/test_parser.py Прегледај датотеку

@@ -123,5 +123,8 @@ def test_empty_title_wikilink_filter_wikilinks(text):
"""
parsed = parser.Parser().parse(text)
assert parsed.filter_wikilinks() == []
assert parsed.filter(forcetype=Wikilink) == []
assert list(parsed.ifilter(forcetype=Wikilink)) == []
assert isinstance(parsed.get(0), Wikilink)
assert parsed.get(0) in parsed.filter()
assert str(parsed) == text

Loading…
Откажи
Сачувај