← Files AgentBrokoARCHIVED FILE

.venv/Lib/site-packages/eth_hash/backends/auto.py

734 Bytes · Sep 30, 2026 · 23:15 UTC

↓ Download file

from eth_hash.abc import (
    BackendAPI,
    PreImageAPI,
)
from eth_hash.utils import (
    auto_choose_backend,
)


class AutoBackend(BackendAPI):
    def _initialize(self) -> None:
        backend = auto_choose_backend()
        # Use setattr to circumvent mypy's confusion, see:
        # https://github.com/python/mypy/issues/2427
        setattr(self, "keccak256", backend.keccak256)  # noqa: B010
        setattr(self, "preimage", backend.preimage)  # noqa: B010

    def keccak256(self, in_data: bytearray | bytes) -> bytes:
        self._initialize()
        return self.keccak256(in_data)

    def preimage(self, in_data: bytearray | bytes) -> PreImageAPI:
        self._initialize()
        return self.preimage(in_data)

SHA-256: df599c8cc710d302b54503760d1266f828cdc54de48d9d91b231cfc10a737251