Conversion Issue in Converting code of 2.7 to 3
MRAB
python at mrabarnett.plus.com
Fri Aug 23 22:45:19 EDT 2013
On 24/08/2013 03:10, shankha wrote:
> Hi,
> I am trying to run the following piece of code:
>
> https://greyhat.gatech.edu/wiki/index.php?title=Java_Bytecode_Tutorial/Getting_Started
>
> python Krakatau/assemble.py minimal.j.
>
> The scripts are written for 2.7. I want to convert them to 3.3.
>
> I am struck with the following error:
>
>
>
> []$ python Krakatau/assemble.py minimal.j
> Traceback (most recent call last):
> File "Krakatau/assemble.py", line 4, in <module>
> from Krakatau.assembler import tokenize, parse, assembler
>
>
> File "c:\tmp\ByteCode\Krakatau\Krakatau\assembler\tokenize.py", line 3, in <module>
> from ..classfile import ClassFile
> File "c:\tmp\ByteCode\Krakatau\Krakatau\classfile.py", line 1, in <module>
>
>
> from . import constant_pool, method, field
> File "c:\tmp\ByteCode\Krakatau\Krakatau\constant_pool.py", line 10
> def decodeStr((s,)):
> ^
> SyntaxError: invalid syntax
>
>
>
>
>
> The code where this error originates from:
>
> def decodeStr((s,)):
> return s.replace('\xc0\x80','\0').decode('utf8'),
>
>
>
> I looked athttp://docs.python.org/3/whatsnew/3.0.html but I couldn't figure out where
>
> I am going wrong?
>
Look here:
http://docs.python.org/3/whatsnew/3.0.html#changed-syntax
at the "Removed Syntax" section where it mentions PEP 3113.
A simple fix is:
def decodeStr(arg):
(s,) = arg
return s.replace('\xc0\x80','\0').decode('utf8'),
or:
def decodeStr(s):
return s[0].replace('\xc0\x80','\0').decode('utf8'),
More information about the Python-list
mailing list