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