viewgit/index.php:465 Only variables should be passed by reference [2048]
viewgit/index.php:466 Non-static method GeSHi::get_language_name_from_extension() should not be called statically [2048]
#!/usr/bin/env python # -*- coding: utf-8 -*- import subprocess, re, gtk, gobject, time from numpy.linalg import lstsq class BatteryMonitor(): def __init__(self): pass def GetDevKitOutput(self, regular_expression): process = subprocess.Popen("devkit-power -d", stdout=subprocess.PIPE, shell=True) output = process.communicate()[0] return re.findall(regular_expression, output)[0] def OnBattery(self): if(self.GetDevKitOutput("state:[\s|\t]*(.*)") == "discharging"): return True else: return False def GetTotalEnergy(self): return float(self.GetDevKitOutput("energy-full:[\s|\t]*([\d|\.]*)")) def GetEnergy(self): """ Restituisce l'energia nella batteria """ energy = float(self.GetDevKitOutput("energy:[\s|\t]*([\d|\.]*)")) return [time.time (), energy] class BatteryIcon(): def __init__(self): self.interval = 10000 # self.tray = gtk.status_icon_new_from_stock (gtk.STOCK_OPEN) self.tray = gtk.status_icon_new_from_file ("clock.svg") self.tray.set_visible (True) self.bm = BatteryMonitor () self.energy = [] self.energy.append (self.bm.GetEnergy ()) self.total_energy = self.bm.GetTotalEnergy () self.ScheduleNext () def ScheduleNext(self): gobject.timeout_add(self.interval, self.UpdateData) def GetTimeString(self, time): if(time < 60): return "%d secondi" % int(time) elif (time < 3600): minutes = int(time/60) if minutes > 1: return "%d minuti" % minutes else: return "%d minuto" % minutes else: hours = int(time/3600) minutes = int( (time - hours * 3600)/60) if minutes == 0: min_string = "" elif minutes == 1: min_string = "ed 1 minuto" else: min_string = "e %d minuti" % minutes if hours > 1: return "%d ore %s" % (hours, min_string) else: return "%d ora %s" % (hours, min_string) def UpdateData(self): if not self.bm.OnBattery (): self.energy = [] self.tray.set_tooltip ("Batteria non in uso") self.ScheduleNext () return energy = self.bm.GetEnergy () self.energy.append (energy) if (len(self.energy) < 6): self.tray.set_tooltip ("Sto aspettando piĆ¹ dati per il calcolo") self.ScheduleNext () return elif (len(self.energy) > 100): del self.energy[0] times = [] starting = self.energy[0][0] for value in self.energy: times.append( [ 1, value[0] - starting ] ) values = [] for value in self.energy: values.append (value[1]) rate = (-1) * lstsq(times, values)[0][1] time_to_discharge = energy[1] / rate self.tray.set_tooltip("Tempo alla scarica: %s" % self.GetTimeString(time_to_discharge)) self.ScheduleNext () def Main (self): gtk.main () if __name__ == "__main__": tray = BatteryIcon () tray.Main ()