More consistency checks for dependencies#4990
Conversation
| def _strip_dep_version(dependency): | ||
| dep_version_pos = len(dependency) | ||
| for pos, c in enumerate(dependency): | ||
| if c in "=<>": |
There was a problem hiding this comment.
What if there is a semicolon? Example from mypy test-requirements.txt:
flake8-bugbear; python_version >= '3.5'
We check for spaces, but somebody might write something like this:
types-foo;python_version>='3.5'
Maybe use a regexp to validate the version string so that we don't check for bad things but ensure that only expected things exist?
There was a problem hiding this comment.
Again, there should not be semicolons, requires is already a list.
There was a problem hiding this comment.
Sorry, I didn't notice what is in the second part, I think we may not support this initially.
| return stripped, "", "" | ||
| number_pos = 0 | ||
| for pos, c in enumerate(rest): | ||
| if c not in "=<>": |
srittau
left a comment
There was a problem hiding this comment.
LGTM, one wording suggestion below.
tests/check_consistent.py
Outdated
| for space in " \t\n": | ||
| assert space not in dep, f"For consistency dependency should not have whitespace: {dep}" | ||
| stripped, relation, dep_version = _strip_dep_version(dep) | ||
| assert stripped in known_distributions, f"Only known dependencies are supported, got {stripped}" |
There was a problem hiding this comment.
Nit: Maybe "Only dependencies from typeshed are supported, got {stripped}"
|
Opened #4995 as a follow-up from offline discussions. |
Closes #4988