The issue there is with the printer, not the object. You can see that
the object is find by looking at .args.

I guess you can create your own custom printer for the object. We
could also fix this upstream.

Aaron Meurer

On Sat, Oct 12, 2013 at 3:29 AM, Ben Lucato <[email protected]> wrote:
> Interestingly, with noevalMul:
>
> noevalMul(2, 3)
>>>> 2*3
>
> noevalMul(-2, 3)
>>>> -6
>
>
> occurs because of some combination of "as_coeff_Mul" and "_keep_coeff", and
> the SymPy printer calls the "_keep_coeff" owned by Mul, not noevalMul, so
> I'm not sure how to override this behaviour in noevalMul.
>
>
>
> On 12 October 2013 01:21, Ben Lucato <[email protected]> wrote:
>>
>> This is awesome!!! Your simple fix with overriding flatten() works
>> perfectly. My last question is -- how do you do the same thing with Pow? It
>> is subclassed differently to Add, Mul (which both subclass "AssocOp").
>> I have taken a look at the source code (go me!!!) - it seems that in this
>> case, because Pow is defined like this:
>>
>> "def __new__(cls, b, e, evaluate=True):
>> b = _sympify(b) e = _sympify(e) if evaluate: if e is S.Zero: return S.One
>> elif e is S.One: return b else: obj = b._eval_power(e) if obj is not None:
>> return obj obj = Expr.__new__(cls, b, e) obj.is_commutative =
>> (b.is_commutative and e.is_commutative) return obj"
>>
>>
>> So it seems a change to __new__ is necessary, right? It looks like
>> evaluate=False is not even supported for Pow - am I right? (just a noob
>> asking questions)
>>
>> Thanks!!
>
>
>
>
> --
>
>
> Ben Lucato
> ----------------------------------------------------------------------------------
> Phone: +61 400 159 632 | Email: [email protected]
>
> --
> You received this message because you are subscribed to the Google Groups
> "sympy" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To post to this group, send email to [email protected].
> Visit this group at http://groups.google.com/group/sympy.
> For more options, visit https://groups.google.com/groups/opt_out.

-- 
You received this message because you are subscribed to the Google Groups 
"sympy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sympy.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to