From b7bbd69a655789e507637b06fffc434f9e0698ae Mon Sep 17 00:00:00 2001 From: Alessio Sergi Date: Thu, 17 Apr 2014 17:04:04 +0200 Subject: [PATCH] Complete overhaul of imports Explicit is better than implicit. --- glances/__init__.py | 2 +- glances/core/glances_client.py | 23 ++++--- glances/core/glances_config.py | 23 +++---- glances/core/glances_globals.py | 26 ++++---- glances/core/glances_logs.py | 12 ++-- glances/core/glances_main.py | 76 +++++++++++------------- glances/core/glances_monitor_list.py | 2 +- glances/core/glances_processes.py | 9 ++- glances/core/glances_server.py | 29 +++------ glances/core/glances_stats.py | 8 +-- glances/outputs/glances_bottle.py | 16 ++--- glances/outputs/glances_colorconsole.py | 10 ++-- glances/outputs/glances_curses.py | 4 +- glances/plugins/glances_alert.py | 2 +- glances/plugins/glances_batpercent.py | 3 +- glances/plugins/glances_core.py | 9 +-- glances/plugins/glances_cpu.py | 7 +-- glances/plugins/glances_diskio.py | 7 +-- glances/plugins/glances_fs.py | 12 ++-- glances/plugins/glances_help.py | 6 +- glances/plugins/glances_load.py | 6 +- glances/plugins/glances_mem.py | 7 +-- glances/plugins/glances_memswap.py | 9 +-- glances/plugins/glances_monitor.py | 2 +- glances/plugins/glances_network.py | 17 +++--- glances/plugins/glances_percpu.py | 7 +-- glances/plugins/glances_processcount.py | 2 +- glances/plugins/glances_processlist.py | 6 +- glances/plugins/glances_psutilversion.py | 3 - glances/plugins/glances_sensors.py | 4 +- 30 files changed, 151 insertions(+), 198 deletions(-) diff --git a/glances/__init__.py b/glances/__init__.py index 29feb50c..10b3d1a3 100644 --- a/glances/__init__.py +++ b/glances/__init__.py @@ -21,8 +21,8 @@ Init the Glances software """ # Import system lib -import sys import signal +import sys # Import Glances libs # Note: others Glances libs will be imported optionnaly diff --git a/glances/core/glances_client.py b/glances/core/glances_client.py index 8d5f94f7..2bb04da2 100644 --- a/glances/core/glances_client.py +++ b/glances/core/glances_client.py @@ -17,25 +17,22 @@ # You should have received a copy of the GNU Lesser General Public License # along with this program. If not, see . """ -Manage the Glances' client +Manage the Glances' client """ # Import system libs -import sys -import socket import json +import socket +import sys +try: + from xmlrpc.client import ServerProxy, ProtocolError +except ImportError: # Python 2 + from xmlrpclib import ServerProxy, ProtocolError # Import Glances libs from glances.core.glances_globals import __version__ -from glances.outputs.glances_curses import glancesCurses from glances.core.glances_stats import GlancesStatsClient - -try: - # Python 2 - from xmlrpclib import ServerProxy, ProtocolError -except ImportError: - # Python 3 - from xmlrpc.client import ServerProxy, ProtocolError +from glances.outputs.glances_curses import glancesCurses class GlancesClient(): @@ -86,7 +83,7 @@ class GlancesClient(): self.stats.set_plugins(json.loads(self.client.getAllPlugins())) # Load limits from the configuration file - # Each client can choose its owns limits + # Each client can choose its owns limits self.stats.load_limits(self.config) # Init screen @@ -104,7 +101,7 @@ class GlancesClient(): Return the client/server connection status: - Connected: Connection OK - Disconnected: Connection NOK - """ + """ # Update the stats try: server_stats = json.loads(self.client.getAll()) diff --git a/glances/core/glances_config.py b/glances/core/glances_config.py index a0f6019d..31df4e12 100644 --- a/glances/core/glances_config.py +++ b/glances/core/glances_config.py @@ -17,24 +17,25 @@ # You should have received a copy of the GNU Lesser General Public License # along with this program. If not, see . -__appname__ = 'glances' - -# Import Glances lib -from glances.core.glances_globals import * - # Import system libs import os try: - # Python 2 - from ConfigParser import RawConfigParser - from ConfigParser import NoOptionError -except ImportError: - # Python 3 from configparser import RawConfigParser from configparser import NoOptionError +except ImportError: # Python 2 + from ConfigParser import RawConfigParser + from ConfigParser import NoOptionError + +# Import Glances lib +from glances.core.glances_globals import ( + __appname__, + is_Linux, + is_python3, + work_path +) -class Config: +class Config(object): """ This class is used to access/read config file, if it exists diff --git a/glances/core/glances_globals.py b/glances/core/glances_globals.py index 62453084..9fdb2de4 100644 --- a/glances/core/glances_globals.py +++ b/glances/core/glances_globals.py @@ -19,31 +19,31 @@ # Glances informations __appname__ = 'glances' -__version__ = "2.0_Alpha02" -__author__ = "Nicolas Hennion " -__license__ = "LGPL" +__version__ = '2.0_Alpha02' +__author__ = 'Nicolas Hennion ' +__license__ = 'LGPL' # Import system libs -import sys -import os import gettext import locale +import os +import sys -# Import PsUtil +# Import psutil try: from psutil import __version__ as __psutil_version__ except ImportError: - print('PsUtil module not found. Glances cannot start.') + print('psutil module not found. Glances cannot start.') sys.exit(1) -# PSutil version +# psutil version psutil_version = tuple([int(num) for num in __psutil_version__.split('.')]) -# Check PsUtil version +# Check psutil version psutil_min_version = (2, 0, 0) if (psutil_version < psutil_min_version): - print('PsUtil version %s detected.' % __psutil_version__) - print('PsUtil 2.0 or higher is needed. Glances cannot start.') + print('psutil version %s detected.' % __psutil_version__) + print('psutil 2.0 or higher is needed. Glances cannot start.') sys.exit(1) # Path definitions @@ -75,8 +75,8 @@ else: locale_dir = None gettext.install(gettext_domain, locale_dir) -# Instances shared between all Glances's scripts -#=============================================== +# Instances shared between all Glances' scripts +# =============================================== # glances_processes for processcount and processlist plugins from glances.core.glances_processes import glancesProcesses diff --git a/glances/core/glances_logs.py b/glances/core/glances_logs.py index 7f079dda..3c6b3b45 100644 --- a/glances/core/glances_logs.py +++ b/glances/core/glances_logs.py @@ -18,8 +18,8 @@ # along with this program. If not, see . # Import system libs -import time from datetime import datetime +import time # Import Glances libs from glances.core.glances_globals import glances_processes @@ -34,9 +34,9 @@ class glancesLogs: item_type = "CPU*|LOAD|MEM|MON" item_value = value Item is defined by: - ["begin", - "end", - "WARNING|CRITICAL", + ["begin", + "end", + "WARNING|CRITICAL", "CPU|LOAD|MEM", MAX, AVG, MIN, SUM, COUNT, [top3 process list], @@ -71,7 +71,7 @@ class glancesLogs: An item exist in the list if: * end is < 0 * item_type is matching - Return the item position if exist + Return the item position if exist -1 if the item is not found """ for i in range(self.len()): @@ -138,7 +138,7 @@ class glancesLogs: item.append(item_value) # MIN item.append(item_value) # SUM item.append(1) # COUNT - # Process list is sorted automaticaly + # Process list is sorted automaticaly # Overwrite the user choise # topprocess = sorted(proc_list, key=lambda process: process[process_auto_by], # reverse=True) diff --git a/glances/core/glances_main.py b/glances/core/glances_main.py index 32e11982..b77d6be1 100644 --- a/glances/core/glances_main.py +++ b/glances/core/glances_main.py @@ -21,15 +21,16 @@ Main Glances script """ # Import system libs -import sys -import os import argparse +import sys # Import Glances libs -from glances.core.glances_globals import __appname__, __version__, __author__, __license__ -from glances.core.glances_globals import * -# !!! Todo: rename class from glances.core.glances_config import Config +from glances.core.glances_globals import ( + __appname__, + __psutil_version__, + __version__ +) class GlancesMain(object): @@ -41,7 +42,7 @@ class GlancesMain(object): refresh_time = 3 # Set the default cache lifetime to 1 second (only for server) # !!! Todo: configuration from the command line - cached_time = 1 + cached_time = 1 # Default network bitrate is display in bit per second network_bytepersec_tag = False # Display (or not) module @@ -51,7 +52,7 @@ class GlancesMain(object): # network_tag = True # sensors_tag = True # process_tag = True - # Display property + # Display property use_bold = True percpu_tag = False # Default configuration file @@ -62,7 +63,7 @@ class GlancesMain(object): # By default, Glances is ran in standalone mode (no client/server) client_tag = False server_tag = False - # Server IP address (no default value) + # Server IP address (no default value) server_ip = None # Server TCP port number (default is 61209) server_port = 61209 @@ -76,7 +77,6 @@ class GlancesMain(object): output_file = None output_folder = None - def __init__(self): # Init and manage command line arguments self.init_arg() @@ -92,7 +92,6 @@ class GlancesMain(object): # Load the configuration file self.config.load() - def init_arg(self): """ Init all the command line arguments @@ -103,55 +102,55 @@ class GlancesMain(object): description='Glances, an eye on your system.') # Version - self.parser.add_argument('-v', '--version', - action='version', - version=_('%s v%s with PsUtil v%s') - % (__appname__.capitalize(), __version__, psutil_version)) + self.parser.add_argument('-v', '--version', + action='version', + version=_('%s v%s with PsUtil v%s') + % (__appname__.capitalize(), __version__, __psutil_version__)) # Client mode: set the client IP/name self.parser.add_argument('-C', '--config', help=_('path to the configuration file')) # Refresh time self.parser.add_argument('-t', '--time', - help=_('set refresh time in seconds (default: %s sec)') % self.refresh_time, + help=_('set refresh time in seconds (default: %s sec)') % self.refresh_time, type=int) # Network bitrate in byte per second (default is bit per second) self.parser.add_argument('-b', '--byte', - help=_('display network rate in byte per second (default is bit per second)'), + help=_('display network rate in byte per second (default is bit per second)'), action='store_true') # Disable DiskIO module self.parser.add_argument('--disable_diskio', - help=_('disable disk I/O module'), + help=_('disable disk I/O module'), action='store_true') # Disable mount module self.parser.add_argument('--disable_fs', - help=_('disable file system (mount) module'), + help=_('disable file system (mount) module'), action='store_true') # Disable network module self.parser.add_argument('--disable_network', - help=_('disable network module'), + help=_('disable network module'), action='store_true') # Enable sensors module self.parser.add_argument('--disable_sensors', - help=_('disable sensors module'), + help=_('disable sensors module'), action='store_true') # Disable process module self.parser.add_argument('--disable_process', - help=_('disable process module'), + help=_('disable process module'), action='store_true') # Disable log module self.parser.add_argument('--disable_log', - help=_('disable log module'), + help=_('disable log module'), action='store_true') # Bold attribute for Curse display (not supported by all terminal) self.parser.add_argument('-z', '--no_bold', - help=_('disable bold mode in the terminal'), + help=_('disable bold mode in the terminal'), action='store_false') # Per CPU display tag self.parser.add_argument('-1', '--percpu', - help=_('start Glances in per CPU mode)'), + help=_('start Glances in per CPU mode)'), action='store_true') # Client mode: set the client IP/name @@ -170,7 +169,7 @@ class GlancesMain(object): help=_('bind server to the given IPv4/IPv6 address or hostname')) # Server TCP port self.parser.add_argument('-p', '--port', - help=_('define the server TCP port (default: %d)') % self.server_port, + help=_('define the server TCP port (default: %d)') % self.server_port, type=int) # Password as an argument self.parser.add_argument('-P', '--password_arg', @@ -182,7 +181,7 @@ class GlancesMain(object): # Output type self.parser.add_argument('-o', '--output', - help=_('define additional output %s') % self.output_list, + help=_('define additional output %s') % self.output_list, choices=self.output_list) # Define output type flag to False (default is no output) for o in self.output_list: @@ -191,7 +190,6 @@ class GlancesMain(object): self.parser.add_argument('-f', '--file', help=_('set the html output folder or csv file')) - def parse_arg(self): """ Parse command line argument @@ -202,13 +200,13 @@ class GlancesMain(object): # Default refresh time: # - is 3 seconds for CLI # - is 5 seconds for Web (Bottle) - if (args.time is None): + if (args.time is None): if (args.webserver): args.time = 5 else: args.time = 3 # !!! Usefull ? Default refresh time - if (args.time is not None): self.refresh_time = args.time + if (args.time is not None): self.refresh_time = args.time # By default Help is hidden args.help_tag = False @@ -218,9 +216,9 @@ class GlancesMain(object): args.network_cumul = False # Bind address/port - if (args.bind is None): - args.bind = self.bind_ip - if (args.port is None): + if (args.bind is None): + args.bind = self.bind_ip + if (args.port is None): if (args.webserver): args.port = self.web_server_port else: @@ -231,17 +229,17 @@ class GlancesMain(object): # Server or client login/password args.username = self.username if (args.password_arg is not None): - # Password is passed as an argument + # Password is passed as an argument args.password = args.password_arg elif (args.password): # Interactive password - if (args.server): + if (args.server): args.password = self.__get_password( - description=_("Define the password for the Glances server"), + description=_("Define the password for the Glances server"), confirm=True) elif (args.client): args.password = self.__get_password( - description=_("Enter the Glances server password"), + description=_("Enter the Glances server password"), confirm=False) else: # Default is no password @@ -266,7 +264,6 @@ class GlancesMain(object): return args - def __get_password(self, description='', confirm=False): """ Read a password from the command line (with confirmation if confirm = True) @@ -288,21 +285,18 @@ class GlancesMain(object): sys.stdout.write(_("[Warning] Passwords did not match, please try again...\n")) return self.__get_password(description=description, confirm=confirm) - def is_standalone(self): """ Return True if Glances is running in standalone mode """ return not self.client_tag and not self.server_tag and not self.webserver_tag - def is_client(self): """ Return True if Glances is running in client mode """ return self.client_tag and not self.server_tag - def is_server(self): """ Return True if Glances is running in server mode @@ -325,4 +319,4 @@ class GlancesMain(object): """ Return the arguments """ - return self.args \ No newline at end of file + return self.args diff --git a/glances/core/glances_monitor_list.py b/glances/core/glances_monitor_list.py index 2b023dd2..8933ba4d 100644 --- a/glances/core/glances_monitor_list.py +++ b/glances/core/glances_monitor_list.py @@ -50,7 +50,7 @@ class monitorList: self.config = config - if ((self.config != None) + if ((self.config != None) and self.config.has_section('monitor')): # Process monitoring list self.__setMonitorList('monitor', 'list') diff --git a/glances/core/glances_processes.py b/glances/core/glances_processes.py index 01f223b0..21592bfd 100644 --- a/glances/core/glances_processes.py +++ b/glances/core/glances_processes.py @@ -17,8 +17,7 @@ # You should have received a copy of the GNU Lesser General Public License # along with this program. If not, see . -# Import system lib -from psutil import process_iter, AccessDenied, NoSuchProcess +import psutil # Import Glances lib from glances.core.glances_globals import is_BSD, is_Mac, is_Windows @@ -136,7 +135,7 @@ class glancesProcesses: # Get the process IO counters proc_io = proc.io_counters() io_new = [proc_io.read_bytes, proc_io.write_bytes] - except AccessDenied: + except psutil.AccessDenied: # Access denied to process IO (no root account) # Put 0 in all values (for sort) and io_tag = 0 (for display) procstat['io_counters'] = [0, 0] + [0, 0] @@ -174,7 +173,7 @@ class glancesProcesses: time_since_update = getTimeSinceLastUpdate('process_disk') # For each existing process... - for proc in process_iter(): + for proc in psutil.process_iter(): try: # Get stats using the PSUtil procstat = self.__get_process_stats(proc) @@ -200,7 +199,7 @@ class glancesProcesses: self.processcount['thread'] += proc.num_threads() except: pass - except (NoSuchProcess, AccessDenied): + except (psutil.NoSuchProcess, psutil.AccessDenied): continue else: # Update processlist diff --git a/glances/core/glances_server.py b/glances/core/glances_server.py index 514a4afe..6e53495f 100644 --- a/glances/core/glances_server.py +++ b/glances/core/glances_server.py @@ -18,34 +18,23 @@ # along with this program. If not, see . # Import system libs -import sys -import socket -import json from base64 import b64decode from hashlib import md5 +import json +import socket +import sys +try: + from xmlrpc.server import SimpleXMLRPCRequestHandler + from xmlrpc.server import SimpleXMLRPCServer +except ImportError: # Python 2 + from SimpleXMLRPCServer import SimpleXMLRPCRequestHandler + from SimpleXMLRPCServer import SimpleXMLRPCServer # Import Glances libs from glances.core.glances_globals import __version__ from glances.core.glances_stats import GlancesStatsServer from glances.core.glances_timer import Timer -# Other imports -try: - # Python 2 - from SimpleXMLRPCServer import SimpleXMLRPCRequestHandler - from SimpleXMLRPCServer import SimpleXMLRPCServer -except ImportError: - # Python 3 - from xmlrpc.server import SimpleXMLRPCRequestHandler - from xmlrpc.server import SimpleXMLRPCServer - -try: - # Python 2 - from xmlrpclib import ServerProxy, ProtocolError -except ImportError: - # Python 3 - from xmlrpc.client import ServerProxy, ProtocolError - class GlancesXMLRPCHandler(SimpleXMLRPCRequestHandler): """ diff --git a/glances/core/glances_stats.py b/glances/core/glances_stats.py index 781eb69a..2f84d2fc 100644 --- a/glances/core/glances_stats.py +++ b/glances/core/glances_stats.py @@ -17,13 +17,9 @@ # You should have received a copy of the GNU Lesser General Public License # along with this program. If not, see . -# Import system libs +import collections import os import sys -import collections - -# Import Glances libs -from glances.core.glances_globals import * class GlancesStats(object): @@ -182,7 +178,7 @@ class GlancesStatsClient(GlancesStats): This class store, update and give stats for the client """ - def __init__(self): + def __init__(self): # Init the plugin list dict self._plugins = collections.defaultdict(dict) diff --git a/glances/outputs/glances_bottle.py b/glances/outputs/glances_bottle.py index 2d355b1d..25222d63 100644 --- a/glances/outputs/glances_bottle.py +++ b/glances/outputs/glances_bottle.py @@ -17,19 +17,15 @@ # You should have received a copy of the GNU Lesser General Public License # along with this program. If not, see . -# Import system lib import os import sys + try: from bottle import Bottle, template, static_file, TEMPLATE_PATH except ImportError: print('Bottle module not found. Glances cannot start in web server mode.') sys.exit(1) -# Import Glances lib -from glances.core.glances_timer import Timer -from glances.core.glances_globals import glances_logs, glances_processes - class glancesBottle: """ @@ -103,7 +99,7 @@ class glancesBottle: # Update the stat self.stats.update() - + # Display return self.display(self.stats, refresh_time=refresh_time) @@ -183,13 +179,13 @@ class glancesBottle: if (m['splittable']): tpl += '' continue - tpl += '%s' % (self.__style_list[m['decoration']] , + tpl += '%s' % (self.__style_list[m['decoration']] , m['msg'].replace(' ', ' ')) tpl += '' tpl += '' - + tpl += """ \ - + %#End Template for Bottle """ - return template(tpl) \ No newline at end of file + return template(tpl) diff --git a/glances/outputs/glances_colorconsole.py b/glances/outputs/glances_colorconsole.py index b074c47a..2481fa8d 100644 --- a/glances/outputs/glances_colorconsole.py +++ b/glances/outputs/glances_colorconsole.py @@ -17,8 +17,10 @@ # You should have received a copy of the GNU Lesser General Public License # along with this program. If not, see . -# Import system lib import sys +import threading +import msvcrt + try: import colorconsole import colorconsole.terminal @@ -26,12 +28,10 @@ except ImportError: print('Colorconsole module not found. Glances cannot start in standalone mode.') sys.exit(1) -import msvcrt -import threading try: - import Queue as queue -except ImportError: import queue +except ImportError: # Python 2 + import Queue as queue class ListenGetch(threading.Thread): diff --git a/glances/outputs/glances_curses.py b/glances/outputs/glances_curses.py index 0eff2e19..c3201bfe 100644 --- a/glances/outputs/glances_curses.py +++ b/glances/outputs/glances_curses.py @@ -21,11 +21,11 @@ import sys # Import Glances lib -from glances.core.glances_timer import Timer from glances.core.glances_globals import glances_logs, glances_processes, is_Windows +from glances.core.glances_timer import Timer # Import curses lib for "normal" operating system and consolelog for Windows -if (not is_Windows): +if not is_Windows: try: import curses import curses.panel diff --git a/glances/plugins/glances_alert.py b/glances/plugins/glances_alert.py index dfa8a93b..629c9de4 100644 --- a/glances/plugins/glances_alert.py +++ b/glances/plugins/glances_alert.py @@ -21,8 +21,8 @@ from datetime import datetime # Import Glances libs -from glances.plugins.glances_plugin import GlancesPlugin from glances.core.glances_globals import glances_logs +from glances.plugins.glances_plugin import GlancesPlugin class Plugin(GlancesPlugin): diff --git a/glances/plugins/glances_batpercent.py b/glances/plugins/glances_batpercent.py index aa01f2fb..0a526bc7 100644 --- a/glances/plugins/glances_batpercent.py +++ b/glances/plugins/glances_batpercent.py @@ -20,8 +20,7 @@ Batinfo (batterie) plugin """ -# Import system libs -# batinfo library (optional; Linux-only) +# Batinfo library (optional; Linux-only) try: import batinfo except ImportError: diff --git a/glances/plugins/glances_core.py b/glances/plugins/glances_core.py index ecf85802..6fa36edf 100644 --- a/glances/plugins/glances_core.py +++ b/glances/plugins/glances_core.py @@ -17,11 +17,8 @@ # You should have received a copy of the GNU Lesser General Public License # along with this program. If not, see . -# Import system libs -# Check for PSUtil already done in the glances_core script -from psutil import cpu_count +import psutil -# Import Glances libs from glances.plugins.glances_plugin import GlancesPlugin @@ -55,8 +52,8 @@ class Plugin(GlancesPlugin): # Return None if undefine core_stats = {} try: - core_stats["phys"] = cpu_count(logical=False) - core_stats["log"] = cpu_count() + core_stats["phys"] = psutil.cpu_count(logical=False) + core_stats["log"] = psutil.cpu_count() except NameError: core_stats = None diff --git a/glances/plugins/glances_cpu.py b/glances/plugins/glances_cpu.py index 0dcca5a5..1321b01e 100644 --- a/glances/plugins/glances_cpu.py +++ b/glances/plugins/glances_cpu.py @@ -20,11 +20,8 @@ Glances CPU plugin """ -# Import system libs -# Check for PSUtil already done in the glances_core script -from psutil import cpu_times_percent +import psutil -# Import Glances libs from glances.plugins.glances_plugin import GlancesPlugin @@ -57,7 +54,7 @@ class Plugin(GlancesPlugin): """ # Grab CPU using the PSUtil cpu_times_percent method - cputimespercent = cpu_times_percent(interval=0.0, percpu=False) + cputimespercent = psutil.cpu_times_percent(interval=0.0, percpu=False) # Get all possible value for CPU stats # user diff --git a/glances/plugins/glances_diskio.py b/glances/plugins/glances_diskio.py index 8bef10f5..52c45c24 100644 --- a/glances/plugins/glances_diskio.py +++ b/glances/plugins/glances_diskio.py @@ -20,12 +20,11 @@ Glances CPU plugin """ -# Import system lib -from psutil import disk_io_counters +import psutil # Import Glances libs -from glances.plugins.glances_plugin import GlancesPlugin from glances.core.glances_timer import getTimeSinceLastUpdate +from glances.plugins.glances_plugin import GlancesPlugin class Plugin(GlancesPlugin): @@ -62,7 +61,7 @@ class Plugin(GlancesPlugin): # write_bytes: number of bytes written # read_time: time spent reading from disk (in milliseconds) # write_time: time spent writing to disk (in milliseconds) - diskiocounters = disk_io_counters(perdisk=True) + diskiocounters = psutil.disk_io_counters(perdisk=True) # Previous disk IO stats are stored in the diskio_old variable diskio = [] diff --git a/glances/plugins/glances_fs.py b/glances/plugins/glances_fs.py index a1a7d5cb..7203fe0f 100644 --- a/glances/plugins/glances_fs.py +++ b/glances/plugins/glances_fs.py @@ -17,10 +17,8 @@ # You should have received a copy of the GNU Lesser General Public License # along with this program. If not, see . -# Import system lib -from psutil import disk_partitions, disk_usage +import psutil -# Import Glances libs from glances.plugins.glances_plugin import GlancesPlugin @@ -46,16 +44,16 @@ class glancesGrabFs: fs_list = [] # Grab the stats using the PsUtil disk_partitions - # If 'all'=False return physical devices only (e.g. hard disks, cd-rom drives, USB keys) + # If 'all'=False return physical devices only (e.g. hard disks, cd-rom drives, USB keys) # and ignore all others (e.g. memory partitions such as /dev/shm) - fs_stat = disk_partitions(all=False) + fs_stat = psutil.disk_partitions(all=False) for fs in range(len(fs_stat)): fs_current = {} fs_current['device_name'] = fs_stat[fs].device fs_current['fs_type'] = fs_stat[fs].fstype fs_current['mnt_point'] = fs_stat[fs].mountpoint # Grab the disk usage - fs_usage = disk_usage(fs_current['mnt_point']) + fs_usage = psutil.disk_usage(fs_current['mnt_point']) fs_current['size'] = fs_usage.total fs_current['used'] = fs_usage.used fs_current['avail'] = fs_usage.free @@ -128,7 +126,7 @@ class Plugin(GlancesPlugin): # New line ret.append(self.curse_new_line()) if ((len(i['mnt_point']) + len(i['device_name'].split('/')[-1])) <= 6): - # If possible concatenate mode info... Glances touch inside :) + # If possible concatenate mode info... Glances touch inside :) mnt_point = i['mnt_point'] + ' (' + i['device_name'].split('/')[-1] + ')' elif (len(i['mnt_point']) > 9): # Cut mount point name if it is too long diff --git a/glances/plugins/glances_help.py b/glances/plugins/glances_help.py index 9b12ed5d..5d2e77ba 100644 --- a/glances/plugins/glances_help.py +++ b/glances/plugins/glances_help.py @@ -22,8 +22,12 @@ Just a stupid plugin to display the help screen """ # Import Glances libs +from glances.core.glances_globals import ( + __appname__, + __psutil_version__, + __version__ +) from glances.plugins.glances_plugin import GlancesPlugin -from glances.core.glances_globals import __appname__, __version__, __psutil_version__ class Plugin(GlancesPlugin): diff --git a/glances/plugins/glances_load.py b/glances/plugins/glances_load.py index 761e1088..15641598 100644 --- a/glances/plugins/glances_load.py +++ b/glances/plugins/glances_load.py @@ -21,11 +21,11 @@ Glances load plugin """ # Import system libs -from os import getloadavg +import os # Import Glances libs -from glances.plugins.glances_plugin import GlancesPlugin from glances.plugins.glances_core import Plugin as CorePlugin +from glances.plugins.glances_plugin import GlancesPlugin class Plugin(GlancesPlugin): @@ -60,7 +60,7 @@ class Plugin(GlancesPlugin): # Get the load using the os standard lib try: - load = getloadavg() + load = os.getloadavg() except OSError: self.stats = {} else: diff --git a/glances/plugins/glances_mem.py b/glances/plugins/glances_mem.py index e255b684..ff4c77dd 100644 --- a/glances/plugins/glances_mem.py +++ b/glances/plugins/glances_mem.py @@ -20,11 +20,8 @@ Glances virtual memory plugin """ -# Import system libs -# Check for PSUtil already done in the glances_core script -from psutil import virtual_memory +import psutil -# from ..plugins.glances_plugin import GlancesPlugin from glances.plugins.glances_plugin import GlancesPlugin @@ -53,7 +50,7 @@ class Plugin(GlancesPlugin): """ # Grab MEM using the PSUtil virtual_memory method - vm_stats = virtual_memory() + vm_stats = psutil.virtual_memory() # Get all the memory stats (copy/paste of the PsUtil documentation) # total: total physical memory available. diff --git a/glances/plugins/glances_memswap.py b/glances/plugins/glances_memswap.py index 9d46925d..bd409199 100644 --- a/glances/plugins/glances_memswap.py +++ b/glances/plugins/glances_memswap.py @@ -20,11 +20,8 @@ Glances swap memory plugin """ -# Import system libs -# Check for PSUtil already done in the glances_core script -from psutil import swap_memory +import psutil -# from ..plugins.glances_plugin import GlancesPlugin from glances.plugins.glances_plugin import GlancesPlugin @@ -53,7 +50,7 @@ class Plugin(GlancesPlugin): """ # Grab SWAP using the PSUtil swap_memory method - sm_stats = swap_memory() + sm_stats = psutil.swap_memory() # Get all the swap stats (copy/paste of the PsUtil documentation) # total: total swap memory in bytes @@ -105,7 +102,7 @@ class Plugin(GlancesPlugin): ret.append(self.curse_add_line(msg)) msg = "{0:>6}".format(self.auto_unit(self.stats['used'])) ret.append(self.curse_add_line( - msg, self.get_alert_log(self.stats['used'], + msg, self.get_alert_log(self.stats['used'], max=self.stats['total']))) # New line ret.append(self.curse_new_line()) diff --git a/glances/plugins/glances_monitor.py b/glances/plugins/glances_monitor.py index 4d88de4d..1804a9c8 100644 --- a/glances/plugins/glances_monitor.py +++ b/glances/plugins/glances_monitor.py @@ -18,8 +18,8 @@ # along with this program. If not, see . # Import Glances lib -from glances.plugins.glances_plugin import GlancesPlugin from glances.core.glances_monitor_list import monitorList as glancesMonitorList +from glances.plugins.glances_plugin import GlancesPlugin class Plugin(GlancesPlugin): diff --git a/glances/plugins/glances_network.py b/glances/plugins/glances_network.py index 9778fee3..e9a60848 100644 --- a/glances/plugins/glances_network.py +++ b/glances/plugins/glances_network.py @@ -21,11 +21,11 @@ Glances Network interface plugin """ # Import system libs -from psutil import net_io_counters +import psutil # Import Glances lib -from glances.plugins.glances_plugin import GlancesPlugin from glances.core.glances_timer import getTimeSinceLastUpdate +from glances.plugins.glances_plugin import GlancesPlugin class Plugin(GlancesPlugin): @@ -50,7 +50,6 @@ class Plugin(GlancesPlugin): # Init stats self.network_old = [] - def update(self): """ Update network stats @@ -58,7 +57,7 @@ class Plugin(GlancesPlugin): """ # Grab network interface stat using the PsUtil net_io_counter method - netiocounters = net_io_counters(pernic=True) + netiocounters = psutil.net_io_counters(pernic=True) # Previous network interface stats are stored in the network_old variable network = [] @@ -142,7 +141,7 @@ class Plugin(GlancesPlugin): msg = "{0:>7}".format(_("Rx/s")) ret.append(self.curse_add_line(msg)) msg = "{0:>7}".format(_("Tx/s")) - ret.append(self.curse_add_line(msg)) + ret.append(self.curse_add_line(msg)) # Interface list (sorted by name) for i in sorted(self.stats, key=lambda network: network['interface_name']): # Do not display hidden interfaces @@ -154,22 +153,22 @@ class Plugin(GlancesPlugin): if (args.network_cumul): rx = self.auto_unit(int(i['cumulative_rx'])) tx = self.auto_unit(int(i['cumulative_tx'])) - sx = self.auto_unit(int(i['cumulative_tx']) + sx = self.auto_unit(int(i['cumulative_tx']) + int(i['cumulative_tx'])) else: rx = self.auto_unit(int(i['rx'] // i['time_since_update'])) tx = self.auto_unit(int(i['tx'] // i['time_since_update'])) - sx = self.auto_unit(int(i['rx'] // i['time_since_update']) + sx = self.auto_unit(int(i['rx'] // i['time_since_update']) + int(i['tx'] // i['time_since_update'])) else: if (args.network_cumul): rx = self.auto_unit(int(i['cumulative_rx'] * 8)) + "b" tx = self.auto_unit(int(i['cumulative_tx'] * 8)) + "b" - sx = self.auto_unit(int(i['cumulative_rx'] * 8) + sx = self.auto_unit(int(i['cumulative_rx'] * 8) + int(i['cumulative_tx'] * 8)) + "b" else: rx = self.auto_unit(int(i['rx'] // i['time_since_update'] * 8)) + "b" - tx = self.auto_unit(int(i['tx'] // i['time_since_update'] * 8)) + "b" + tx = self.auto_unit(int(i['tx'] // i['time_since_update'] * 8)) + "b" sx = self.auto_unit(int(i['rx'] // i['time_since_update'] * 8) + int(i['tx'] // i['time_since_update'] * 8)) + "b" # New line diff --git a/glances/plugins/glances_percpu.py b/glances/plugins/glances_percpu.py index fa55d5b5..30fc6e73 100644 --- a/glances/plugins/glances_percpu.py +++ b/glances/plugins/glances_percpu.py @@ -20,9 +20,8 @@ CPU stats (per cpu) """ -# Import system libs -# Check for PSUtil already done in the glances_core script -from psutil import cpu_times +# Check for psutil already done in the glances_core script +import psutil # Import Glances libs from glances.plugins.glances_plugin import GlancesPlugin @@ -58,7 +57,7 @@ class Plugin(GlancesPlugin): """ # Grab CPU using the PSUtil cpu_times method # Per-CPU - percputime = cpu_times(percpu=True) + percputime = psutil.cpu_times(percpu=True) percputime_total = [] for i in range(len(percputime)): percputime_total.append(percputime[i].user + diff --git a/glances/plugins/glances_processcount.py b/glances/plugins/glances_processcount.py index 6906da0c..5ef16e5c 100644 --- a/glances/plugins/glances_processcount.py +++ b/glances/plugins/glances_processcount.py @@ -18,8 +18,8 @@ # along with this program. If not, see . # Import Glances libs -from glances.plugins.glances_plugin import GlancesPlugin from glances.core.glances_globals import glances_processes +from glances.plugins.glances_plugin import GlancesPlugin class Plugin(GlancesPlugin): diff --git a/glances/plugins/glances_processlist.py b/glances/plugins/glances_processlist.py index 9eeb4225..db4eaf8e 100644 --- a/glances/plugins/glances_processlist.py +++ b/glances/plugins/glances_processlist.py @@ -21,8 +21,8 @@ from datetime import timedelta # Import Glances libs -from glances.plugins.glances_plugin import GlancesPlugin from glances.core.glances_globals import glances_processes +from glances.plugins.glances_plugin import GlancesPlugin class Plugin(GlancesPlugin): @@ -74,7 +74,7 @@ class Plugin(GlancesPlugin): try: args.process_sorted_by except AttributeError: - args.process_sorted_by = glances_processes.getsortkey() + args.process_sorted_by = glances_processes.getsortkey() if (args.process_sorted_by == 'auto'): process_sort_key = glances_processes.getsortkey() else: @@ -224,4 +224,4 @@ class Plugin(GlancesPlugin): self.stats = listsorted - return self.stats \ No newline at end of file + return self.stats diff --git a/glances/plugins/glances_psutilversion.py b/glances/plugins/glances_psutilversion.py index f943a290..5fab8261 100644 --- a/glances/plugins/glances_psutilversion.py +++ b/glances/plugins/glances_psutilversion.py @@ -17,11 +17,8 @@ # You should have received a copy of the GNU Lesser General Public License # along with this program. If not, see . -# Import system libs -# Check for PSUtil already done in the glances_core script from psutil import __version__ as __psutil_version__ -# Import Glances libs from glances.plugins.glances_plugin import GlancesPlugin diff --git a/glances/plugins/glances_sensors.py b/glances/plugins/glances_sensors.py index 37ccefbb..0b1a700a 100644 --- a/glances/plugins/glances_sensors.py +++ b/glances/plugins/glances_sensors.py @@ -17,8 +17,7 @@ # You should have received a copy of the GNU Lesser General Public License # along with this program. If not, see . -# Import system libs -# sensors library (optional; Linux-only) +# Sensors library (optional; Linux-only) try: import sensors except ImportError: @@ -28,7 +27,6 @@ except ImportError: from glances.core.glances_globals import is_python3 from glances.plugins.glances_hddtemp import Plugin as HddTempPlugin from glances.plugins.glances_plugin import GlancesPlugin -# from glances.core.glances_timer import getTimeSinceLastUpdate class glancesGrabSensors: