def get_glxinfo(self): """Return a GlxInfo instance if the gfxinfo tool is available""" if not self.get("glxinfo"): return _glxinfo = glxinfo.GlxInfo() if not hasattr(_glxinfo, "display"): logger.warning("Invalid glxinfo received") return return _glxinfo
def gather_system_info(): """Get all system information in a single data structure""" system_info = {} if drivers.is_nvidia(): system_info["nvidia_driver"] = drivers.get_nvidia_driver_info() system_info["nvidia_gpus"] = [drivers.get_nvidia_gpu_info(gpu_id) for gpu_id in drivers.get_nvidia_gpu_ids()] system_info["gpus"] = [drivers.get_gpu_info(gpu) for gpu in drivers.get_gpus()] system_info["env"] = dict(os.environ) system_info["missing_libs"] = LINUX_SYSTEM.get_missing_libs() system_info["cpus"] = LINUX_SYSTEM.get_cpus() system_info["drives"] = LINUX_SYSTEM.get_drives() system_info["ram"] = LINUX_SYSTEM.get_ram_info() system_info["dist"] = LINUX_SYSTEM.get_dist_info() system_info["arch"] = LINUX_SYSTEM.get_arch() system_info["kernel"] = LINUX_SYSTEM.get_kernel_version() system_info["glxinfo"] = glxinfo.GlxInfo().as_dict() return system_info
def __init__(self): for key in ("COMMANDS", "TERMINALS"): self._cache[key] = {} for command in SYSTEM_COMPONENTS[key]: command_path = shutil.which(command) if not command_path: command_path = self.get_sbin_path(command) if command_path: self._cache[key][command] = command_path # Detect if system is 64bit capable self.is_64_bit = sys.maxsize > 2**32 self.arch = self.get_arch() self.populate_libraries() self.populate_sound_fonts() self.soft_limit, self.hard_limit = self.get_file_limits() if self.get("glxinfo"): self.glxinfo = glxinfo.GlxInfo() if not hasattr(self.glxinfo, "display"): self.glxinfo = None