From 2fa78fbe8a7cb97d158b98d261c43708a7df0470 Mon Sep 17 00:00:00 2001 From: Brad Bishop Date: Tue, 30 Aug 2016 19:51:51 -0400 Subject: hwmon: pep8 fixes Change-Id: I94fa21938796a694d8bb653b45b7f5379c7e6bc4 Signed-off-by: Brad Bishop --- pyhwmon/hwmon.py | 277 +++++++++++++++++++++++++++---------------------------- 1 file changed, 137 insertions(+), 140 deletions(-) (limited to 'pyhwmon') diff --git a/pyhwmon/hwmon.py b/pyhwmon/hwmon.py index e7b9f1c..0b6cf5f 100644 --- a/pyhwmon/hwmon.py +++ b/pyhwmon/hwmon.py @@ -1,6 +1,5 @@ -#!/usr/bin/python -u +#!/usr/bin/env python -import sys import os import gobject import glob @@ -23,146 +22,144 @@ HWMON_PATH = '/sys/class/hwmon' ## static define which interface each property is under ## need a better way that is not slow IFACE_LOOKUP = { - 'units' : SensorValue.IFACE_NAME, - 'adjust' : HwmonSensor.IFACE_NAME, - 'scale' : HwmonSensor.IFACE_NAME, - 'offset' : HwmonSensor.IFACE_NAME, - 'critical_upper' : SensorThresholds.IFACE_NAME, - 'warning_upper' : SensorThresholds.IFACE_NAME, - 'critical_lower' : SensorThresholds.IFACE_NAME, - 'warning_lower' : SensorThresholds.IFACE_NAME, - 'emergency_enabled' : SensorThresholds.IFACE_NAME, + 'units': SensorValue.IFACE_NAME, + 'adjust': HwmonSensor.IFACE_NAME, + 'scale': HwmonSensor.IFACE_NAME, + 'offset': HwmonSensor.IFACE_NAME, + 'critical_upper': SensorThresholds.IFACE_NAME, + 'warning_upper': SensorThresholds.IFACE_NAME, + 'critical_lower': SensorThresholds.IFACE_NAME, + 'warning_lower': SensorThresholds.IFACE_NAME, + 'emergency_enabled': SensorThresholds.IFACE_NAME, } + class Hwmons(): - def __init__(self,bus): - self.sensors = { } - self.hwmon_root = { } - self.scanDirectory() - gobject.timeout_add(DIR_POLL_INTERVAL, self.scanDirectory) - - def readAttribute(self,filename): - val = "-1" - try: - with open(filename, 'r') as f: - for line in f: - val = line.rstrip('\n') - except (OSError, IOError): - print "Cannot read attributes:", filename - return val - - def writeAttribute(self,filename,value): - with open(filename, 'w') as f: - f.write(str(value)+'\n') - - - def poll(self,objpath,attribute): - try: - raw_value = int(self.readAttribute(attribute)) - obj = bus.get_object(SENSOR_BUS,objpath,introspect=False) - intf = dbus.Interface(obj,HwmonSensor.IFACE_NAME) - rtn = intf.setByPoll(raw_value) - if (rtn[0] == True): - self.writeAttribute(attribute,rtn[1]) - except: - print "HWMON: Attibute no longer exists: "+attribute - self.sensors.pop(objpath,None) - return False - - - return True - - - def addObject(self,dpath,hwmon_path,hwmon): - objsuf = hwmon['object_path'] - objpath = SENSOR_PATH+'/'+objsuf - - if (self.sensors.has_key(objpath) == False): - print "HWMON add: "+objpath+" : "+hwmon_path - - ## register object with sensor manager - obj = bus.get_object(SENSOR_BUS,SENSOR_PATH,introspect=False) - intf = dbus.Interface(obj,SENSOR_BUS) - intf.register("HwmonSensor",objpath) - - ## set some properties in dbus object - obj = bus.get_object(SENSOR_BUS,objpath,introspect=False) - intf = dbus.Interface(obj,dbus.PROPERTIES_IFACE) - intf.Set(HwmonSensor.IFACE_NAME,'filename',hwmon_path) - - ## check if one of thresholds is defined to know - ## whether to enable thresholds or not - if (hwmon.has_key('critical_upper')): - intf.Set(SensorThresholds.IFACE_NAME,'thresholds_enabled',True) - - for prop in hwmon.keys(): - if (IFACE_LOOKUP.has_key(prop)): - intf.Set(IFACE_LOOKUP[prop],prop,hwmon[prop]) - print "Setting: "+prop+" = "+str(hwmon[prop]) - - self.sensors[objpath]=True - self.hwmon_root[dpath].append(objpath) - gobject.timeout_add(hwmon['poll_interval'],self.poll,objpath,hwmon_path) - - def scanDirectory(self): - devices = os.listdir(HWMON_PATH) - found_hwmon = {} - regx = re.compile('([a-z]+)\d+\_') - for d in devices: - dpath = HWMON_PATH+'/'+d+'/' - found_hwmon[dpath] = True - if (self.hwmon_root.has_key(dpath) == False): - self.hwmon_root[dpath] = [] - ## the instance name is a soft link - instance_name = os.path.realpath(dpath+'device').split('/').pop() - - - if (System.HWMON_CONFIG.has_key(instance_name)): - hwmon = System.HWMON_CONFIG[instance_name] - - if (hwmon.has_key('labels')): - label_files = glob.glob(dpath+'/*_label') - for f in label_files: - label_key = self.readAttribute(f) - if (hwmon['labels'].has_key(label_key)): - namef = f.replace('_label','_input') - self.addObject(dpath,namef,hwmon['labels'][label_key]) - else: - pass - #print "WARNING - hwmon: label ("+label_key+") not found in lookup: "+f - - if hwmon.has_key('names'): - for attribute in hwmon['names'].keys(): - self.addObject(dpath,dpath+attribute,hwmon['names'][attribute]) - - else: - print "WARNING - hwmon: Unhandled hwmon: "+dpath - - - for k in self.hwmon_root.keys(): - if (found_hwmon.has_key(k) == False): - ## need to remove all objects associated with this path - print "Removing: "+k - for objpath in self.hwmon_root[k]: - if (self.sensors.has_key(objpath) == True): - print "HWMON remove: "+objpath - self.sensors.pop(objpath,None) - obj = bus.get_object(SENSOR_BUS,SENSOR_PATH,introspect=False) - intf = dbus.Interface(obj,SENSOR_BUS) - intf.delete(objpath) - - self.hwmon_root.pop(k,None) - - return True - - -if __name__ == '__main__': - - dbus.mainloop.glib.DBusGMainLoop(set_as_default=True) - bus = get_dbus() - root_sensor = Hwmons(bus) - mainloop = gobject.MainLoop() + def __init__(self, bus): + self.sensors = {} + self.hwmon_root = {} + self.scanDirectory() + gobject.timeout_add(DIR_POLL_INTERVAL, self.scanDirectory) + + def readAttribute(self, filename): + val = "-1" + try: + with open(filename, 'r') as f: + for line in f: + val = line.rstrip('\n') + except (OSError, IOError): + print "Cannot read attributes:", filename + return val + + def writeAttribute(self, filename, value): + with open(filename, 'w') as f: + f.write(str(value)+'\n') + + def poll(self, objpath, attribute): + try: + raw_value = int(self.readAttribute(attribute)) + obj = bus.get_object(SENSOR_BUS, objpath, introspect=False) + intf = dbus.Interface(obj, HwmonSensor.IFACE_NAME) + rtn = intf.setByPoll(raw_value) + if rtn[0]: + self.writeAttribute(attribute, rtn[1]) + except: + print "HWMON: Attibute no longer exists: "+attribute + self.sensors.pop(objpath, None) + return False + + return True + + def addObject(self, dpath, hwmon_path, hwmon): + objsuf = hwmon['object_path'] + objpath = SENSOR_PATH+'/'+objsuf + + if objpath not in self.sensors: + print "HWMON add: "+objpath+" : "+hwmon_path + + ## register object with sensor manager + obj = bus.get_object(SENSOR_BUS, SENSOR_PATH, introspect=False) + intf = dbus.Interface(obj, SENSOR_BUS) + intf.register("HwmonSensor", objpath) + + ## set some properties in dbus object + obj = bus.get_object(SENSOR_BUS, objpath, introspect=False) + intf = dbus.Interface(obj, dbus.PROPERTIES_IFACE) + intf.Set(HwmonSensor.IFACE_NAME, 'filename', hwmon_path) + + ## check if one of thresholds is defined to know + ## whether to enable thresholds or not + if 'critical_upper' in hwmon: + intf.Set( + SensorThresholds.IFACE_NAME, 'thresholds_enabled', True) + + for prop in hwmon.keys(): + if prop in IFACE_LOOKUP: + intf.Set(IFACE_LOOKUP[prop], prop, hwmon[prop]) + print "Setting: "+prop+" = "+str(hwmon[prop]) + + self.sensors[objpath] = True + self.hwmon_root[dpath].append(objpath) + gobject.timeout_add( + hwmon['poll_interval'], self.poll, objpath, hwmon_path) + + def scanDirectory(self): + devices = os.listdir(HWMON_PATH) + found_hwmon = {} + regx = re.compile('([a-z]+)\d+\_') + for d in devices: + dpath = HWMON_PATH+'/'+d+'/' + found_hwmon[dpath] = True + if dpath not in self.hwmon_root: + self.hwmon_root[dpath] = [] + ## the instance name is a soft link + instance_name = os.path.realpath(dpath+'device').split('/').pop() + + if instance_name in System.HWMON_CONFIG: + hwmon = System.HWMON_CONFIG[instance_name] + + if 'labels' in hwmon: + label_files = glob.glob(dpath+'/*_label') + for f in label_files: + label_key = self.readAttribute(f) + if label_key in hwmon['labels']: + namef = f.replace('_label', '_input') + self.addObject( + dpath, namef, hwmon['labels'][label_key]) + else: + pass + + if 'names' in hwmon: + for attribute in hwmon['names'].keys(): + self.addObject( + dpath, dpath+attribute, hwmon['names'][attribute]) + + else: + print "WARNING - hwmon: Unhandled hwmon: "+dpath + + for k in self.hwmon_root.keys(): + if k not in found_hwmon: + ## need to remove all objects associated with this path + print "Removing: "+k + for objpath in self.hwmon_root[k]: + if objpath in self.sensors: + print "HWMON remove: "+objpath + self.sensors.pop(objpath, None) + obj = bus.get_object( + SENSOR_BUS, SENSOR_PATH, introspect=False) + intf = dbus.Interface(obj, SENSOR_BUS) + intf.delete(objpath) + + self.hwmon_root.pop(k, None) + + return True - print "Starting HWMON sensors" - mainloop.run() +if __name__ == '__main__': + dbus.mainloop.glib.DBusGMainLoop(set_as_default=True) + bus = get_dbus() + root_sensor = Hwmons(bus) + mainloop = gobject.MainLoop() + + print "Starting HWMON sensors" + mainloop.run() -- cgit v1.2.1