Changeset 67435b1 in mainline for tools/xstruct.py


Ignore:
Timestamp:
2012-05-22T10:31:25Z (12 years ago)
Author:
Vojtech Horky <vojtechhorky@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
a58bc8b, df3f85f
Parents:
c4b0317
Message:

Make tools work with Python 3 again

File:
1 edited

Legend:

Unmodified
Added
Removed
  • tools/xstruct.py

    rc4b0317 r67435b1  
    3535import types
    3636
     37# Handle long integer conversions nicely in both Python 2 and Python 3
    3738integer_types = (int, long) if sys.version < '3' else (int,)
     39
     40# Ensure that 's' format for struct receives correct data type depending
     41# on Python version (needed due to different way to encode into bytes)
     42ensure_string = \
     43        (lambda value: value if type(value) is str else bytes(value)) \
     44                if sys.version < '3' else \
     45        (lambda value: bytes(value, 'ascii') if type(value) is str else value)
    3846
    3947ranges = {
     
    7785                                        args.append(item)
    7886                        else:
     87                                if (fmt == "s"):
     88                                        value = ensure_string(value)
    7989                                check_range(variable, fmt, value)
    8090                                args.append(value)             
Note: See TracChangeset for help on using the changeset viewer.