chaotic_pfc.comms.protocols

Structural contracts for the communication pipeline.

Each Protocol defines the interface that a concrete module (chaotic_pfc.comms.transmitter, channel, receiver) is expected to satisfy. They serve as self-documenting contracts that codify the pipeline’s data flow: transmitter → channel → receiver.

The **kwargs: Any signature is intentionally loose — each concrete function has its own keyword parameters (mu, a, b, cutoff, etc.) and the Protocols do not attempt to enumerate them all. This means mypy does not verify argument-level compatibility, but the Protocols still serve as readable contracts for developers.

Usage:

from chaotic_pfc.comms.protocols import Transmitter
from chaotic_pfc.comms.transmitter import transmit

tx: Transmitter = transmit  # documents intent; mypy checks return type

Classes

Channel(*args, **kwargs)

Any callable that propagates a signal through a transmission medium.

Receiver(*args, **kwargs)

Any callable that recovers a message from a received chaotic signal.

Transmitter(*args, **kwargs)

Any callable that encodes a message into a chaotic carrier signal.

class chaotic_pfc.comms.protocols.Transmitter(*args, **kwargs)[source]

Bases: Protocol

Any callable that encodes a message into a chaotic carrier signal.

class chaotic_pfc.comms.protocols.Channel(*args, **kwargs)[source]

Bases: Protocol

Any callable that propagates a signal through a transmission medium.

class chaotic_pfc.comms.protocols.Receiver(*args, **kwargs)[source]

Bases: Protocol

Any callable that recovers a message from a received chaotic signal.