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 torch
 
 
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)