On Feb 11, 2009, at 2:58 PM, Florent Hivert wrote:

>       Dear All,
>
>    The patch is close to be ready to submission. However I'm not  
> sure if the
> two last answer was from this mail or another one.
>
>> As you suggested in your previous e-mail, there is a last chance  
>> that can save
>> us: what about creating a new exception say MatrixFormatError  
>> which inherits
>> both ArithmeticError and ValueError. It has the advantage of  
>> preserving the
>> backward compatibility, to be explicit, and if needed one can  
>> later on issue a
>> deprecation warning and remove the inheritance from ArithmeticError.
>>
>> class MatrixFormatError(ArithmeticError, ValueError):
>>     def __init__(self, value):
>>         self.value = value
>>     def __str__(self):
>>         return repr(self.value)+"(Warning: the inheritance of  
>> MatrixFormatError from AritmeticError is deprecated)"
>>
>> But it's probably not worth it... What do you think ?        
>
>    I had a (visual) chat with Nicolas on that point, and I end up  
> with a
> better proposal. There are a lot of places trough sage where two  
> size has to
> match. Here are some examples:
>  - the number of row and column of one or two matrix(ces) for  
> multiplication,
>  inversion, determinant, characteristic polynomial...
>  - the number of row and column and the number of variables of a  
> polynomial
>  when a matrix acts on polynomials.
>  - the size of two permutations to multiply them.
>  - The size of a permutations and the number of variable of a  
> polynomial.
>  ...
>
> It seems that all those case are similar and should raise an specific
> error. Maybe a SizeMismatchError. We should use the previous trick of
> inheriting both from ArithmeticError and Value error to temporarily  
> assure
> backward compatibility. And change the thing definitely during a X. 
> 0 release
> as suggested by Martin.
>
> I can also put my patch as such (only raise Arithmetic Error for  
> matrices) and
> prepare another one for the next X.0 release.

I would rather just raise an arithmetic error (which seems more  
appropriate than a ValueError) rather than creating a new one, unless  
there's a clear benifit to making a specific SizeMismatchError.

- Robert



--~--~---------~--~----~------------~-------~--~----~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to 
sage-devel-unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~----------~----~----~----~------~----~------~--~---

Reply via email to