mirror of
https://github.com/explosion/spaCy.git
synced 2025-01-12 18:26:30 +03:00
Update warning, add tests for project requirements check (#11777)
* Update warning, add tests for project requirements check * Make warning more general for differences between PEP 508 and pip * Add tests for _check_requirements * Parameterize test
This commit is contained in:
parent
20bbbe3e44
commit
03eebe9d1c
|
@ -344,9 +344,8 @@ def _check_requirements(requirements: List[str]) -> Tuple[bool, bool]:
|
||||||
conflicting_pkgs_msgs.append(vc.report())
|
conflicting_pkgs_msgs.append(vc.report())
|
||||||
except Exception:
|
except Exception:
|
||||||
msg.warn(f"Unable to check requirement: {req} "
|
msg.warn(f"Unable to check requirement: {req} "
|
||||||
"Check that the requirement is formatted according to PEP "
|
"Checks are currently limited to requirement specifiers "
|
||||||
"440, in particular that URLs are formatted as "
|
"(PEP 508)")
|
||||||
"'package_name @ URL'")
|
|
||||||
|
|
||||||
if len(failed_pkgs_msgs) or len(conflicting_pkgs_msgs):
|
if len(failed_pkgs_msgs) or len(conflicting_pkgs_msgs):
|
||||||
msg.warn(
|
msg.warn(
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
import os
|
import os
|
||||||
import math
|
import math
|
||||||
|
import pkg_resources
|
||||||
from random import sample
|
from random import sample
|
||||||
from typing import Counter
|
from typing import Counter
|
||||||
|
|
||||||
|
@ -25,6 +26,7 @@ from spacy.cli.download import get_compatibility, get_version
|
||||||
from spacy.cli.init_config import RECOMMENDATIONS, init_config, fill_config
|
from spacy.cli.init_config import RECOMMENDATIONS, init_config, fill_config
|
||||||
from spacy.cli.package import get_third_party_dependencies
|
from spacy.cli.package import get_third_party_dependencies
|
||||||
from spacy.cli.package import _is_permitted_package_name
|
from spacy.cli.package import _is_permitted_package_name
|
||||||
|
from spacy.cli.project.run import _check_requirements
|
||||||
from spacy.cli.validate import get_model_pkgs
|
from spacy.cli.validate import get_model_pkgs
|
||||||
from spacy.lang.en import English
|
from spacy.lang.en import English
|
||||||
from spacy.lang.nl import Dutch
|
from spacy.lang.nl import Dutch
|
||||||
|
@ -855,3 +857,42 @@ def test_span_length_freq_dist_output_must_be_correct():
|
||||||
span_freqs = _get_spans_length_freq_dist(sample_span_lengths, threshold)
|
span_freqs = _get_spans_length_freq_dist(sample_span_lengths, threshold)
|
||||||
assert sum(span_freqs.values()) >= threshold
|
assert sum(span_freqs.values()) >= threshold
|
||||||
assert list(span_freqs.keys()) == [3, 1, 4, 5, 2]
|
assert list(span_freqs.keys()) == [3, 1, 4, 5, 2]
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.parametrize(
|
||||||
|
"reqs,output",
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"""
|
||||||
|
spacy
|
||||||
|
|
||||||
|
# comment
|
||||||
|
|
||||||
|
thinc""",
|
||||||
|
(False, False),
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"""# comment
|
||||||
|
--some-flag
|
||||||
|
spacy""",
|
||||||
|
(False, False),
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"""# comment
|
||||||
|
--some-flag
|
||||||
|
spacy; python_version >= '3.6'""",
|
||||||
|
(False, False),
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"""# comment
|
||||||
|
spacyunknowndoesnotexist12345""",
|
||||||
|
(True, False),
|
||||||
|
],
|
||||||
|
],
|
||||||
|
)
|
||||||
|
def test_project_check_requirements(reqs, output):
|
||||||
|
# excessive guard against unlikely package name
|
||||||
|
try:
|
||||||
|
pkg_resources.require("spacyunknowndoesnotexist12345")
|
||||||
|
except pkg_resources.DistributionNotFound:
|
||||||
|
assert output == _check_requirements([req.strip() for req in reqs.split("\n")])
|
||||||
|
|
Loading…
Reference in New Issue
Block a user