from typing import Literal 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, ) -> Literal[False]: # should return true here, but cannot override return False