Stefan Hajnoczi <stefa...@redhat.com> writes:

> The following statement produces a SyntaxWarning with Python 3.8:
>
>   if len(format) is 0:
>   scripts/tracetool/__init__.py:459: SyntaxWarning: "is" with a literal. Did 
> you mean "=="?
>
> Use the conventional len(x) == 0 syntax instead.
>
> Reported-by: Daniel P. Berrangé <berra...@redhat.com>
> Signed-off-by: Stefan Hajnoczi <stefa...@redhat.com>
> ---
>  scripts/tracetool/__init__.py | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/scripts/tracetool/__init__.py b/scripts/tracetool/__init__.py
> index 04279fa62e..44c118bc2a 100644
> --- a/scripts/tracetool/__init__.py
> +++ b/scripts/tracetool/__init__.py
> @@ -456,12 +456,12 @@ def generate(events, group, format, backends,
>      import tracetool
>  
>      format = str(format)
> -    if len(format) is 0:
> +    if len(format) == 0:
>          raise TracetoolError("format not set")
>      if not tracetool.format.exists(format):
>          raise TracetoolError("unknown format: %s" % format)
>  
> -    if len(backends) is 0:
> +    if len(backends) == 0:
>          raise TracetoolError("no backends specified")
>      for backend in backends:
>          if not tracetool.backend.exists(backend):

For what it's worth, PEP 8 advises

    For sequences, (strings, lists, tuples), use the fact that empty
    sequences are false.

    Yes: if not seq:
         if seq:

    No:  if len(seq):
         if not len(seq):

Reply via email to