mirror of
https://github.com/microsoft/qlib.git
synced 2026-06-06 05:51:17 +08:00
* chore: Align collect_info.py with pyproject.toml * delete version info * chore: align collect_info.py with pyproject.toml
72 lines
1.8 KiB
Python
72 lines
1.8 KiB
Python
import sys
|
|
import platform
|
|
import qlib
|
|
import fire
|
|
import pkg_resources
|
|
from pathlib import Path
|
|
|
|
QLIB_PATH = Path(__file__).absolute().resolve().parent.parent
|
|
|
|
|
|
class InfoCollector:
|
|
"""
|
|
User could collect system info by following commands
|
|
`cd scripts && python collect_info.py all`
|
|
- NOTE: please avoid running this script in the project folder which contains `qlib`
|
|
"""
|
|
|
|
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 = [
|
|
"setuptools",
|
|
"wheel",
|
|
"cython",
|
|
"pyyaml",
|
|
"numpy",
|
|
"pandas",
|
|
"mlflow",
|
|
"filelock",
|
|
"redis",
|
|
"dill",
|
|
"fire",
|
|
"ruamel.yaml",
|
|
"python-redis-lock",
|
|
"tqdm",
|
|
"pymongo",
|
|
"loguru",
|
|
"lightgbm",
|
|
"gym",
|
|
"cvxpy",
|
|
"joblib",
|
|
"matplotlib",
|
|
"jupyter",
|
|
"nbconvert",
|
|
"pyarrow",
|
|
"pydantic-settings",
|
|
"setuptools-scm",
|
|
]
|
|
|
|
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()
|
|
|
|
|
|
if __name__ == "__main__":
|
|
fire.Fire(InfoCollector)
|