Consider refactoring _parse_request
Entity._parse_request can possibly raise a wide range of Exceptions (ValueError, TypeError, OSError, IncorrectlySigned, UnravelError) and return None on top of that.
None of the exceptions are caught and all propagate which is not a nice behaviour. It would probably make sense to catch these errors and rethrow a specific one so the catching is easier. Also the None return value is not documented.
Relevant code
I agree, it's difficult to handle correctly all errors, you need to override classes / methods. Maybe the method could return some data structure containing a list of errors and other info.
@tpazderka probably we should start from a unit test that expose to us all the possible exception, it would be also a proof of a the inescapability of this necessary expedient.
+1