def finish(self, require_x=False): """Try to set self.object from init's parameters""" item = None if self.init_item: item = self.init_item else: # Construct an AppInfo item from either path or item_id from gio.unix import DesktopAppInfo, desktop_app_info_new_from_filename if self.init_path and (not require_x or os.access(self.init_path, os.X_OK)): # serilizable if created from a "loose file" self.serializable = 1 item = desktop_app_info_new_from_filename(self.init_path) elif self.init_item_id: try: item = DesktopAppInfo(self.init_item_id) except RuntimeError: pretty.print_debug(__name__, "Application not found:", self.init_item_id) self.object = item if not self.object: raise InvalidDataError
def __init__(self, dbus_obj): self._dbus_obj = dbus_obj entry = self.get_root_property('DesktopEntry') # TODO: handle case of absent DesktopEntry (DesktopEntry is optional according to MPRIS2) self.desktop_app_info = DesktopAppInfo(entry + '.desktop')