68 lines
1.5 KiB
Python
68 lines
1.5 KiB
Python
import os
|
|
import platform
|
|
import sys
|
|
from importlib.metadata import PackageNotFoundError, version
|
|
|
|
|
|
def _get_sys_info():
|
|
"""
|
|
Get useful system information.
|
|
|
|
Returns
|
|
-------
|
|
dict
|
|
Useful system information.
|
|
"""
|
|
return {
|
|
"python": sys.version.replace(os.linesep, " "),
|
|
"executable": sys.executable,
|
|
"machine": platform.platform(),
|
|
}
|
|
|
|
|
|
def _get_deps_info():
|
|
"""
|
|
Get the versions of the dependencies.
|
|
|
|
Returns
|
|
-------
|
|
dict
|
|
Versions of the dependencies.
|
|
"""
|
|
deps = ["cobyqa", "numpy", "scipy", "setuptools", "pip"]
|
|
deps_info = {}
|
|
for module in deps:
|
|
try:
|
|
deps_info[module] = version(module)
|
|
except PackageNotFoundError:
|
|
deps_info[module] = None
|
|
return deps_info
|
|
|
|
|
|
def show_versions():
|
|
"""
|
|
Display useful system and dependencies information.
|
|
|
|
When reporting issues, please include this information.
|
|
"""
|
|
print("System settings")
|
|
print("---------------")
|
|
sys_info = _get_sys_info()
|
|
print(
|
|
"\n".join(
|
|
f"{k:>{max(map(len, sys_info.keys())) + 1}}: {v}"
|
|
for k, v in sys_info.items()
|
|
)
|
|
)
|
|
|
|
print()
|
|
print("Python dependencies")
|
|
print("-------------------")
|
|
deps_info = _get_deps_info()
|
|
print(
|
|
"\n".join(
|
|
f"{k:>{max(map(len, deps_info.keys())) + 1}}: {v}"
|
|
for k, v in deps_info.items()
|
|
)
|
|
)
|