Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-04-28 07:12:52

0001 """ePIC environment configuration utilities."""
0002 
0003 from typing import Optional
0004 from pydantic import BaseModel
0005 from pathlib import Path
0006 import os
0007 
0008 
0009 class EpicConfiguration(BaseModel):
0010     """ePIC-specific environment configuration.
0011     
0012     Manages ePIC detector environment variables including singularity image,
0013     installation paths, and EIC reconstruction settings.
0014     
0015     Attributes:
0016         singularity_image: Path to the EIC shell singularity image
0017         epic_install: Optional path to ePIC installation directory
0018         eic_recon_install: Optional path to EIC reconstruction installation
0019         eic_shell: Optional override for singularity shell environment variable
0020         eic_recon: Optional override for EIC reconstruction command
0021     """
0022     singularity_image: str
0023     epic_install: Optional[str] = None
0024     eic_recon_install: Optional[str] = None
0025     eic_shell: Optional[str] = None
0026     eic_recon: Optional[str] = None
0027 
0028     def activate(self) -> None:
0029         """Activate ePIC environment variables and print a summary."""
0030         if self.epic_install:
0031             os.environ["EPIC_INSTALL"] = self.epic_install
0032             if not self.eic_recon_install:
0033                 self.eic_recon_install = str(Path(self.epic_install) / "local")
0034         if self.eic_recon_install:
0035             os.environ["EIC_RECON_INSTALL"] = self.eic_recon_install
0036         if self.singularity_image:
0037             os.environ["EIC_SHELL"] = self.singularity_image
0038         if self.eic_recon:
0039             os.environ["EIC_RECON"] = self.eic_recon
0040 
0041         print("[INFO] ePIC environment variables set:")
0042         for var in ["EPIC_INSTALL", "EIC_RECON_INSTALL", "EIC_SHELL", "EIC_RECON"]:
0043             if var in os.environ:
0044                 print(f"  {var} = {os.environ[var]}")