diff mbox series

trace: avoid "is" with a literal Python 3.8 warnings

Message ID 20191010122154.10553-1-stefanha@redhat.com (mailing list archive)
State New, archived
Headers show
Series trace: avoid "is" with a literal Python 3.8 warnings | expand

Commit Message

Stefan Hajnoczi Oct. 10, 2019, 12:21 p.m. UTC
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é <berrange@redhat.com>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
---
 scripts/tracetool/__init__.py | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Daniel P. Berrangé Oct. 10, 2019, 12:36 p.m. UTC | #1
On Thu, Oct 10, 2019 at 01:21:54PM +0100, Stefan Hajnoczi wrote:
> 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é <berrange@redhat.com>
> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
> ---
>  scripts/tracetool/__init__.py | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)

Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>

Regards,
Daniel
Philippe Mathieu-Daudé Oct. 10, 2019, 2:02 p.m. UTC | #2
On 10/10/19 2:21 PM, Stefan Hajnoczi wrote:
> 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.

Ah this is a new change from 3.8...
https://docs.python.org/3.9/whatsnew/3.8.html

 From https://bugs.python.org/issue34850

> Reported-by: Daniel P. Berrangé <berrange@redhat.com>
> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>

Reviewed-by: Philippe Mathieu-Daudé <philmd@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):
>
Stefan Hajnoczi Oct. 10, 2019, 4:13 p.m. UTC | #3
On Thu, Oct 10, 2019 at 01:21:54PM +0100, Stefan Hajnoczi wrote:
> 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é <berrange@redhat.com>
> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
> ---
>  scripts/tracetool/__init__.py | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)

Thanks, applied to my tracing tree:
https://github.com/stefanha/qemu/commits/tracing

Stefan
Markus Armbruster Oct. 11, 2019, 6:01 a.m. UTC | #4
Stefan Hajnoczi <stefanha@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é <berrange@redhat.com>
> Signed-off-by: Stefan Hajnoczi <stefanha@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):
diff mbox series

Patch

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):