I've just finished rewriting my PID temperature control package in
pure-Python, and it's now clean enough to go up on PyPI. Features:

Backend-agnostic architecture. I've written a first-order process
with dead time (FOPDT) test backend and a pymodbus-based backend
for our Melcor MTCA controller, but it should be easy to plug in
your own custom backend.

The general PID controller will automatically tune your backend
using any of a variety of tuning rules.