from finesse.model import Node from finesse.components.general import borrows_nodes from finesse.components.readout import ReadoutDC from finesse.detectors.general import MaskedDetector @borrows_nodes() class MaskedReadoutDC(ReadoutDC, MaskedDetector): def __init__( self, name: str, optical_node: Node, *, output_detectors: bool = False, pdtype: None | str | dict[str, str] = None, ): super().__init__( name, optical_node, output_detectors=output_detectors, pdtype=pdtype, ) MaskedDetector.__init__(self, name) @property def has_mask(self) -> int: return len(self.mask)