diff --git a/horde_worker_regen/process_management/horde_process.py b/horde_worker_regen/process_management/horde_process.py index 28a89610..ed416393 100644 --- a/horde_worker_regen/process_management/horde_process.py +++ b/horde_worker_regen/process_management/horde_process.py @@ -5,7 +5,11 @@ import time from abc import abstractmethod from enum import auto -from multiprocessing.connection import PipeConnection + +try: + from multiprocessing.connection import PipeConnection as Connection +except ImportError: + from multiprocessing.connection import Connection # type: ignore from multiprocessing.synchronize import Lock from typing import TYPE_CHECKING @@ -41,7 +45,7 @@ class HordeProcess(abc.ABC): """The type of process. This distinguishes between inference, safety, and potentially other process types.""" process_message_queue: ProcessQueue """The queue the main process uses to receive messages from all worker processes.""" - pipe_connection: PipeConnection # FIXME # TODO - this could be a Queue? + pipe_connection: Connection # FIXME # TODO - this could be a Queue? """Receives `HordeControlMessage`s from the main process.""" disk_lock: Lock @@ -76,7 +80,7 @@ def __init__( self, process_id: int, process_message_queue: ProcessQueue, - pipe_connection: PipeConnection, + pipe_connection: Connection, disk_lock: Lock, ) -> None: self.process_id = process_id diff --git a/horde_worker_regen/process_management/inference_process.py b/horde_worker_regen/process_management/inference_process.py index 88ecf28d..458b75f0 100644 --- a/horde_worker_regen/process_management/inference_process.py +++ b/horde_worker_regen/process_management/inference_process.py @@ -6,7 +6,11 @@ import io import time from enum import auto -from multiprocessing.connection import PipeConnection + +try: + from multiprocessing.connection import PipeConnection as Connection +except ImportError: + from multiprocessing.connection import Connection # type: ignore from multiprocessing.synchronize import Lock, Semaphore from typing import TYPE_CHECKING @@ -63,7 +67,7 @@ def __init__( self, process_id: int, process_message_queue: ProcessQueue, - pipe_connection: PipeConnection, + pipe_connection: Connection, inference_semaphore: Semaphore, disk_lock: Lock, ) -> None: diff --git a/horde_worker_regen/process_management/safety_process.py b/horde_worker_regen/process_management/safety_process.py index 5bdd7f5b..bfc6bd8c 100644 --- a/horde_worker_regen/process_management/safety_process.py +++ b/horde_worker_regen/process_management/safety_process.py @@ -3,7 +3,11 @@ import time from enum import auto from io import BytesIO -from multiprocessing.connection import PipeConnection + +try: + from multiprocessing.connection import PipeConnection as Connection +except ImportError: + from multiprocessing.connection import Connection # type: ignore from multiprocessing.synchronize import Lock import PIL @@ -50,7 +54,7 @@ def __init__( self, process_id: int, process_message_queue: ProcessQueue, - pipe_connection: PipeConnection, + pipe_connection: Connection, disk_lock: Lock, ) -> None: super().__init__(process_id, process_message_queue, pipe_connection, disk_lock) diff --git a/horde_worker_regen/process_management/worker_entry_points.py b/horde_worker_regen/process_management/worker_entry_points.py index daabc8e9..7551f219 100644 --- a/horde_worker_regen/process_management/worker_entry_points.py +++ b/horde_worker_regen/process_management/worker_entry_points.py @@ -1,5 +1,9 @@ import contextlib -from multiprocessing.connection import PipeConnection + +try: + from multiprocessing.connection import PipeConnection as Connection +except ImportError: + from multiprocessing.connection import Connection # type: ignore from multiprocessing.synchronize import Lock, Semaphore from loguru import logger @@ -12,7 +16,7 @@ def start_inference_process( process_id: int, process_message_queue: ProcessQueue, - pipe_connection: PipeConnection, + pipe_connection: Connection, inference_semaphore: Semaphore, disk_lock: Lock, ) -> None: @@ -30,7 +34,7 @@ def start_inference_process( def start_safety_process( process_id: int, process_message_queue: ProcessQueue, - pipe_connection: PipeConnection, + pipe_connection: Connection, disk_lock: Lock, ) -> None: worker_process = HordeSafetyProcess(