/usr/share/cagefs-skeleton/lib/python3.9/site-packages/glances
# -*- coding: utf-8 -*- # # This file is part of Glances. # # SPDX-FileCopyrightText: 2022 Nicolas Hennion <nicolas@nicolargo.com> # # SPDX-License-Identifier: LGPL-3.0-only # # from glances.logger import logger # This constant defines the list of available processes sort key sort_programs_key_list = ['cpu_percent', 'memory_percent', 'cpu_times', 'io_counters', 'name'] def processes_to_programs(processes): """Convert a list of processes to a list of programs.""" # Start to build a dict of programs (key is program name) programs_dict = {} key = 'name' for p in processes: if p[key] not in programs_dict: # Create a new entry in the dict (new program) programs_dict[p[key]] = { 'time_since_update': p['time_since_update'], # some values can be None, e.g. macOS system processes 'num_threads': p['num_threads'] or 0, 'cpu_percent': p['cpu_percent'] or 0, 'memory_percent': p['memory_percent'] or 0, 'cpu_times': p['cpu_times'] or (), 'memory_info': p['memory_info'] or (), 'io_counters': p['io_counters'] or (), 'childrens': [p['pid']], # Others keys are not used # but should be set to be compliant with the existing process_list 'name': p['name'], 'cmdline': [p['name']], 'pid': '_', 'username': p['username'] if 'username' in p else '_', 'nice': p['nice'], 'status': p['status'], } else: # Update a existing entry in the dict (existing program) # some values can be None, e.g. macOS system processes programs_dict[p[key]]['num_threads'] += p['num_threads'] or 0 programs_dict[p[key]]['cpu_percent'] += p['cpu_percent'] or 0 programs_dict[p[key]]['memory_percent'] += p['memory_percent'] or 0 programs_dict[p[key]]['cpu_times'] += p['cpu_times'] or () programs_dict[p[key]]['memory_info'] += p['memory_info'] or () programs_dict[p[key]]['io_counters'] += p['io_counters'] programs_dict[p[key]]['childrens'].append(p['pid']) # If all the subprocess has the same value, display it programs_dict[p[key]]['username'] = ( p['username'] if ('username' in p) and (p['username'] == programs_dict[p[key]]['username']) else '_' ) programs_dict[p[key]]['nice'] = p['nice'] if p['nice'] == programs_dict[p[key]]['nice'] else '_' programs_dict[p[key]]['status'] = p['status'] if p['status'] == programs_dict[p[key]]['status'] else '_' # Convert the dict to a list of programs return [programs_dict[p] for p in programs_dict]
.
Edit
..
Edit
__init__.py
Edit
__main__.py
Edit
__pycache__
Edit
actions.py
Edit
amps
Edit
amps_list.py
Edit
attribute.py
Edit
autodiscover.py
Edit
client.py
Edit
client_browser.py
Edit
compat.py
Edit
config.py
Edit
cpu_percent.py
Edit
events.py
Edit
exports
Edit
filter.py
Edit
folder_list.py
Edit
globals.py
Edit
history.py
Edit
logger.py
Edit
main.py
Edit
outdated.py
Edit
outputs
Edit
password.py
Edit
password_list.py
Edit
plugins
Edit
ports_list.py
Edit
processes.py
Edit
programs.py
Edit
secure.py
Edit
server.py
Edit
snmp.py
Edit
standalone.py
Edit
static_list.py
Edit
stats.py
Edit
stats_client.py
Edit
stats_client_snmp.py
Edit
stats_server.py
Edit
thresholds.py
Edit
timer.py
Edit
web_list.py
Edit
webserver.py
Edit