from __future__ import annotations
from typing import  TYPE_CHECKING
from zempy.zosapi.analysis.fftpsf.psf_settings import PSFSettings
from zempy.zosapi.analysis.adapters.analysis_base import AnalysisBase
from zempy.zosapi.analysis.enums.analysisIDM import AnalysisIDM

if TYPE_CHECKING:
    from zempy.zosapi.system.protocols.IOpticalSystem import IOpticalSystem

class FFTPSF(AnalysisBase):
    def __init__(self, system : IOpticalSystem):
        super().__init__(system, AnalysisIDM.FftPsf)

    def _init_settings(self) -> PSFSettings:
        return PSFSettings.from_analysis(self.analysis)

    def __str__(self) -> str:
        return f"FFT PSF settings={self.analysis}"


