Apparently the "exceptions" name is already used for another module.
There's no reason to have asserts thrown around in the source code like that. This replaces some of them with an AddressException and a new file called "exceptions.py" to store the exception definitions.