It's better to raise an Exception than an assert in this code base.  Asserts can be optimized out by the interpreter and should rarely be used.  Exceptions are always raised and can be caught/handled higher in the code.  That said, I don't have strong feelings about this.