diff --git a/auto_cpufreq/core.py b/auto_cpufreq/core.py index a685db8..83d0d64 100644 --- a/auto_cpufreq/core.py +++ b/auto_cpufreq/core.py @@ -13,7 +13,6 @@ import click import warnings from math import isclose from pathlib import Path -from pprint import pformat from subprocess import getoutput, call, run, check_output, DEVNULL @@ -26,7 +25,14 @@ warnings.filterwarnings("ignore") SCRIPTS_DIR = Path("/usr/local/share/auto-cpufreq/scripts/") # from the highest performance to the lowest -ALL_GOVERNORS = ("performance", "ondemand", "conservative", "schedutil", "userspace", "powersave") +ALL_GOVERNORS = ( + "performance", + "ondemand", + "conservative", + "schedutil", + "userspace", + "powersave", +) CPUS = os.cpu_count() # Note: @@ -34,8 +40,8 @@ CPUS = os.cpu_count() # decraled where their execution takes place # powersave/performance system load thresholds -powersave_load_threshold = (75*CPUS)/100 -performance_load_threshold = (50*CPUS)/100 +powersave_load_threshold = (75 * CPUS) / 100 +performance_load_threshold = (50 * CPUS) / 100 # auto-cpufreq stats file path auto_cpufreq_stats_path = None @@ -49,41 +55,53 @@ else: # daemon check dcheck = getoutput("snapctl get daemon") + def file_stats(): global auto_cpufreq_stats_file auto_cpufreq_stats_file = open(auto_cpufreq_stats_path, "w") sys.stdout = auto_cpufreq_stats_file + # get distro name dist_name = distro.id() + # display running version of auto-cpufreq def app_version(): print("auto-cpufreq version:") # snap package - if os.getenv('PKG_MARKER') == "SNAP": + if os.getenv("PKG_MARKER") == "SNAP": print(getoutput("echo Snap: $SNAP_VERSION")) # aur package elif dist_name in ["arch", "manjaro", "garuda"]: aur_pkg_check = call("pacman -Qs auto-cpufreq > /dev/null", shell=True) if aur_pkg_check == 1: - print("Git commit:", check_output(["git", "describe", "--always"]).strip().decode()) + print( + "Git commit:", + check_output(["git", "describe", "--always"]).strip().decode(), + ) else: print(getoutput("pacman -Qi auto-cpufreq | grep Version")) - else: + else: # source code (auto-cpufreq-installer) try: - print("Git commit:", check_output(["git", "describe", "--always"]).strip().decode()) - except: + print( + "Git commit:", + check_output(["git", "describe", "--always"]).strip().decode(), + ) + except Exception as e: + print(repr(e)) pass + def app_res_use(): p = psutil.Process() print("auto-cpufreq system resource consumption:") print("cpu usage:", p.cpu_percent(), "%") - print("memory use:", round(p.memory_percent(),2), "%") + print("memory use:", round(p.memory_percent(), 2), "%") + # set/change state of turbo def turbo(value: bool = None): @@ -119,7 +137,8 @@ def turbo(value: bool = None): return value - # display current state of turbo + +# display current state of turbo def get_turbo(): if turbo(): @@ -127,23 +146,24 @@ def get_turbo(): else: print("Currently turbo boost is: off") + def charging(): """ get charge state: is battery charging or discharging """ power_dir = "/sys/class/power_supply/" - computer_type = getoutput('dmidecode --string chassis-type') - if computer_type in [ "Notebook", "Laptop", "Convertible", "Portable" ]: + computer_type = getoutput("dmidecode --string chassis-type") + if computer_type in ["Notebook", "Laptop", "Convertible", "Portable"]: # AC adapter states: 0, 1, unknown ac_info = getoutput(f"grep . {power_dir}A*/online").splitlines() # if there's one ac-adapter on-line, ac_state is True - ac_state = any(['1' in ac.split(':')[-1] for ac in ac_info]) + ac_state = any(["1" in ac.split(":")[-1] for ac in ac_info]) else: has_battery = psutil.sensors_battery() is not None - if has_battery == True: + if has_battery: power_pluggedin = psutil.sensors_battery().power_plugged - if power_pluggedin == True: + if power_pluggedin: ac_state = True else: ac_state = False @@ -176,7 +196,12 @@ def get_avail_performance(): def get_current_gov(): - return print("Currently using:", getoutput("cpufreqctl.auto-cpufreq --governor").strip().split(" ")[0], "governor") + return print( + "Currently using:", + getoutput("cpufreqctl.auto-cpufreq --governor").strip().split(" ")[0], + "governor", + ) + def cpufreqctl(): """ @@ -184,14 +209,18 @@ def cpufreqctl(): """ # detect if running on a SNAP - if os.getenv('PKG_MARKER') == "SNAP": + if os.getenv("PKG_MARKER") == "SNAP": pass else: # deploy cpufreqctl.auto-cpufreq script if os.path.isfile("/usr/bin/cpufreqctl"): - shutil.copy(SCRIPTS_DIR / "cpufreqctl.sh", "/usr/bin/cpufreqctl.auto-cpufreq") + shutil.copy( + SCRIPTS_DIR / "cpufreqctl.sh", "/usr/bin/cpufreqctl.auto-cpufreq" + ) else: - shutil.copy(SCRIPTS_DIR / "cpufreqctl.sh", "/usr/bin/cpufreqctl.auto-cpufreq") + shutil.copy( + SCRIPTS_DIR / "cpufreqctl.sh", "/usr/bin/cpufreqctl.auto-cpufreq" + ) def cpufreqctl_restore(): @@ -199,39 +228,53 @@ def cpufreqctl_restore(): remove cpufreqctl.auto-cpufreq script """ # detect if running on a SNAP - if os.getenv('PKG_MARKER') == "SNAP": + if os.getenv("PKG_MARKER") == "SNAP": pass else: if os.path.isfile("/usr/bin/cpufreqctl.auto-cpufreq"): os.remove("/usr/bin/cpufreqctl.auto-cpufreq") + def footer(l=79): print("\n" + "-" * l + "\n") def daemon_not_found(): print("\n" + "-" * 32 + " Daemon check " + "-" * 33 + "\n") - print("ERROR:\n\nDaemon not enabled, must run install first, i.e: \nsudo auto-cpufreq --install") + print( + "ERROR:\n\nDaemon not enabled, must run install first, i.e: \nsudo auto-cpufreq --install" + ) footer() def deploy_complete_msg(): - print("\n" + "-" * 17 + " auto-cpufreq daemon installed and running " + "-" * 17 + "\n") + print( + "\n" + + "-" * 17 + + " auto-cpufreq daemon installed and running " + + "-" * 17 + + "\n" + ) print("To view live stats, run:\nauto-cpufreq --stats") - print("\nTo disable and remove auto-cpufreq daemon, run:\nsudo auto-cpufreq --remove") + print( + "\nTo disable and remove auto-cpufreq daemon, run:\nsudo auto-cpufreq --remove" + ) footer() + def deprecated_log_msg(): print("\n" + "-" * 24 + " auto-cpufreq log file renamed " + "-" * 24 + "\n") print("The --log flag has been renamed to --stats\n") print("To view live stats, run:\nauto-cpufreq --stats") footer() + def remove_complete_msg(): print("\n" + "-" * 25 + " auto-cpufreq daemon removed " + "-" * 25 + "\n") print("auto-cpufreq successfully removed.") footer() + def deploy_daemon(): print("\n" + "-" * 21 + " Deploying auto-cpufreq as a daemon " + "-" * 22 + "\n") @@ -248,13 +291,15 @@ def deploy_daemon(): f.seek(0) f.truncate() f.write(content.replace(orig_set, change_set)) - except: - print("\nERROR:\nWas unable to turn off bluetooth on boot") + except Exception as e: + print(f"\nERROR:\nWas unable to turn off bluetooth on boot\n{repr(e)}") auto_cpufreq_stats_path.touch(exist_ok=True) print("\n* Deploy auto-cpufreq install script") - shutil.copy(SCRIPTS_DIR / "auto-cpufreq-install.sh", "/usr/bin/auto-cpufreq-install") + shutil.copy( + SCRIPTS_DIR / "auto-cpufreq-install.sh", "/usr/bin/auto-cpufreq-install" + ) print("\n* Deploy auto-cpufreq remove script") shutil.copy(SCRIPTS_DIR / "auto-cpufreq-remove.sh", "/usr/bin/auto-cpufreq-remove") @@ -282,8 +327,8 @@ def remove(): f.seek(0) f.truncate() f.write(content.replace(change_set, orig_set)) - except: - print("\nERROR:\nWas unable to turn on bluetooth on boot") + except Exception as e: + print(f"\nERROR:\nWas unable to turn on bluetooth on boot\n{repr(e)}") # run auto-cpufreq daemon install script call("/usr/bin/auto-cpufreq-remove", shell=True) @@ -305,35 +350,47 @@ def remove(): def gov_check(): for gov in get_avail_gov(): if gov not in ALL_GOVERNORS: - print("\n" + "-" * 18 + " Checking for necessary scaling governors " + "-" * 19 + "\n") - sys.exit("ERROR:\n\nCouldn't find any of the necessary scaling governors.\n") + print( + "\n" + + "-" * 18 + + " Checking for necessary scaling governors " + + "-" * 19 + + "\n" + ) + sys.exit( + "ERROR:\n\nCouldn't find any of the necessary scaling governors.\n" + ) # root check func def root_check(): if not os.geteuid() == 0: print("\n" + "-" * 33 + " Root check " + "-" * 34 + "\n") - print("ERROR:\n\nMust be run root for this functionality to work, i.e: \nsudo auto-cpufreq") + print( + "ERROR:\n\nMust be run root for this functionality to work, i.e: \nsudo auto-cpufreq" + ) footer() exit(1) + # refresh countdown def countdown(s): # Fix for wrong stats output and "TERM environment variable not set" - os.environ['TERM'] = 'xterm' + os.environ["TERM"] = "xterm" for remaining in range(s, 0, -1): sys.stdout.write("\r") - sys.stdout.write("\t\t\t\"auto-cpufreq\" refresh in:{:2d}".format(remaining)) + sys.stdout.write('\t\t\t"auto-cpufreq" refresh in:{:2d}'.format(remaining)) sys.stdout.flush() time.sleep(1) if auto_cpufreq_stats_file is not None: auto_cpufreq_stats_file.seek(0) auto_cpufreq_stats_file.truncate(0) - + # execution timestamp from datetime import datetime + now = datetime.now() current_time = now.strftime("%B %d (%A) - %H:%M:%S") print("\n\t\tExecuted on:", current_time) @@ -341,6 +398,7 @@ def countdown(s): else: run("clear") + # get cpu usage + system load for (last minute) def display_load(): @@ -354,13 +412,20 @@ def display_load(): print("Total system load:", load1m) print("Average temp. of all cores:", avg_all_core_temp, "°C", "\n") + # set powersave and enable turbo def set_powersave(): - print(f"Setting to use: \"{get_avail_powersave()}\" governor") + print(f'Setting to use: "{get_avail_powersave()}" governor') run(f"cpufreqctl.auto-cpufreq --governor --set={get_avail_powersave()}", shell=True) - if Path("/sys/devices/system/cpu/cpu0/cpufreq/energy_performance_preference").exists() and Path("/sys/devices/system/cpu/intel_pstate/hwp_dynamic_boost").exists() == False: + if ( + Path( + "/sys/devices/system/cpu/cpu0/cpufreq/energy_performance_preference" + ).exists() + and Path("/sys/devices/system/cpu/intel_pstate/hwp_dynamic_boost").exists() + is False + ): run("cpufreqctl.auto-cpufreq --epp --set=balance_power", shell=True) - print("Setting to use: \"balance_power\" EPP") + print('Setting to use: "balance_power" EPP') # get CPU utilization as a percentage cpuload = psutil.cpu_percent(interval=1) @@ -373,7 +438,9 @@ def set_powersave(): print("Average temp. of all cores:", avg_all_core_temp, "°C") # conditions for setting turbo in powersave - if psutil.cpu_percent(percpu=False, interval=0.01) >= 30.0 or isclose(max(psutil.cpu_percent(percpu=True, interval=0.01)), 100): + if psutil.cpu_percent(percpu=False, interval=0.01) >= 30.0 or isclose( + max(psutil.cpu_percent(percpu=True, interval=0.01)), 100 + ): print("\nHigh CPU load") # high cpu usage trigger @@ -383,7 +450,13 @@ def set_powersave(): # set turbo state based on average of all core temperatures elif cpuload <= 20 and avg_all_core_temp >= 70: - print("Optimal total CPU usage:", cpuload, "%, high average core temp:", avg_all_core_temp, "°C") + print( + "Optimal total CPU usage:", + cpuload, + "%, high average core temp:", + avg_all_core_temp, + "°C", + ) print("setting turbo boost: off") turbo(False) else: @@ -400,7 +473,13 @@ def set_powersave(): # set turbo state based on average of all core temperatures elif cpuload <= 20 and avg_all_core_temp >= 65: - print("Optimal total CPU usage:", cpuload, "%, high average core temp:", avg_all_core_temp, "°C") + print( + "Optimal total CPU usage:", + cpuload, + "%, high average core temp:", + avg_all_core_temp, + "°C", + ) print("setting turbo boost: off") turbo(False) else: @@ -417,7 +496,13 @@ def set_powersave(): # set turbo state based on average of all core temperatures elif cpuload <= 20 and avg_all_core_temp >= 60: - print("Optimal total CPU usage:", cpuload, "%, high average core temp:", avg_all_core_temp, "°C") + print( + "Optimal total CPU usage:", + cpuload, + "%, high average core temp:", + avg_all_core_temp, + "°C", + ) print("setting turbo boost: off") turbo(False) else: @@ -440,7 +525,9 @@ def mon_powersave(): print("Total system load:", load1m) print("Average temp. of all cores:", avg_all_core_temp, "°C") - if psutil.cpu_percent(percpu=False, interval=0.01) >= 30.0 or isclose(max(psutil.cpu_percent(percpu=True, interval=0.01)), 100): + if psutil.cpu_percent(percpu=False, interval=0.01) >= 30.0 or isclose( + max(psutil.cpu_percent(percpu=True, interval=0.01)), 100 + ): print("\nHigh CPU load") # high cpu usage trigger @@ -450,7 +537,13 @@ def mon_powersave(): # set turbo state based on average of all core temperatures elif cpuload <= 20 and avg_all_core_temp >= 70: - print("Optimal total CPU usage:", cpuload, "%, high average core temp:", avg_all_core_temp, "°C") + print( + "Optimal total CPU usage:", + cpuload, + "%, high average core temp:", + avg_all_core_temp, + "°C", + ) print("suggesting to set turbo boost: off") get_turbo() else: @@ -467,7 +560,13 @@ def mon_powersave(): # set turbo state based on average of all core temperatures elif cpuload <= 20 and avg_all_core_temp >= 65: - print("Optimal total CPU usage:", cpuload, "%, high average core temp:", avg_all_core_temp, "°C") + print( + "Optimal total CPU usage:", + cpuload, + "%, high average core temp:", + avg_all_core_temp, + "°C", + ) print("suggesting to set turbo boost: off") get_turbo() else: @@ -484,7 +583,13 @@ def mon_powersave(): # set turbo state based on average of all core temperatures elif cpuload <= 20 and avg_all_core_temp >= 60: - print("Optimal total CPU usage:", cpuload, "%, high average core temp:", avg_all_core_temp, "°C") + print( + "Optimal total CPU usage:", + cpuload, + "%, high average core temp:", + avg_all_core_temp, + "°C", + ) print("suggesting to set turbo boost: off") get_turbo() else: @@ -493,14 +598,24 @@ def mon_powersave(): footer() + # set performance and enable turbo def set_performance(): - print(f"Setting to use: \"{get_avail_performance()}\" governor") - run(f"cpufreqctl.auto-cpufreq --governor --set={get_avail_performance()}", shell=True) - if Path("/sys/devices/system/cpu/cpu0/cpufreq/energy_performance_preference").exists() and Path("/sys/devices/system/cpu/intel_pstate/hwp_dynamic_boost").exists() == False: + print(f'Setting to use: "{get_avail_performance()}" governor') + run( + f"cpufreqctl.auto-cpufreq --governor --set={get_avail_performance()}", + shell=True, + ) + if ( + Path( + "/sys/devices/system/cpu/cpu0/cpufreq/energy_performance_preference" + ).exists() + and Path("/sys/devices/system/cpu/intel_pstate/hwp_dynamic_boost").exists() + is False + ): run("cpufreqctl.auto-cpufreq --epp --set=balance_performance", shell=True) - print("Setting to use: \"balance_performance\" EPP") + print('Setting to use: "balance_performance" EPP') # get CPU utilization as a percentage cpuload = psutil.cpu_percent(interval=1) @@ -512,7 +627,10 @@ def set_performance(): print("Total system load:", load1m) print("Average temp. of all cores:", avg_all_core_temp, "°C") - if psutil.cpu_percent(percpu=False, interval=0.01) >= 20.0 or max(psutil.cpu_percent(percpu=True, interval=0.01)) >= 75: + if ( + psutil.cpu_percent(percpu=False, interval=0.01) >= 20.0 + or max(psutil.cpu_percent(percpu=True, interval=0.01)) >= 75 + ): print("\nHigh CPU load") # high cpu usage trigger @@ -522,7 +640,13 @@ def set_performance(): # set turbo state based on average of all core temperatures elif cpuload <= 25 and avg_all_core_temp >= 70: - print("Optimal total CPU usage:", cpuload, "%, high average core temp:", avg_all_core_temp, "°C") + print( + "Optimal total CPU usage:", + cpuload, + "%, high average core temp:", + avg_all_core_temp, + "°C", + ) print("setting turbo boost: off") turbo(False) else: @@ -539,7 +663,13 @@ def set_performance(): # set turbo state based on average of all core temperatures elif cpuload <= 25 and avg_all_core_temp >= 65: - print("Optimal total CPU usage:", cpuload, "%, high average core temp:", avg_all_core_temp, "°C") + print( + "Optimal total CPU usage:", + cpuload, + "%, high average core temp:", + avg_all_core_temp, + "°C", + ) print("setting turbo boost: off") turbo(False) else: @@ -556,12 +686,18 @@ def set_performance(): # set turbo state based on average of all core temperatures elif cpuload <= 25 and avg_all_core_temp >= 60: - print("Optimal total CPU usage:", cpuload, "%, high average core temp:", avg_all_core_temp, "°C") + print( + "Optimal total CPU usage:", + cpuload, + "%, high average core temp:", + avg_all_core_temp, + "°C", + ) print("setting turbo boost: off") turbo(False) else: - print("setting turbo boost: on") - turbo(True) + print("setting turbo boost: off") + turbo(False) footer() @@ -582,7 +718,10 @@ def mon_performance(): # get system/CPU load load1m, _, _ = os.getloadavg() - if psutil.cpu_percent(percpu=False, interval=0.01) >= 20.0 or max(psutil.cpu_percent(percpu=True, interval=0.01)) >= 75: + if ( + psutil.cpu_percent(percpu=False, interval=0.01) >= 20.0 + or max(psutil.cpu_percent(percpu=True, interval=0.01)) >= 75 + ): print("\nHigh CPU load") # high cpu usage trigger @@ -592,7 +731,13 @@ def mon_performance(): # set turbo state based on average of all core temperatures elif cpuload <= 25 and avg_all_core_temp >= 70: - print("Optimal total CPU usage:", cpuload, "%, high average core temp:", avg_all_core_temp, "°C") + print( + "Optimal total CPU usage:", + cpuload, + "%, high average core temp:", + avg_all_core_temp, + "°C", + ) print("suggesting to set turbo boost: off") get_turbo() else: @@ -609,7 +754,13 @@ def mon_performance(): # set turbo state based on average of all core temperatures elif cpuload <= 25 and avg_all_core_temp >= 65: - print("Optimal total CPU usage:", cpuload, "%, high average core temp:", avg_all_core_temp, "°C") + print( + "Optimal total CPU usage:", + cpuload, + "%, high average core temp:", + avg_all_core_temp, + "°C", + ) print("suggesting to set turbo boost: off") get_turbo() else: @@ -626,7 +777,13 @@ def mon_performance(): # set turbo state based on average of all core temperatures elif cpuload <= 25 and avg_all_core_temp >= 60: - print("Optimal total CPU usage:", cpuload, "%, high average core temp:", avg_all_core_temp, "°C") + print( + "Optimal total CPU usage:", + cpuload, + "%, high average core temp:", + avg_all_core_temp, + "°C", + ) print("suggesting to set turbo boost: off") get_turbo() else: @@ -662,25 +819,30 @@ def mon_autofreq(): if charging(): print("Battery is: charging\n") get_current_gov() - print(f"Suggesting use of \"{get_avail_performance()}\" governor") + print(f'Suggesting use of "{get_avail_performance()}" governor') mon_performance() else: print("Battery is: discharging\n") get_current_gov() - print(f"Suggesting use of \"{get_avail_powersave()}\" governor") + print(f'Suggesting use of "{get_avail_powersave()}" governor') mon_powersave() + def python_info(): print("Python:", pl.python_version()) print("psutil package:", psutil.__version__) print("platform package:", pl.__version__) print("click package:", click.__version__) # workaround: Module 'distro' has no '__version__' member () (https://github.com/nir0s/distro/issues/265) - #print("distro:", distro.__version__) - run("echo \"distro package\" $(pip3 show distro | sed -n -e 's/^.*Version: //p')", shell=True) + # print("distro:", distro.__version__) + run( + "echo \"distro package\" $(pip3 show distro | sed -n -e 's/^.*Version: //p')", + shell=True, + ) + def device_info(): - print("Computer type:", getoutput('dmidecode --string chassis-type')) + print("Computer type:", getoutput("dmidecode --string chassis-type")) def distro_info(): @@ -692,13 +854,14 @@ def distro_info(): try: with open("/var/lib/snapd/hostfs/etc/os-release", "r") as searchfile: for line in searchfile: - if line.startswith('NAME='): - dist = line[5:line.find('$')].strip("\"") + if line.startswith("NAME="): + dist = line[5:line.find("$")].strip('"') continue - elif line.startswith('VERSION='): - version = line[8:line.find('$')].strip("\"") + elif line.startswith("VERSION="): + version = line[8:line.find("$")].strip('"') continue - except PermissionError: + except PermissionError as e: + print(repr(e)) pass dist = f"{dist} {version}" @@ -710,6 +873,7 @@ def distro_info(): print("Linux distro: " + dist) print("Linux kernel: " + pl.release()) + def sysinfo(): """ get system information @@ -744,13 +908,15 @@ def sysinfo(): print(f"CPU min frequency: {min_freq:.0f} MHz\n") # get coreid's and frequencies of online cpus by parsing /proc/cpuinfo - coreid_info = getoutput("egrep 'processor|cpu MHz|core id' /proc/cpuinfo").split("\n") + coreid_info = getoutput("egrep 'processor|cpu MHz|core id' /proc/cpuinfo").split( + "\n" + ) cpu_core = dict() freq_per_cpu = [] for i in range(0, len(coreid_info), 3): - freq_per_cpu.append(float(coreid_info[i + 1].split(':')[-1])) - cpu = int(coreid_info[i].split(':')[-1]) - core = int(coreid_info[i + 2].split(':')[-1]) + freq_per_cpu.append(float(coreid_info[i + 1].split(":")[-1])) + cpu = int(coreid_info[i].split(":")[-1]) + core = int(coreid_info[i + 2].split(":")[-1]) cpu_core[cpu] = core online_cpu_count = len(cpu_core) @@ -776,11 +942,14 @@ def sysinfo(): temp_per_cpu = [core_temp["zenpower"][0].current] * online_cpu_count elif "acpitz" in core_temp: temp_per_cpu = [core_temp["acpitz"][0].current] * online_cpu_count - except: + except Exception as e: + print(repr(e)) pass print("Core\tUsage\tTemperature\tFrequency") - for (cpu, usage, freq, temp) in zip(cpu_core, usage_per_cpu, freq_per_cpu, temp_per_cpu): + for (cpu, usage, freq, temp) in zip( + cpu_core, usage_per_cpu, freq_per_cpu, temp_per_cpu + ): print(f"CPU{cpu}:\t{usage:>5.1f}% {temp:>3.0f} °C {freq:>5.0f} MHz") if offline_cpus: @@ -789,7 +958,7 @@ def sysinfo(): # get average temperature of all cores avg_cores_temp = sum(temp_per_cpu) global avg_all_core_temp - avg_all_core_temp = float(avg_cores_temp/online_cpu_count) + avg_all_core_temp = float(avg_cores_temp / online_cpu_count) # print current fan speed | temporarily commented # current_fans = psutil.sensors_fans()['thinkpad'][0].current @@ -798,7 +967,10 @@ def sysinfo(): def no_stats_msg(): print("\n" + "-" * 29 + " auto-cpufreq stats " + "-" * 30 + "\n") - print("ERROR: auto-cpufreq stats are missing.\n\nMake sure to run: \"auto-cpufreq --install\" first") + print( + 'ERROR: auto-cpufreq stats are missing.\n\nMake sure to run: "auto-cpufreq --install" first' + ) + # read stats func def read_stats(): @@ -825,13 +997,14 @@ def is_running(program, argument): for arg in proc.cmdline(): if argument in str(arg): return True - except: + except Exception as e: + print(repr(e)) continue # check if auto-cpufreq --daemon is running def running_daemon(): - if is_running('auto-cpufreq', '--daemon'): + if is_running("auto-cpufreq", "--daemon"): deploy_complete_msg() exit(1) elif os.getenv("PKG_MARKER") == "SNAP" and dcheck == "enabled":