Skip to content

Commit 396e0b0

Browse files
authored
Merge pull request #711 from powerapi-ng/refactor/actor-type-checking-imports
refactor(handler): Prevent circular imports with type hints
2 parents b692355 + c96221c commit 396e0b0

File tree

3 files changed

+26
-7
lines changed

3 files changed

+26
-7
lines changed

src/powerapi/actor/actor.py

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,20 +27,27 @@
2727
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
2828
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
2929

30+
from __future__ import annotations
31+
3032
import logging
31-
import signal
3233
import multiprocessing
34+
import signal
3335
import sys
3436
import traceback
37+
from typing import TYPE_CHECKING
38+
3539
import setproctitle
3640

41+
from powerapi.actor.message import PoisonPillMessage
3742
from powerapi.exception import PowerAPIExceptionWithMessage, UnknownMessageTypeException
38-
from powerapi.actor.message import PoisonPillMessage, Message
39-
from powerapi.handler import HandlerException, Handler
40-
43+
from powerapi.handler import HandlerException
4144
from .socket_interface import SocketInterface
4245
from .state import State
4346

47+
if TYPE_CHECKING:
48+
from powerapi.actor.message import Message
49+
from powerapi.handler import Handler
50+
4451

4552
class InitializationException(PowerAPIExceptionWithMessage):
4653
"""

src/powerapi/actor/state.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,16 @@
2727
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
2828
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
2929

30+
from __future__ import annotations
31+
32+
from typing import TYPE_CHECKING
33+
3034
from powerapi.actor.supervisor import Supervisor
3135
from powerapi.exception import UnknownMessageTypeException
32-
from powerapi.handler import Handler
33-
from powerapi.actor.message import Message
36+
37+
if TYPE_CHECKING:
38+
from powerapi.handler import Handler
39+
from powerapi.actor.message import Message
3440

3541

3642
class State:

src/powerapi/handler/handler.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,14 @@
2727
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
2828
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
2929

30+
from __future__ import annotations
31+
32+
from typing import TYPE_CHECKING
33+
3034
from powerapi.exception import PowerAPIException, UnknownMessageTypeException
31-
from powerapi.actor.message import Message
35+
36+
if TYPE_CHECKING:
37+
from powerapi.actor.message import Message
3238

3339

3440
class HandlerException(PowerAPIException):

0 commit comments

Comments
 (0)