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]

  1. import subprocess, re, gtk, gobject
  2.  
  3. class BatteryMonitor():
  4.  
  5. def __init__(self):
  6. pass
  7.  
  8. def GetDevKitOutput(self, regular_expression):
  9.  
  10. process = subprocess.Popen("devkit-power -d",
  11. stdout=subprocess.PIPE,
  12. shell=True)
  13.  
  14. output = process.communicate()[0]
  15.  
  16. return re.findall(regular_expression,
  17. output)[0]
  18.  
  19.  
  20. def OnBattery(self):
  21. if(self.GetDevKitOutput("state:[\s|\t]*(.*)") == "discharging"):
  22. return True
  23. else:
  24. return False
  25.  
  26.  
  27. def GetTotalEnergy(self):
  28. return float(self.GetDevKitOutput("energy-full:[\s|\t]*([\d|\.]*)"))
  29.  
  30.  
  31. def GetEnergy(self):
  32. """
  33. Restituisce l'energia nella batteria
  34. """
  35. energy = float(self.GetDevKitOutput("energy:[\s|\t]*([\d|\.]*)"))
  36. return energy
  37.  
  38. class BatteryIcon():
  39.  
  40. def __init__(self):
  41.  
  42. self.interval = 10000
  43. self.tray = gtk.status_icon_new_from_stock (gtk.STOCK_OPEN)
  44. self.tray.set_visible (True)
  45.  
  46. self.bm = BatteryMonitor ()
  47. self.energy = []
  48. self.energy.append (self.bm.GetEnergy ())
  49.  
  50. self.total_energy = self.bm.GetTotalEnergy ()
  51.  
  52. self.ScheduleNext ()
  53.  
  54. def ScheduleNext(self):
  55. gobject.timeout_add(self.interval,
  56. self.UpdateData)
  57.  
  58. def GetTimeString(self, time):
  59. if(time < 60):
  60. return "%d secondi" % int(time)
  61. elif (time < 3600):
  62. minutes = int(time/60)
  63. return "%d minuti" % minutes
  64. else:
  65. hours = int(time/3600)
  66. minutes = int( (time - hours * 3600)/60)
  67. return "%d ore %d minuti" % (hours, minutes)
  68.  
  69. def UpdateData(self):
  70. if not self.bm.OnBattery ():
  71. self.energy = []
  72. self.tray.set_tooltip ("Batteria non in uso")
  73. return
  74.  
  75. energy = self.bm.GetEnergy ()
  76. self.energy.append (energy)
  77.  
  78. if (len(self.energy) < 5):
  79. self.tray.set_tooltip ("Sto aspettando piĆ¹ dati per il calcolo")
  80. self.ScheduleNext ()
  81. return
  82.  
  83. elif (len(self.energy) > 100):
  84. del self.energy[0]
  85.  
  86. rate = (self.energy[0] - energy) * 1000 / (self.interval * (len(self.energy) - 1))
  87. time_to_discharge = energy / rate
  88.  
  89. self.tray.set_tooltip("Tempo alla scarica: %s" % self.GetTimeString(time_to_discharge))
  90.  
  91. self.ScheduleNext ()
  92.  
  93.  
  94. def Main (self):
  95. gtk.main ()
  96.  
  97. if __name__ == "__main__":
  98.  
  99. tray = BatteryIcon ()
  100. tray.Main ()
  101.