some new features
This commit is contained in:
@ -0,0 +1,103 @@
|
||||
"""
|
||||
Utility methods to print system info for debugging
|
||||
|
||||
adapted from ``pandas.show_versions``
|
||||
adapted from ``sklearn.show_versions``
|
||||
"""
|
||||
# License: BSD 3 clause
|
||||
|
||||
import platform
|
||||
import sys
|
||||
|
||||
_pmdarima_deps = (
|
||||
# setuptools needs to be before pip: https://github.com/pypa/setuptools/issues/3044#issuecomment-1024972548 # noqa:E501
|
||||
"setuptools",
|
||||
"pip",
|
||||
"sklearn",
|
||||
"statsmodels",
|
||||
"numpy",
|
||||
"scipy",
|
||||
"Cython",
|
||||
"pandas",
|
||||
"joblib",
|
||||
"pmdarima",
|
||||
)
|
||||
|
||||
# Packages that have a different import name than name on PyPI
|
||||
_install_mapping = {
|
||||
"sklearn": "scikit-learn"
|
||||
}
|
||||
|
||||
|
||||
def _get_sys_info():
|
||||
"""System information
|
||||
|
||||
Return
|
||||
------
|
||||
sys_info : dict
|
||||
system and Python version information
|
||||
|
||||
"""
|
||||
python = sys.version.replace('\n', ' ')
|
||||
|
||||
blob = [
|
||||
("python", python),
|
||||
('executable', sys.executable),
|
||||
("machine", platform.platform()),
|
||||
]
|
||||
|
||||
return dict(blob)
|
||||
|
||||
|
||||
def _get_deps_info(deps=_pmdarima_deps):
|
||||
"""Overview of the installed version of main dependencies
|
||||
|
||||
Returns
|
||||
-------
|
||||
deps_info: dict
|
||||
version information on relevant Python libraries
|
||||
"""
|
||||
def get_version(module):
|
||||
return module.__version__
|
||||
|
||||
deps_info = {}
|
||||
|
||||
# TODO: We can get rid of this when we deprecate 3.7
|
||||
if sys.version_info.minor <= 7:
|
||||
import importlib
|
||||
|
||||
for modname in deps:
|
||||
try:
|
||||
if modname in sys.modules:
|
||||
mod = sys.modules[modname]
|
||||
else:
|
||||
mod = importlib.import_module(modname)
|
||||
ver = get_version(mod)
|
||||
deps_info[modname] = ver
|
||||
except ImportError:
|
||||
deps_info[modname] = None
|
||||
|
||||
else:
|
||||
from importlib.metadata import PackageNotFoundError, version
|
||||
|
||||
for modname in deps:
|
||||
try:
|
||||
deps_info[modname] = version(_install_mapping.get(modname, modname)) # noqa:E501
|
||||
except PackageNotFoundError:
|
||||
deps_info[modname] = None
|
||||
|
||||
return deps_info
|
||||
|
||||
|
||||
def show_versions():
|
||||
"""Print useful debugging information"""
|
||||
sys_info = _get_sys_info()
|
||||
deps_info = _get_deps_info()
|
||||
|
||||
print('\nSystem:')
|
||||
for k, stat in sys_info.items():
|
||||
print("{k:>10}: {stat}".format(k=k, stat=stat))
|
||||
|
||||
print('\nPython dependencies:')
|
||||
for k, stat in deps_info.items():
|
||||
print("{k:>11}: {stat}".format(k=k, stat=stat))
|
||||
Reference in New Issue
Block a user