mirror of https://github.com/explosion/spaCy.git
Fix off-by-one error in nlp.add_pipe(after=name) (fixes #1654)
This commit is contained in:
parent
343fd2969d
commit
a31506e060
|
@ -260,7 +260,7 @@ class Language(object):
|
||||||
elif before and before in self.pipe_names:
|
elif before and before in self.pipe_names:
|
||||||
self.pipeline.insert(self.pipe_names.index(before), pipe)
|
self.pipeline.insert(self.pipe_names.index(before), pipe)
|
||||||
elif after and after in self.pipe_names:
|
elif after and after in self.pipe_names:
|
||||||
self.pipeline.insert(self.pipe_names.index(after), pipe)
|
self.pipeline.insert(self.pipe_names.index(after) + 1, pipe)
|
||||||
else:
|
else:
|
||||||
msg = "Can't find '{}' in pipeline. Available names: {}"
|
msg = "Can't find '{}' in pipeline. Available names: {}"
|
||||||
unfound = before or after
|
unfound = before or after
|
||||||
|
|
|
@ -7,7 +7,6 @@ from ...language import Language
|
||||||
from ...vocab import Vocab
|
from ...vocab import Vocab
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.xfail
|
|
||||||
def test_issue1654():
|
def test_issue1654():
|
||||||
nlp = Language(Vocab())
|
nlp = Language(Vocab())
|
||||||
assert not nlp.pipeline
|
assert not nlp.pipeline
|
||||||
|
@ -15,3 +14,10 @@ def test_issue1654():
|
||||||
nlp.add_pipe(lambda doc: doc, name='2', after='1')
|
nlp.add_pipe(lambda doc: doc, name='2', after='1')
|
||||||
nlp.add_pipe(lambda doc: doc, name='3', after='2')
|
nlp.add_pipe(lambda doc: doc, name='3', after='2')
|
||||||
assert nlp.pipe_names == ['1', '2', '3']
|
assert nlp.pipe_names == ['1', '2', '3']
|
||||||
|
|
||||||
|
nlp2 = Language(Vocab())
|
||||||
|
assert not nlp2.pipeline
|
||||||
|
nlp2.add_pipe(lambda doc: doc, name='3')
|
||||||
|
nlp2.add_pipe(lambda doc: doc, name='2', before='3')
|
||||||
|
nlp2.add_pipe(lambda doc: doc, name='1', before='2')
|
||||||
|
assert nlp2.pipe_names == ['1', '2', '3']
|
||||||
|
|
Loading…
Reference in New Issue