[PATCH v2 3/3] pwclient: Fix Python 3 encoding of received strings

Thomas Monjalon thomas.monjalon at 6wind.com
Thu Dec 15 21:26:01 AEDT 2016


2016-12-13 11:37, Thomas Monjalon:
> The conversion encode("utf-8") makes a byte stream which is
> poorly printed with Python 3.
[...]
>              for patch_id in non_empty(h, patch_ids):
>                  s = rpc.patch_get_mbox(patch_id)
>                  if len(s) > 0:
> -                    print(unicode(s).encode("utf-8"))
> +                    print(unicode(s))

I really do not understand these conversions.
I've just found a bug with this patch (sorry it is already applied).

When running the view command with python2 from a shell script there
is an error because of a non-ascii character:

  File "pwclient", line 768, in main
    print(unicode(s))
UnicodeEncodeError: 'ascii' codec can't encode character u'\u0142'
in position 468: ordinal not in range(128)

This error does not happen with python3.

Shell script to reproduce the error with a DPDK patch:

#! /bin/sh -e
python2 pwclient view 17892

.pwclientrc:
[options]                                                                                                        
default=dpdk
[dpdk]
url= http://dpdk.org/dev/patchwork/xmlrpc/

What is the magical invocation to make it work with Python 2 and 3?


More information about the Patchwork mailing list