mirror of
https://git.anonymousland.org/anonymousland/synapse.git
synced 2025-05-03 02:54:52 -04:00
Try to detect borked package installations. (#12244)
* Try to detect borked package installations. Fixes #12223. Co-authored-by: Sean Quah <8349537+squahtx@users.noreply.github.com>
This commit is contained in:
parent
8fe930c215
commit
bf9d549e3a
3 changed files with 38 additions and 2 deletions
|
@ -128,6 +128,19 @@ def _incorrect_version(
|
|||
)
|
||||
|
||||
|
||||
def _no_reported_version(requirement: Requirement, extra: Optional[str] = None) -> str:
|
||||
if extra:
|
||||
return (
|
||||
f"Synapse {VERSION} needs {requirement} for {extra}, "
|
||||
f"but can't determine {requirement.name}'s version"
|
||||
)
|
||||
else:
|
||||
return (
|
||||
f"Synapse {VERSION} needs {requirement}, "
|
||||
f"but can't determine {requirement.name}'s version"
|
||||
)
|
||||
|
||||
|
||||
def check_requirements(extra: Optional[str] = None) -> None:
|
||||
"""Check Synapse's dependencies are present and correctly versioned.
|
||||
|
||||
|
@ -163,8 +176,17 @@ def check_requirements(extra: Optional[str] = None) -> None:
|
|||
deps_unfulfilled.append(requirement.name)
|
||||
errors.append(_not_installed(requirement, extra))
|
||||
else:
|
||||
if dist.version is None:
|
||||
# This shouldn't happen---it suggests a borked virtualenv. (See #12223)
|
||||
# Try to give a vaguely helpful error message anyway.
|
||||
# Type-ignore: the annotations don't reflect reality: see
|
||||
# https://github.com/python/typeshed/issues/7513
|
||||
# https://bugs.python.org/issue47060
|
||||
deps_unfulfilled.append(requirement.name) # type: ignore[unreachable]
|
||||
errors.append(_no_reported_version(requirement, extra))
|
||||
|
||||
# We specify prereleases=True to allow prereleases such as RCs.
|
||||
if not requirement.specifier.contains(dist.version, prereleases=True):
|
||||
elif not requirement.specifier.contains(dist.version, prereleases=True):
|
||||
deps_unfulfilled.append(requirement.name)
|
||||
errors.append(_incorrect_version(requirement, dist.version, extra))
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue