I find it a bit tedious and error-prone to do auto-detection of these formats by hand, than select the right package and deal with its respective API which is always slightly different from the others'.
Is there a unified API package that works with all these formats? It should need a minimum of additional packages to be installed and should be able to read archived file from the stream (without the need for real temporary files). I've seen pyunpack. The problem I see with it is that it only unpacks and relies on external, non-Python tools. Is there a good alternative?