Source code for spey.about

"""Function to display details about the spey installation"""

import platform
import sys
from importlib.metadata import distribution, version
from importlib.util import find_spec
from subprocess import check_output


[docs] def about() -> None: """Prints the information regarding spey installation""" print(check_output([sys.executable, "-m", "pip", "show", "spey"]).decode()) print(f"Platform info: {platform.platform(aliased=True)}") print( f"Python version: {sys.version_info[0]}.{sys.version_info[1]}.{sys.version_info[2]}" ) print(f"Numpy version: {version('numpy')}") print(f"Scipy version: {version('scipy')}") if find_spec("iminuit") is not None: print(f"iminuit version: {version('iminuit')}") print(f"Autograd version: {version('autograd')}") print(f"tqdm version: {version('tqdm')}") print(f"semantic_version version: {version('semantic_version')}") print("\nInstalled backend plug-ins:\n") shown = ["spey"] from spey import _get_entry_points plugin_devices = _get_entry_points("spey.backend.plugins") for d in plugin_devices: try: dist_name = d.dist.name dist_version = d.dist.version except AttributeError: dist_name = d.value.split(":")[0].split(".")[0] dist_version = distribution(dist_name).version print(f"- {d.name} ({dist_name}-{dist_version})") if dist_name not in shown: print( check_output( [ sys.executable, "-m", "pip", "show", d.dist.metadata.json["name"], ] ).decode() ) shown.append(d.dist.metadata.json["name"])