Source code for qkdsec.proofs.channels.base

from abc import ABC, abstractmethod


[docs] class Channel(ABC):
[docs] @abstractmethod def expectations(self) -> dict[str, float]: ...
[docs] def single_photon_yield(self) -> float: return 1.0
[docs] def total_yield(self) -> float: return self.single_photon_yield()
[docs] def total_qber(self) -> float: zz = self.expectations()["ZZ"] return (1.0 - zz) / 2.0