From aefbf3b5f147b8c8d31c9d520e373bc373e03a7e Mon Sep 17 00:00:00 2001 From: Young Date: Tue, 15 Dec 2020 13:24:29 +0000 Subject: [PATCH] update collect info --- scripts/collect_info.py | 84 ++++++++++++++++++++++++++++++----------- 1 file changed, 61 insertions(+), 23 deletions(-) diff --git a/scripts/collect_info.py b/scripts/collect_info.py index c9a9440b9..ba53deb30 100644 --- a/scripts/collect_info.py +++ b/scripts/collect_info.py @@ -1,28 +1,66 @@ -import sys, platform +import sys +import platform import qlib +import fire +import pkg_resources +from pathlib import Path + +QLIB_PATH = Path(__file__).absolute().resolve().parent.parent -def linux_distribution(): - try: - return platform.linux_distribution() - except: - return "N/A" +class InfoCollector: + def sys(self): + """collect system related info""" + for method in ["system", "machine", "platform", "version"]: + print(getattr(platform, method)()) + + def py(self): + """collect Python related info""" + print("Python version: {}".format(sys.version.replace("\n", " "))) + + def qlib(self): + """collect qlib related info""" + print("Qlib version: {}".format(qlib.__version__)) + REQUIRED = [ + "numpy", + "pandas", + "scipy", + "requests", + "sacred", + "pymongo", + "python-socketio", + "redis", + "python-redis-lock", + "schedule", + "cvxpy", + "hyperopt", + "fire", + "statsmodels", + "xlrd", + "plotly", + "matplotlib", + "tables", + "pyyaml", + "mlflow", + "tqdm", + "loguru", + "lightgbm", + "tornado", + "joblib", + "fire", + "ruamel.yaml", + ] + + for package in REQUIRED: + version = pkg_resources.get_distribution(package).version + print(f"{package}=={version}") + + def all(self): + """collect all info""" + for method in ["sys", "py", "qlib"]: + getattr(self, method)() + print() -print("Qlib version: {} \n".format(qlib.__version__)) -print( - """Python version: {} \n -linux_distribution: {} -system: {} -machine: {} -platform: {} -version: {} -""".format( - sys.version.split("\n"), - linux_distribution(), - platform.system(), - platform.machine(), - platform.platform(), - platform.version(), - ) -) +if __name__ == "__main__": + fire.Fire(InfoCollector)