fix: Update @method decorators and type hints for dbus-next compatibility

Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
This commit is contained in:
2025-12-30 19:43:11 +00:00
parent de774ccf56
commit 865f010f75

32
main.py
View File

@@ -28,46 +28,46 @@ class Agent(ServiceInterface):
def __init__(self, interface_name): def __init__(self, interface_name):
super().__init__(interface_name) super().__init__(interface_name)
@method() @method
def Release(self): def Release(self):
logging.info('Agent Released') logging.info('Agent Released')
@method(in_signature='o', out_signature='s') @method
def RequestPinCode(self, device: 'o') -> 's': def RequestPinCode(self, device: str) -> str:
logging.info(f"RequestPinCode for {device}, returning static PIN") logging.info(f"RequestPinCode for {device}, returning static PIN")
return "0000" return "0000"
@method(in_signature='o', out_signature='u') @method
def RequestPasskey(self, device: 'o') -> 'u': def RequestPasskey(self, device: str) -> int:
logging.info(f"RequestPasskey for {device}") logging.info(f"RequestPasskey for {device}")
return 0 return 0
@method(in_signature='ouq', out_signature='') @method
def DisplayPasskey(self, device: 'o', passkey: 'u', entered: 'q'): def DisplayPasskey(self, device: str, passkey: int, entered: int):
logging.info(f"DisplayPasskey for {device}: {passkey}") logging.info(f"DisplayPasskey for {device}: {passkey}")
@method(in_signature='os', out_signature='') @method
def DisplayPinCode(self, device: 'o', pincode: 's'): def DisplayPinCode(self, device: str, pincode: str):
logging.info(f"DisplayPinCode for {device}: {pincode}") logging.info(f"DisplayPinCode for {device}: {pincode}")
@method(in_signature='ou', out_signature='') @method
def RequestConfirmation(self, device: 'o', passkey: 'u'): def RequestConfirmation(self, device: str, passkey: int):
logging.info(f"RequestConfirmation for {device} with passkey {passkey}") logging.info(f"RequestConfirmation for {device} with passkey {passkey}")
# Automatically confirm and trust # Automatically confirm and trust
loop = asyncio.get_event_loop() loop = asyncio.get_event_loop()
loop.create_task(trust_and_connect_device(device)) loop.create_task(trust_and_connect_device(device))
@method(in_signature='o', out_signature='') @method
def RequestAuthorization(self, device: 'o'): def RequestAuthorization(self, device: str):
logging.info(f"RequestAuthorization for {device}") logging.info(f"RequestAuthorization for {device}")
pass pass
@method(in_signature='os', out_signature='') @method
def AuthorizeService(self, device: 'o', uuid: 's'): def AuthorizeService(self, device: str, uuid: str):
logging.info(f"AuthorizeService for {device} with uuid {uuid}") logging.info(f"AuthorizeService for {device} with uuid {uuid}")
pass pass
@method() @method
def Cancel(self): def Cancel(self):
logging.info('Pairing Cancelled') logging.info('Pairing Cancelled')