[Python API] db.is_installed_flatpak/snap always returns false
db.is_installed_flatpak(i.get_name()) and db.is_installed_snap(i.get_name()) always returns false with package installed or not.
import gi
gi.require_version('Pamac', '11')
from gi.repository import GLib, Pamac
loop = GLib.MainLoop()
config = Pamac.Config(conf_path="/etc/pamac.conf")
db = Pamac.Database(config=config)
transaction = Pamac.Transaction(database=db)
data = None
def on_emit_action(transaction, action, data):
print(action)
def on_emit_action_progress(transaction, action, status, progress, data):
print(f"{action} {status} {progress}")
def on_emit_hook_progress(transaction, action, details, status, progress, data):
print(f"{action} {details} {status} {progress}")
def on_emit_warning(transaction, message, data):
print(message)
def on_emit_error(transaction, message, details, details_length, data):
if details_length > 0:
print(f"{message}:")
for detail in details:
print(detail)
else:
print(message)
transaction.connect("emit-action", on_emit_action, data)
transaction.connect("emit-action-progress", on_emit_action_progress, data)
transaction.connect("emit-hook-progress", on_emit_hook_progress, data)
transaction.connect("emit-error", on_emit_error, data)
transaction.connect("emit-warning", on_emit_warning, data)
def on_transaction_finished_callback(source_object, result, user_data):
try:
success = source_object.run_finish(result)
except GLib.GError as e:
print("Error: ", e.message)
else:
print("Success :", success)
finally:
loop.quit()
transaction.quit_daemon()
def run_transaction():
def search_flatpaks(pkg: str) -> list:
pkgs = []
def callback(source_object, result):
try:
flatpaks = source_object.search_flatpaks_finish(result)
except GLib.GError as e:
print("Error: ", e.message)
else:
for pkg in flatpaks:
pkgs.append(pkg)
finally:
loop.quit()
db.search_flatpaks_async(pkg, callback)
loop.run()
return pkgs
p = search_flatpaks("gimp")
for i in p:
print(db.is_installed_flatpak(i.get_name()))
transaction.add_flatpak_to_install(i)
transaction.run_async(on_transaction_finished_callback, None)
loop.run()
run_transaction()