On Tue, Feb 8, 2011 at 8:22 PM, Aaron S. Meurer <asmeu...@gmail.com> wrote: > I am trying to create a branch that backports all of my non-Risch Algorithm > commits from my integration3 branch. One commit, > https://github.com/asmeurer/sympy/commit/846af4a187800a97520d771dc9e1223c2c16a11a, > which is related to http://code.google.com/p/sympy/issues/detail?id=1991, > changes the exceptions in the code of matrices.py a little bit. I am not so > sure now what the best way to have things is, though. > > Currently, there is a MatrixError exception, which is only used in one place > in matrices.py, and there I believe ShapeError should be used instead. All > over the code there is "assert self.cols == self.rows". I have replaced all > of these with NonSquareMatrixError, which I for some reason have renamed > NonSquareMatrixException to. So my questions are: > > 1. Should we have MatrixError, and if so, how should it be structured? > > 2. Should it be called NonSquareMatrixError or NonSquareMatrixException? It > is raised in those cases where only a square matrix makes sense but a > non-square matrix was given (like Matrix.det()). > > The current structure of the exceptions is > > class NonSquareMatrixException(Exception): > pass > > class ShapeError(ValueError): > """Wrong matrix shape""" > pass > > class MatrixError(Exception): > pass > > but I think it should be more like > > class MatrixError(Exception): > """ > If this is never raised directly, is it needed? > """ > pass > > class ShapeError(ValueError, MatrixError): > """Wrong matrix shape""" > pass > > class NonSquareMatrixException(ShapeError): > pass
This new approach looks ok to me. Ondrej -- You received this message because you are subscribed to the Google Groups "sympy" group. To post to this group, send email to sympy@googlegroups.com. To unsubscribe from this group, send email to sympy+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sympy?hl=en.