mirror of
https://git.anonymousland.org/anonymousland/synapse.git
synced 2024-12-27 22:09:25 -05:00
Print an example "pip install" line for a missing requirement
This commit is contained in:
parent
236245f7d8
commit
3cdfd37d95
@ -16,10 +16,23 @@
|
|||||||
|
|
||||||
import sys
|
import sys
|
||||||
sys.dont_write_bytecode = True
|
sys.dont_write_bytecode = True
|
||||||
from synapse.python_dependencies import check_requirements, DEPENDENCY_LINKS
|
from synapse.python_dependencies import (
|
||||||
|
check_requirements, DEPENDENCY_LINKS, MissingRequirementError
|
||||||
|
)
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
|
try:
|
||||||
check_requirements()
|
check_requirements()
|
||||||
|
except MissingRequirementError as e:
|
||||||
|
message = "\n".join([
|
||||||
|
"Missing Requirement: %s" % (e.message,),
|
||||||
|
"To install run:",
|
||||||
|
" pip install --upgrade --force \"%s\"" % (e.dependency,),
|
||||||
|
"",
|
||||||
|
])
|
||||||
|
sys.stderr.writelines(message)
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
|
||||||
from synapse.storage.engines import create_engine, IncorrectDatabaseSetup
|
from synapse.storage.engines import create_engine, IncorrectDatabaseSetup
|
||||||
from synapse.storage import (
|
from synapse.storage import (
|
||||||
|
@ -60,7 +60,10 @@ DEPENDENCY_LINKS = {
|
|||||||
|
|
||||||
|
|
||||||
class MissingRequirementError(Exception):
|
class MissingRequirementError(Exception):
|
||||||
pass
|
def __init__(self, message, module_name, dependency):
|
||||||
|
super(MissingRequirementError, self).__init__(message)
|
||||||
|
self.module_name = module_name
|
||||||
|
self.dependency = dependency
|
||||||
|
|
||||||
|
|
||||||
def check_requirements(config=None):
|
def check_requirements(config=None):
|
||||||
@ -88,7 +91,7 @@ def check_requirements(config=None):
|
|||||||
)
|
)
|
||||||
raise MissingRequirementError(
|
raise MissingRequirementError(
|
||||||
"Can't import %r which is part of %r"
|
"Can't import %r which is part of %r"
|
||||||
% (module_name, dependency)
|
% (module_name, dependency), module_name, dependency
|
||||||
)
|
)
|
||||||
version = getattr(module, "__version__", None)
|
version = getattr(module, "__version__", None)
|
||||||
file_path = getattr(module, "__file__", None)
|
file_path = getattr(module, "__file__", None)
|
||||||
@ -101,23 +104,25 @@ def check_requirements(config=None):
|
|||||||
if version is None:
|
if version is None:
|
||||||
raise MissingRequirementError(
|
raise MissingRequirementError(
|
||||||
"Version of %r isn't set as __version__ of module %r"
|
"Version of %r isn't set as __version__ of module %r"
|
||||||
% (dependency, module_name)
|
% (dependency, module_name), module_name, dependency
|
||||||
)
|
)
|
||||||
if LooseVersion(version) < LooseVersion(required_version):
|
if LooseVersion(version) < LooseVersion(required_version):
|
||||||
raise MissingRequirementError(
|
raise MissingRequirementError(
|
||||||
"Version of %r in %r is too old. %r < %r"
|
"Version of %r in %r is too old. %r < %r"
|
||||||
% (dependency, file_path, version, required_version)
|
% (dependency, file_path, version, required_version),
|
||||||
|
module_name, dependency
|
||||||
)
|
)
|
||||||
elif version_test == "==":
|
elif version_test == "==":
|
||||||
if version is None:
|
if version is None:
|
||||||
raise MissingRequirementError(
|
raise MissingRequirementError(
|
||||||
"Version of %r isn't set as __version__ of module %r"
|
"Version of %r isn't set as __version__ of module %r"
|
||||||
% (dependency, module_name)
|
% (dependency, module_name), module_name, dependency
|
||||||
)
|
)
|
||||||
if LooseVersion(version) != LooseVersion(required_version):
|
if LooseVersion(version) != LooseVersion(required_version):
|
||||||
raise MissingRequirementError(
|
raise MissingRequirementError(
|
||||||
"Unexpected version of %r in %r. %r != %r"
|
"Unexpected version of %r in %r. %r != %r"
|
||||||
% (dependency, file_path, version, required_version)
|
% (dependency, file_path, version, required_version),
|
||||||
|
module_name, dependency
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user