1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
import os
import dbus
from ubiquity import misc
UPOWER = 'org.freedesktop.UPower'
UPOWER_PATH = '/org/freedesktop/UPower'
def setup_power_watch(prepare_power_source):
bus = dbus.SystemBus()
upower = bus.get_object(UPOWER, UPOWER_PATH)
def power_state_changed():
prepare_power_source.set_state(
not misc.get_prop(upower, UPOWER, 'OnBattery'))
bus.add_signal_receiver(power_state_changed, 'Changed', UPOWER, UPOWER)
power_state_changed()
def has_battery():
# UPower doesn't seem to have an interface for this.
path = '/sys/class/power_supply'
if not os.path.exists(path):
return False
for d in os.listdir(path):
p = os.path.join(path, d, 'type')
if os.path.exists(p):
with open(p) as fp:
if fp.read().startswith('Battery'):
return True
return False
|