This is a pure python keccak implementation that I wrote for educational purposes. It is not optimised, nor especially well documented. But it does pass all the test vectors, and is moderately readable.
It has a hashlib-compatible interface at the top-level.
While Keccak eventually became SHA3, it underwent some incompatible changes in the process. Therefore, this library is not compatible with SHA3.