Source code for mlresearch.utils._show_versions

"""
Utility method which prints system info to help with debugging,
and filing issues on GitHub.
Adapted from :func:`sklearn.show_versions`,
which was adapted from :func:`pandas.show_versions`
"""

from .. import __version__


def _get_deps_info():
    """Overview of the installed version of main dependencies

    Returns
    -------
    deps_info: dict
        version information on relevant Python libraries
    """
    deps = [
        "pip",
        "setuptools",
        "ml-research",
        "numpy",
        "pandas",
        "scikit-learn",
        "imbalanced-learn",
        "matplotlib",
        "tqdm",
        "Cython",
        "scipy",
        "keras",
        "tensorflow",
        "joblib",
    ]

    deps_info = {
        "ml-research": __version__,
    }

    from importlib.metadata import PackageNotFoundError, version

    for modname in deps:
        try:
            deps_info[modname] = version(modname)
        except PackageNotFoundError:
            deps_info[modname] = None
    return deps_info


[docs] def show_versions(github=False): """Print debugging information. .. versionadded:: 0.4.3 Parameters ---------- github : bool, If true, wrap system info with GitHub markup. """ from sklearn.utils._show_versions import _get_sys_info _sys_info = _get_sys_info() _deps_info = _get_deps_info() _github_markup = ( "<details>" "<summary>System, Dependency Information</summary>\n\n" "**System Information**\n\n" "{0}\n" "**Python Dependencies**\n\n" "{1}\n" "</details>" ) if github: _sys_markup = "" _deps_markup = "" for k, stat in _sys_info.items(): _sys_markup += f"* {k:<16}: `{stat}`\n" for k, stat in _deps_info.items(): _deps_markup += f"* {k:<16}: `{stat}`\n" print(_github_markup.format(_sys_markup, _deps_markup)) else: print("\nSystem:") for k, stat in _sys_info.items(): print(f"{k:>16}: {stat}") print("\nPython dependencies:") for k, stat in _deps_info.items(): print(f"{k:>16}: {stat}")