[OE-core] [PATCH] oepydevshell-internal.py: decode only when readdata is valid

Richard Purdie richard.purdie at linuxfoundation.org
Tue Nov 13 10:03:12 UTC 2018


On Tue, 2018-11-13 at 17:04 +0800, changqing.li at windriver.com wrote:
> From: Changqing Li <changqing.li at windriver.com>
> 
> fix below problem:
> pydevshell raises exception when maximize the python shell window.
> when click maximize, rlist of select return ready object, but the
> pty.read is None, so throw exception of 'NoneType' object has no
> attribute 'decode', change to only decode when readdata is valid.
> 
> [YOCTO #11875]
> 
> Signed-off-by: Changqing Li <changqing.li at windriver.com>
> ---
>  scripts/oepydevshell-internal.py | 5 ++++-
>  1 file changed, 4 insertions(+), 1 deletion(-)
> 
> diff --git a/scripts/oepydevshell-internal.py b/scripts/oepydevshell-
> internal.py
> index 04621ae..2d1bc77 100755
> --- a/scripts/oepydevshell-internal.py
> +++ b/scripts/oepydevshell-internal.py
> @@ -63,7 +63,10 @@ try:
>              (ready, _, _) = select.select([pty, sys.stdin], writers
> , [], 0)
>              try:
>                  if pty in ready:
> -                    i = i + pty.read().decode('utf-8')
> +                    readdata=pty.read()
> +                    if readdata == None:
> +                        continue
> +                    i = i + readdata.decode('utf-8')

Usually you'd write this as:

if readdata:
    i = i + readdata.decode('utf-8')

Is there a reason not to do that here?

If you really want to test for None, you usually write:

if readdata is None:

which is a little more pythonic.

Cheers,

Richard



More information about the Openembedded-core mailing list