Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-04-27 07:28:14

0001 """ePIC-specific problem configuration models."""
0002 
0003 from typing import Optional
0004 from pydantic import BaseModel
0005 
0006 from aid2e.utilities.configurations.problem_config import ProblemConfiguration
0007 from aid2e.utilities.epic_utils.epic_env_config import EpicConfiguration
0008 from aid2e.utilities.epic_utils.epic_design_config import EpicDesignConfig
0009 
0010 
0011 class EpicProblemConfiguration(ProblemConfiguration):
0012     """Specialized problem configuration for ePIC workflows.
0013 
0014     Inherits from `ProblemConfiguration` and narrows the `design_config` to
0015     `EpicDesignConfig`. Keeps the same validation and path semantics as the
0016     base class while allowing ePIC-specific consumers to rely on a concrete
0017     design configuration type.
0018 
0019     Notes:
0020         - This subclass avoids circular imports by sourcing `EpicConfiguration`
0021           from `epic_env_config` and `EpicDesignConfig` from `epic_design_config`.
0022         - All path validations and environment activation remain in the base
0023           `ProblemConfiguration` logic.
0024     """
0025 
0026     # Narrow type for design_config to EpicDesignConfig for ePIC workflows
0027     design_config: EpicDesignConfig  # type: ignore[assignment]