Fix logic for indef-s-vnoun
This commit is contained in:
parent
de3b4ebcd3
commit
0ad2847c4c
@ -18,14 +18,21 @@ def fix_infl_template(template: mwparserfromhell.nodes.Template):
|
|||||||
return any(s in template.params for s in synonyms)
|
return any(s in template.params for s in synonyms)
|
||||||
|
|
||||||
def remove_positional_by_value(val):
|
def remove_positional_by_value(val):
|
||||||
template.remove([p for p in template.params if p == val][0])
|
try:
|
||||||
|
val = [p for p in template.params if p == val][0]
|
||||||
|
template.remove(val)
|
||||||
|
except:
|
||||||
|
pass
|
||||||
|
|
||||||
is_indef = has_inflection(["indefinite", "indef", "indf", "indefinite state"])
|
indef = ["indefinite", "indef", "indf", "indefinite state"]
|
||||||
is_singular = has_inflection(["singular", "s", "sg"])
|
singular = ["singular", "s", "sg"]
|
||||||
|
is_indef = has_inflection(indef)
|
||||||
|
is_singular = has_inflection(singular)
|
||||||
|
|
||||||
if "vnoun" in template.params:
|
if "vnoun" in template.params or "verbal noun" in template.params:
|
||||||
if is_indef and is_singular:
|
if is_indef and is_singular:
|
||||||
remove_positional_by_value("vnoun")
|
[remove_positional_by_value(i) for i in indef]
|
||||||
|
[remove_positional_by_value(s) for s in singular]
|
||||||
else:
|
else:
|
||||||
verb = str(template.get(2)).replace(GRAVE, "").replace(ACUTE, "")
|
verb = str(template.get(2)).replace(GRAVE, "").replace(ACUTE, "")
|
||||||
try:
|
try:
|
||||||
@ -33,6 +40,7 @@ def fix_infl_template(template: mwparserfromhell.nodes.Template):
|
|||||||
if len(verbal_noun_list) > 1:
|
if len(verbal_noun_list) > 1:
|
||||||
raise ValueError()
|
raise ValueError()
|
||||||
remove_positional_by_value("vnoun")
|
remove_positional_by_value("vnoun")
|
||||||
|
remove_positional_by_value("verbal noun")
|
||||||
template.params[1] = verbal_noun_list[0]
|
template.params[1] = verbal_noun_list[0]
|
||||||
except KeyError:
|
except KeyError:
|
||||||
print(f"Verb {verb} has no verbal noun defined in the lookup table", file=sys.stderr)
|
print(f"Verb {verb} has no verbal noun defined in the lookup table", file=sys.stderr)
|
||||||
|
Loading…
Reference in New Issue
Block a user