mirror of
https://github.com/explosion/spaCy.git
synced 2024-11-10 19:57:17 +03:00
warn when an unsupported/unknown key is given to the dependency matcher (#12928)
This commit is contained in:
parent
198488ee86
commit
869cc4ab0b
|
@ -219,6 +219,7 @@ class Warnings(metaclass=ErrorsWithCodes):
|
|||
W125 = ("The StaticVectors key_attr is no longer used. To set a custom "
|
||||
"key attribute for vectors, configure it through Vectors(attr=) or "
|
||||
"'spacy init vectors --attr'")
|
||||
W126 = ("These keys are unsupported: {unsupported}")
|
||||
|
||||
|
||||
class Errors(metaclass=ErrorsWithCodes):
|
||||
|
|
|
@ -129,6 +129,7 @@ cdef class DependencyMatcher:
|
|||
else:
|
||||
required_keys = {"RIGHT_ID", "RIGHT_ATTRS", "REL_OP", "LEFT_ID"}
|
||||
relation_keys = set(relation.keys())
|
||||
# Identify required keys that have not been specified
|
||||
missing = required_keys - relation_keys
|
||||
if missing:
|
||||
missing_txt = ", ".join(list(missing))
|
||||
|
@ -136,6 +137,13 @@ cdef class DependencyMatcher:
|
|||
required=required_keys,
|
||||
missing=missing_txt
|
||||
))
|
||||
# Identify additional, unsupported keys
|
||||
unsupported = relation_keys - required_keys
|
||||
if unsupported:
|
||||
unsupported_txt = ", ".join(list(unsupported))
|
||||
warnings.warn(Warnings.W126.format(
|
||||
unsupported=unsupported_txt
|
||||
))
|
||||
if (
|
||||
relation["RIGHT_ID"] in visited_nodes
|
||||
or relation["LEFT_ID"] not in visited_nodes
|
||||
|
|
|
@ -216,6 +216,11 @@ def test_dependency_matcher_pattern_validation(en_vocab):
|
|||
pattern2 = copy.deepcopy(pattern)
|
||||
pattern2[1]["RIGHT_ID"] = "fox"
|
||||
matcher.add("FOUNDED", [pattern2])
|
||||
# invalid key
|
||||
with pytest.warns(UserWarning):
|
||||
pattern2 = copy.deepcopy(pattern)
|
||||
pattern2[1]["FOO"] = "BAR"
|
||||
matcher.add("FOUNDED", [pattern2])
|
||||
|
||||
|
||||
def test_dependency_matcher_callback(en_vocab, doc):
|
||||
|
|
Loading…
Reference in New Issue
Block a user