From b3c7d5139d4cfa5bcea2435b6acdb6e1e059ceb4 Mon Sep 17 00:00:00 2001 From: "J. Nick Koston" Date: Fri, 9 Dec 2022 09:16:04 -1000 Subject: [PATCH] feat: avoid enum dunder overhead in message_bus calls (#187) --- src/dbus_fast/aio/message_bus.py | 6 +++--- src/dbus_fast/aio/proxy_object.py | 4 +++- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/dbus_fast/aio/message_bus.py b/src/dbus_fast/aio/message_bus.py index c05dc0a4..33c6570c 100644 --- a/src/dbus_fast/aio/message_bus.py +++ b/src/dbus_fast/aio/message_bus.py @@ -3,7 +3,6 @@ import logging import socket import sys -import traceback from collections import deque from copy import copy from typing import Any, Optional @@ -14,7 +13,6 @@ from asyncio import timeout as asyncio_timeout from .. import introspection as intr -from .._private.unmarshaller import Unmarshaller from ..auth import Authenticator, AuthExternal from ..constants import ( BusType, @@ -31,6 +29,8 @@ from .message_reader import build_message_reader from .proxy_object import ProxyObject +NO_REPLY_EXPECTED_VALUE = MessageFlag.NO_REPLY_EXPECTED.value + def _future_set_exception(fut: asyncio.Future, exc: Exception) -> None: if fut is not None and not fut.done(): @@ -351,7 +351,7 @@ async def call(self, msg: Message) -> Optional[Message]: - :class:`Exception` - If a connection error occurred. """ if ( - msg.flags & MessageFlag.NO_REPLY_EXPECTED + msg.flags.value & NO_REPLY_EXPECTED_VALUE or msg.message_type is not MessageType.METHOD_CALL ): await self.send(msg) diff --git a/src/dbus_fast/aio/proxy_object.py b/src/dbus_fast/aio/proxy_object.py index 83c446b8..35f1ddbc 100644 --- a/src/dbus_fast/aio/proxy_object.py +++ b/src/dbus_fast/aio/proxy_object.py @@ -14,6 +14,8 @@ if TYPE_CHECKING: from .message_bus import MessageBus as AioMessageBus +NO_REPLY_EXPECTED_VALUE = MessageFlag.NO_REPLY_EXPECTED.value + class ProxyInterface(BaseProxyInterface): """A class representing a proxy to an interface exported on the bus by @@ -100,7 +102,7 @@ async def method_fn( ) ) - if flags & MessageFlag.NO_REPLY_EXPECTED: + if flags is not None and flags.value & NO_REPLY_EXPECTED_VALUE: return None BaseProxyInterface._check_method_return(msg, intr_method.out_signature)