From 698cf43b03afc4fb116e59769c1323bb0033df23 Mon Sep 17 00:00:00 2001 From: IWAMOTO Toshihiro Date: Tue, 30 Jun 2015 17:01:56 +0900 Subject: [PATCH] python3: Make ryu.utils.hex_array functional Signed-off-by: IWAMOTO Toshihiro Signed-off-by: FUJITA Tomonori --- ryu/utils.py | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/ryu/utils.py b/ryu/utils.py index c4be9735..4a5bc445 100644 --- a/ryu/utils.py +++ b/ryu/utils.py @@ -33,6 +33,7 @@ import inspect import logging import os +import six import sys import re @@ -99,19 +100,25 @@ def round_up(x, y): def _str_to_hex(data): - """Convert string into array of hexes to be printed.""" + """Convert str into array of hexes to be printed. (Python2 only)""" return ' '.join(hex(ord(char)) for char in data) def _bytearray_to_hex(data): - """Convert bytearray into array of hexes to be printed.""" + """Convert bytearray into array of hexes to be printed. + In Python3, this function works for binary_types, too. + """ return ' '.join(hex(byte) for byte in data) def hex_array(data): - """Convert string or bytearray into array of hexes to be printed.""" - to_hex = {str: _str_to_hex, - bytearray: _bytearray_to_hex} + """Convert binary_type or bytearray into array of hexes to be printed.""" + if six.PY3: + to_hex = {six.binary_type: _bytearray_to_hex, + bytearray: _bytearray_to_hex} + else: + to_hex = {six.binary_type: _str_to_hex, + bytearray: _bytearray_to_hex} try: return to_hex[type(data)](data) except KeyError: