in pystemd/base.py [0:0]
def load(self, force=False):
if self._loaded and not force:
return
unit_xml = self.get_introspect_xml()
decoded_destination = self.destination.decode()
for interface in unit_xml.getchildren():
if not etree.iselement(interface):
continue
if interface.tag != "interface":
# This is not bad, we just can't act on this info.
continue
interface_name = interface.attrib.get("name")
self._interfaces[interface_name] = meta_interface(interface)(
self, interface_name
)
if interface_name.startswith(decoded_destination):
setattr(
self,
interface_name[len(decoded_destination) + 1 :],
self._interfaces[interface_name],
)
elif interface_name == "org.freedesktop.DBus.Properties":
self.Properties = self._interfaces[interface_name]