Hi Ronan! On Sun, Jan 17, 2010 at 11:28 AM, Ronan Lamy <[email protected]> wrote: > Happy New Year everyone!
Thanks, you too! And sorry for my late response. > > I met Fabian in Paris 2 weeks ago and we discussed the way forward with > the new assumption system. We agreed that the complexity and size of This is awesome, thanks for meeting with Fabian. > class Basic is a serious roadblock. So the idea is to have Basic deal > only with argument storage and expression manipulation (pattern > matching, substitutions, etc.) and to move everything that requires > arithmetic operations to be defined into a new class - provisionally > named Expr - deriving from Basic. That way, Basic could be defined > without referring to any of its subclasses and the amount of circular > imports could be reduced. What is the advantage of having two classes instead of one? Just so that I understand the motivation better. Essentially you just want to split Basic into two classes, so that each class is simpler to maintain? I am missing why it is a roadblock, but since you both did some work with assumptions already, I guess there is a good reason for that. > > I've started work on this in my github branch split_Basic > [http://github.com/rlamy/sympy/tree/split_Basic] and it has been > surprisingly painless: I didn't need to do much more than move methods > in sympy/core/basic.py and replace most references to Basic with Expr > elsewhere. Once all relevant methods have been pulled from Basic, I'll > move Expr to its own file. There'll be some refactoring of tests to do > and I hope it'll be possible to get full test coverage of Basic without > referring to any subclass. > > I'm waiting for your comments. Let me check the branch and report back soon. Ondrej -- You received this message because you are subscribed to the Google Groups "sympy" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/sympy?hl=en.
