From 10bbb01bb67c0a3bacee45d398bc8c1b54be4b9d Mon Sep 17 00:00:00 2001 From: Paul O'Leary McCann Date: Tue, 27 Dec 2022 18:47:24 +0900 Subject: [PATCH] Test use_tok2vec, not use_transformer Adding the transformer component requires spacy-transformers, which isn't present in the normal test env. --- spacy/cli/configure.py | 9 ++++++++- spacy/tests/test_cli.py | 13 +++++++------ 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/spacy/cli/configure.py b/spacy/cli/configure.py index 77d0dfe68..052851b62 100644 --- a/spacy/cli/configure.py +++ b/spacy/cli/configure.py @@ -186,7 +186,14 @@ def use_transformer( "name": transformer_name, } } - trf = nlp.add_pipe("transformer", config=trf_config, first=True) + try: + trf = nlp.add_pipe("transformer", config=trf_config, first=True) + except ValueError: + fail_msg = ( + "Configuring a transformer requires spacy-transformers. " + "Install with: pip install spacy-transformers" + ) + msg.fail(fail_msg, exits=1) # TODO maybe remove vectors? diff --git a/spacy/tests/test_cli.py b/spacy/tests/test_cli.py index 3efd5b76c..627c59b1e 100644 --- a/spacy/tests/test_cli.py +++ b/spacy/tests/test_cli.py @@ -20,7 +20,7 @@ from spacy.cli._util import parse_config_overrides, string_to_list from spacy.cli._util import substitute_project_variables from spacy.cli._util import validate_project_commands from spacy.cli._util import upload_file, download_file -from spacy.cli.configure import configure_resume_cli, use_transformer +from spacy.cli.configure import configure_resume_cli, use_tok2vec from spacy.cli.debug_data import _compile_gold, _get_labels_from_model from spacy.cli.debug_data import _get_labels_from_spancat from spacy.cli.debug_data import _get_distribution, _get_kl_divergence @@ -1204,14 +1204,15 @@ def test_configure_resume(tmp_path): assert "source" in val, f"Non-sourced component: {comp}" -def test_use_transformer(tmp_path): +def test_use_tok2vec(tmp_path): + # Can't add a transformer here because spacy-transformers might not be present nlp = spacy.blank("en") nlp.add_pipe("tok2vec") - base_path = tmp_path / "tok2vec_sample" + base_path = tmp_path / "tok2vec_sample_2" nlp.to_disk(base_path) - out_path = tmp_path / "converted_to_trf" - conf = use_transformer(base_path, out_path) + out_path = tmp_path / "converted_to_tok2vec" + conf = use_tok2vec(base_path, out_path) assert out_path.exists(), "No model saved" - assert "transformer" in conf["components"], "No transformer component" + assert "tok2vec" in conf["components"], "No tok2vec component"