RyZ commited on
Commit ·
6ace378
1
Parent(s): 4c21e13
fix: lazy import GANVGTLNetService and NumbaVGTLNetPreprocessor to avoid module-level torch import
Browse files
src/domain/interfaces/services/vgtlnet_preprocessor.py
CHANGED
|
@@ -8,7 +8,9 @@ from __future__ import annotations
|
|
| 8 |
|
| 9 |
from abc import ABC, abstractmethod
|
| 10 |
import numpy as np
|
| 11 |
-
import
|
|
|
|
|
|
|
| 12 |
|
| 13 |
class VGTLNetSignalPreprocessor(ABC):
|
| 14 |
"""
|
|
|
|
| 8 |
|
| 9 |
from abc import ABC, abstractmethod
|
| 10 |
import numpy as np
|
| 11 |
+
from typing import TYPE_CHECKING
|
| 12 |
+
if TYPE_CHECKING:
|
| 13 |
+
import torch
|
| 14 |
|
| 15 |
class VGTLNetSignalPreprocessor(ABC):
|
| 16 |
"""
|
src/interface/api/dependencies.py
CHANGED
|
@@ -33,11 +33,9 @@ from src.infrastructure.database.repositories.prediction_repository import (
|
|
| 33 |
SQLAlchemyPredictionRepository,
|
| 34 |
)
|
| 35 |
from src.infrastructure.messaging.rabbitmq_broker import RabbitMQBroker
|
| 36 |
-
from src.infrastructure.model.gan_vgtlnet_service import GANVGTLNetService
|
| 37 |
from src.infrastructure.model.mock_model_service import MockModelService
|
| 38 |
from src.infrastructure.processing.scipy_signal_processor import ScipySignalProcessor
|
| 39 |
from src.infrastructure.processing.scipy_cardiogan_preprocessor import SciPyCardioGANPreprocessor
|
| 40 |
-
from src.infrastructure.processing.numba_vgtlnet_preprocessor import NumbaVGTLNetPreprocessor
|
| 41 |
from src.shared.config import get_settings
|
| 42 |
from src.shared.logger import get_logger
|
| 43 |
|
|
@@ -77,6 +75,9 @@ def get_model_service() -> ModelService:
|
|
| 77 |
return MockModelService()
|
| 78 |
else:
|
| 79 |
logger.info("ModelService: using GANVGTLNetService (USE_MOCK_MODEL=false)")
|
|
|
|
|
|
|
|
|
|
| 80 |
gan_prep = SciPyCardioGANPreprocessor()
|
| 81 |
vgtl_prep = NumbaVGTLNetPreprocessor()
|
| 82 |
return GANVGTLNetService(gan_preprocessor=gan_prep, vgtlnet_preprocessor=vgtl_prep)
|
|
|
|
| 33 |
SQLAlchemyPredictionRepository,
|
| 34 |
)
|
| 35 |
from src.infrastructure.messaging.rabbitmq_broker import RabbitMQBroker
|
|
|
|
| 36 |
from src.infrastructure.model.mock_model_service import MockModelService
|
| 37 |
from src.infrastructure.processing.scipy_signal_processor import ScipySignalProcessor
|
| 38 |
from src.infrastructure.processing.scipy_cardiogan_preprocessor import SciPyCardioGANPreprocessor
|
|
|
|
| 39 |
from src.shared.config import get_settings
|
| 40 |
from src.shared.logger import get_logger
|
| 41 |
|
|
|
|
| 75 |
return MockModelService()
|
| 76 |
else:
|
| 77 |
logger.info("ModelService: using GANVGTLNetService (USE_MOCK_MODEL=false)")
|
| 78 |
+
from src.infrastructure.model.gan_vgtlnet_service import GANVGTLNetService
|
| 79 |
+
from src.infrastructure.processing.numba_vgtlnet_preprocessor import NumbaVGTLNetPreprocessor
|
| 80 |
+
|
| 81 |
gan_prep = SciPyCardioGANPreprocessor()
|
| 82 |
vgtl_prep = NumbaVGTLNetPreprocessor()
|
| 83 |
return GANVGTLNetService(gan_preprocessor=gan_prep, vgtlnet_preprocessor=vgtl_prep)
|