Source code for evalml.utils.cli_utils

"""CLI functions."""
import locale
import os
import platform
import struct
import sys

import pkg_resources
import psutil
from psutil._common import bytes2human

import evalml
from evalml.utils import get_logger











# Modified from here
# https://github.com/pandas-dev/pandas/blob/d9a037ec4ad0aab0f5bf2ad18a30554c38299e57/pandas/util/_print_versions.py#L11
[docs]def get_sys_info(): """Returns system information. Returns: List of tuples about system stats. """ blob = [] try: (sysname, nodename, release, version, machine, processor) = platform.uname() blob.extend( [ ("python", ".".join(map(str, sys.version_info))), ("python-bits", struct.calcsize("P") * 8), ("OS", "{sysname}".format(sysname=sysname)), ("OS-release", "{release}".format(release=release)), ("machine", "{machine}".format(machine=machine)), ("processor", "{processor}".format(processor=processor)), ("byteorder", "{byteorder}".format(byteorder=sys.byteorder)), ("LC_ALL", "{lc}".format(lc=os.environ.get("LC_ALL", "None"))), ("LANG", "{lang}".format(lang=os.environ.get("LANG", "None"))), ("LOCALE", ".".join(map(str, locale.getlocale()))), ("# of CPUS", "{cpus}".format(cpus=psutil.cpu_count())), ( "Available memory", "{memory}".format( memory=bytes2human(psutil.virtual_memory().available) ), ), ] ) except (KeyError, ValueError): pass return blob
[docs]def get_installed_packages(): """Get dictionary mapping installed package names to their versions. Returns: Dictionary mapping installed package names to their versions. """ installed_packages = {} for d in pkg_resources.working_set: installed_packages[d.project_name.lower()] = d.version return installed_packages
[docs]def get_evalml_root(): """Gets location where evalml is installed. Returns: Location where evalml is installed. """ return os.path.dirname(evalml.__file__)