From b15cb117567d351d0add0a803c122fef3706d4ca Mon Sep 17 00:00:00 2001 From: Guillaume Fieni Date: Mon, 3 Nov 2025 19:50:52 +0100 Subject: [PATCH 1/2] refactor(actor): Guard type hints imports with `TYPE_CHECKING` --- src/powerapi/actor/actor.py | 13 +++++++++---- src/powerapi/actor/state.py | 8 ++++++-- 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/src/powerapi/actor/actor.py b/src/powerapi/actor/actor.py index 278cd13a..403ee811 100644 --- a/src/powerapi/actor/actor.py +++ b/src/powerapi/actor/actor.py @@ -28,19 +28,24 @@ # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. import logging -import signal import multiprocessing +import signal import sys import traceback +from typing import TYPE_CHECKING + import setproctitle +from powerapi.actor.message import PoisonPillMessage from powerapi.exception import PowerAPIExceptionWithMessage, UnknownMessageTypeException -from powerapi.actor.message import PoisonPillMessage, Message -from powerapi.handler import HandlerException, Handler - +from powerapi.handler import HandlerException from .socket_interface import SocketInterface from .state import State +if TYPE_CHECKING: + from powerapi.actor.message import Message + from powerapi.handler import Handler + class InitializationException(PowerAPIExceptionWithMessage): """ diff --git a/src/powerapi/actor/state.py b/src/powerapi/actor/state.py index e174bfb3..8507deef 100644 --- a/src/powerapi/actor/state.py +++ b/src/powerapi/actor/state.py @@ -27,10 +27,14 @@ # OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +from typing import TYPE_CHECKING + from powerapi.actor.supervisor import Supervisor from powerapi.exception import UnknownMessageTypeException -from powerapi.handler import Handler -from powerapi.actor.message import Message + +if TYPE_CHECKING: + from powerapi.handler import Handler + from powerapi.actor.message import Message class State: From 0064a3008ee04132e138f1f335a68e4548f277ad Mon Sep 17 00:00:00 2001 From: Guillaume Fieni Date: Mon, 3 Nov 2025 19:53:36 +0100 Subject: [PATCH 2/2] refactor(handler): Guard type hints imports with `TYPE_CHECKING` --- src/powerapi/handler/handler.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/powerapi/handler/handler.py b/src/powerapi/handler/handler.py index c99be3a3..be7d6f47 100644 --- a/src/powerapi/handler/handler.py +++ b/src/powerapi/handler/handler.py @@ -27,8 +27,12 @@ # OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +from typing import TYPE_CHECKING + from powerapi.exception import PowerAPIException, UnknownMessageTypeException -from powerapi.actor.message import Message + +if TYPE_CHECKING: + from powerapi.actor.message import Message class HandlerException(PowerAPIException):