Python 3 syntax error question

Noah Hall enalicho at gmail.com
Sun Jun 26 11:32:27 EDT 2011


On Sun, Jun 26, 2011 at 4:28 PM, rzed <rzantow at gmail.com> wrote:
> steve+comp.lang.python at pearwood.info wrote in
> news:4e074768$0$29982$c3e8da3$5496439d at news.astraweb.com:
>
>> rzed wrote:
>>
>>> I've tried to install PySVG in a Python 3 setting, and I get a
>>> few errors on the build. Most are easy to fix, but this one I
>>> can't explain or fix:
>>>
>>> <error>
>>> Traceback (most recent call last):
>>>   File "<stdin>", line 1, in <module>
>>>   File "builders.py", line 12, in <module>
>>>     from pysvg.shape import *
>>>   File "C:\Python32\lib\site-packages\pysvg\shape.py", line 91
>>>     def moveToPoint(self,(x,y)):
>>>                          ^
>>> SyntaxError: invalid syntax
>>> </error>
>>
>> Function signatures with automatic tuple-unpacking are no longer
>> allowed in Python3. So functions or methods like this:
>>
>> def moveToPoint(self,(x,y)):
>>
>> have to be re-written with the tuple unpacking moved into the
>> body of the function, e.g. something like this:
>>
>> def moveToPoint(self, x_y):
>>     x, y = x_y
>>
>>
>> Are you aware that you're trying to install a Python2 library
>> under Python3?
>>
>>
>
> Thank you all for your responses. Yes, I am aware of the version
> difference, but not of all the implications of that. I will run this
> through 2to3, but even without doing that, there are only about four
> syntax errors, and the others were obvious and easily corrected.
>
> There does not seem to be a Py3 version of this package. I was hoping
> to try it to see what broke. Well, I found out at least part of that,
> didn't I?
>
> I was not aware of the removal of tuple-unpacking. I expect there was
> some extensive conversation about that.
>
> As to 2to3, I have to say that:
>
> -def a(b, (c,d)):
> +def a(b, xxx_todo_changeme):
> +    (c,d) = xxx_todo_changeme
>
> ... is not terribly revealing if one is unaware of what about it
> needs changing. I know, I know: RTFM....

It means delete every line with a '-' and replace them with those next
to the '+'
Of course, if you read the doc, it'll give you lots of different
options, including writing to the file, so all you need to do is
change the variable names.



More information about the Python-list mailing list