hydromodpy.solver.base.protocols#

Structural protocols for solver init signatures.

These typing.Protocol classes capture the minimal duck-typed contract historically expressed by object annotations on solver constructors. They are structural (PEP 544) so no concrete class has to inherit from them: any object exposing the listed attributes satisfies the protocol.

Kept attribute typing intentionally loose (Any) to avoid pulling the flow/transport/domain runtime modules into the solver kernel.

Classes

DomainLike(*args, **kwargs)

Catchment domain object passed through solver constructors.

FlowModelLike(*args, **kwargs)

Minimal contract a flow model must satisfy to drive a transport solver.

TransportLike(*args, **kwargs)

Container exposing per-backend transport parameter blocks.