Performance is -- of course -- poor. Average is about 300 microseconds per clock cycle. Original hardware was 20 microseconds. Doubt there's a 15x speedup in the Python.
There are some obvious overheads.
The log is busy. There are a LOT of object creation that's clearly dumb. The trigger operations are stateless little functions that should be static methods of a class.