Currently imghdr.what() accepts two parameters. The first is a file or filename and the second is a byte stream. If the second is not None, the first is ignored. This is clunky. It would be simpler to accept just one argument, which can be either an open file or a byte stream. I have attached a patch which implements this one argument approach as private function imghdr_what(). I have left imghdr.what() as a wrapper around this new function for backwards compatibility (in the hopes that it will eventually be replaced). In addition, there did not seem to be any tests for the imghdr module, so I added a few simple tests.
imghdr got a test file in 94813eab5a58. Your patch also needs documentation updates. Besides that, +1 from me. Maybe it would be okay to add a deprecation warning for the second argument?