The use2to3 script, near the end, prints the following in the latest master:

RefactoringTool: ### In file py3k-sympy/examples/intermediate/sample.py ###
RefactoringTool: Line 78: You should use 'operator.mul(x, numRows, 0)' here.
RefactoringTool: Line 81: You should use 'operator.mul(y, numCols, 1)' here.
RefactoringTool: ### In file py3k-sympy/sympy/integrals/transforms.py ###
RefactoringTool: Line 488: You should use 'operator.mul(True)' here.
RefactoringTool: Line 488: You should use 'operator.mul(False)' here.
RefactoringTool: ### In file py3k-sympy/sympy/physics/mechanics/kane.py ###
RefactoringTool: Line 165: You should use a for loop here
RefactoringTool: Line 187: You should use a for loop here

Now, the last two are
http://code.google.com/p/sympy/issues/detail?id=2936, and I think it's
fine.  My question is about the operator.mul ones.

The respective lines are for sample.py:

78        X = repeat(x, numRows, 0)
81        Y = repeat(y, numCols, 1)

and for transforms.py

488    args = zip(numer, repeat(True)) + zip(denom, repeat(False))

In sample.py, repeat is numpy.repeat(), which repeats elements of an
array.  In transforms.py, repeat() is itertools.repeat(), which
creates an iterator that repeats the same element an arbitrary number
of times (or n times, if a second argument is given, which it's not
here).  This exists in Python 2 and Python 3.

Both of these are left alone by 2to3, except that zip() is wrapped in
list() in the transforms.py one.

Does anyone know what 2to3 means here?  operator.mul() works like
mul(a, b) => a*b.  It takes exactly 2 arguments, which means that both
suggestions could never work.  Is this a bug in 2to3?

Aaron Meurer

-- 
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.

Reply via email to