Skip to contentSkip to conversation

utils/check-package: drop six usage

PATCH Applied Vincent Fazio 5 participants 6 messages Apr 3, 2023 – Apr 22, 2023

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 utils/check-package: drop six usage

The shebang in check-package now defines python3. There is no longer a need to maintain support with python 2.x.

See-also: 02b165dc71 (check-package: fix Python3 support)

---
 utils/check-package | 10 +++-------
 1 file changed, 3 insertions(+), 7 deletions(-)
utils/check-package +3 -7
index 98a25bd0b2..46f2897b51 100755
@@ -6,7 +6,6 @@ import inspect
 import magic
 import os
 import re
-import six
 import sys
 
 import checkpackagelib.base
@@ -218,12 +217,9 @@ def check_file_using_lib(fname):
         if fail > 0:
             failed.add(name)
         nwarnings += warn
-    if six.PY3:
-        f = open(fname, "r", errors="surrogateescape")
-    else:
-        f = open(fname, "r")
+
     lastline = ""
-    for lineno, text in enumerate(f.readlines()):
+    for lineno, text in enumerate(open(fname, "r", errors="surrogateescape").readlines()):
         nlines += 1
         for name, cf in objects:
             if cf.disable.search(lastline):
@@ -233,7 +229,7 @@ def check_file_using_lib(fname):
                 failed.add(name)
             nwarnings += warn
         lastline = text
-    f.close()
+
     for name, cf in objects:
         warn, fail = print_warnings(cf.after(), name in xfail)
         if fail > 0:
Signature · 6 lines
2.25.1

_______________________________________________
buildroot mailing list
[email protected]
https://lists.buildroot.org/mailman/listinfo/buildroot
#2 lore raw
In reply to Vincent Fazio

On 2023-04-02 20:35 -0500, Vincent Fazio spake thusly:

Quoted 24 lines

The shebang in check-package now defines python3. There is no longer a need to maintain support with python 2.x.

See-also: 02b165dc71 (check-package: fix Python3 support)

---
 utils/check-package | 10 +++-------
 1 file changed, 3 insertions(+), 7 deletions(-)
utils/check-package +0 -1
index 98a25bd0b2..46f2897b51 100755
@@ -6,7 +6,6 @@ import inspect
 import magic
 import os
 import re
-import six
 import sys
 
 import checkpackagelib.base
@@ -218,12 +217,9 @@ def check_file_using_lib(fname):
         if fail > 0:

utils/check-package def check_file_using_lib(fname): · line 222

Quoted 10 lines
utils/check-package +2 -5
             failed.add(name)
         nwarnings += warn
-    if six.PY3:
-        f = open(fname, "r", errors="surrogateescape")
-    else:
-        f = open(fname, "r")
+
     lastline = ""
-    for lineno, text in enumerate(f.readlines()):
+    for lineno, text in enumerate(open(fname, "r", errors="surrogateescape").readlines()):

Err.. This leaks a file object, no?

Even if the script is short-lived, it is better to properly close() files once they are unused.

Here, I believe using a context manager is adequate (and relatively easy now that we do no longer have to deal with two ways if opening the file):

with open(fname, "r", errors="surrogateescape") as f:
for lineno, text in enumerate(f.readlines()):
...

Regards,
Yann E. MORIN.

Quoted 19 lines
utils/check-package +1 -1
         nlines += 1
         for name, cf in objects:
             if cf.disable.search(lastline):
@@ -233,7 +229,7 @@ def check_file_using_lib(fname):
                 failed.add(name)
             nwarnings += warn
         lastline = text
-    f.close()
+
     for name, cf in objects:
         warn, fail = print_warnings(cf.after(), name in xfail)
         if fail > 0:
Signature · 6 lines
2.25.1

_______________________________________________
buildroot mailing list
[email protected]
https://lists.buildroot.org/mailman/listinfo/buildroot
Signature · 10 lines
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 561 099 427 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
_______________________________________________
buildroot mailing list
[email protected]
https://lists.buildroot.org/mailman/listinfo/buildroot
#3 lore raw
Quoted 38 lines · Yann E. MORIN

On 2023-04-02 20:35 -0500, Vincent Fazio spake thusly:

Quoted 24 lines

The shebang in check-package now defines python3. There is no longer a need to maintain support with python 2.x.

See-also: 02b165dc71 (check-package: fix Python3 support)

---
  utils/check-package | 10 +++-------
  1 file changed, 3 insertions(+), 7 deletions(-)
utils/check-package +0 -1
index 98a25bd0b2..46f2897b51 100755
@@ -6,7 +6,6 @@ import inspect
  import magic
  import os
  import re
-import six
  import sys
 
  import checkpackagelib.base
@@ -218,12 +217,9 @@ def check_file_using_lib(fname):
          if fail > 0:

utils/check-package def check_file_using_lib(fname): · line 222

Quoted 10 lines
utils/check-package +2 -5
              failed.add(name)
          nwarnings += warn
-    if six.PY3:
-        f = open(fname, "r", errors="surrogateescape")
-    else:
-        f = open(fname, "r")
+
      lastline = ""
-    for lineno, text in enumerate(f.readlines()):
+    for lineno, text in enumerate(open(fname, "r", errors="surrogateescape").readlines()):

Err.. This leaks a file object, no?

Quoted 2 lines

Even if the script is short-lived, it is better to properly close() files once they are unused.

It doesn't leak. It just doesn't close the file until some unspecified time in
the flow. In this case it's actually pretty well specified: it closes after the readlines() call ends because the file object has no more references.

So no, a context manager isn't really needed here.

Regards,
Arnout

Quoted 27 lines

Here, I believe using a context manager is adequate (and relatively easy now that we do no longer have to deal with two ways if opening the file):

with open(fname, "r", errors="surrogateescape") as f:
for lineno, text in enumerate(f.readlines()):
...

Regards,
Yann E. MORIN.

Quoted 15 lines
utils/check-package +1 -1
          nlines += 1
          for name, cf in objects:
              if cf.disable.search(lastline):
@@ -233,7 +229,7 @@ def check_file_using_lib(fname):
                  failed.add(name)
              nwarnings += warn
          lastline = text
-    f.close()
+
      for name, cf in objects:
          warn, fail = print_warnings(cf.after(), name in xfail)
          if fail > 0:
Signature · 1 line
2.25.1
Quoted 5 lines
Quoted 4 lines

_______________________________________________
buildroot mailing list
[email protected]
https://lists.buildroot.org/mailman/listinfo/buildroot

_______________________________________________
buildroot mailing list
[email protected]
https://lists.buildroot.org/mailman/listinfo/buildroot

#4 lore raw
In reply to Vincent Fazio

Vincent, All,

On 2023-04-02 20:35 -0500, Vincent Fazio spake thusly:

Quoted 6 lines

The shebang in check-package now defines python3. There is no longer a need to maintain support with python 2.x.

See-also: 02b165dc71 (check-package: fix Python3 support)

Applied to master, thanks.

Quoted 18 lines
---
 utils/check-package | 10 +++-------
 1 file changed, 3 insertions(+), 7 deletions(-)
utils/check-package +0 -1
index 98a25bd0b2..46f2897b51 100755
@@ -6,7 +6,6 @@ import inspect
 import magic
 import os
 import re
-import six
 import sys
 
 import checkpackagelib.base
@@ -218,12 +217,9 @@ def check_file_using_lib(fname):
         if fail > 0:

utils/check-package def check_file_using_lib(fname): · line 222

Quoted 10 lines
utils/check-package +2 -5
             failed.add(name)
         nwarnings += warn
-    if six.PY3:
-        f = open(fname, "r", errors="surrogateescape")
-    else:
-        f = open(fname, "r")
+
     lastline = ""
-    for lineno, text in enumerate(f.readlines()):
+    for lineno, text in enumerate(open(fname, "r", errors="surrogateescape").readlines()):

As seen on IRC: it does not leak a fileobject: it is not bound to a variable, so the object is garbage-collected as soon as it is no longer referenced, i.e. right after the function call ends.

Regards,
Yann E. MORIN.

Quoted 19 lines
utils/check-package +1 -1
         nlines += 1
         for name, cf in objects:
             if cf.disable.search(lastline):
@@ -233,7 +229,7 @@ def check_file_using_lib(fname):
                 failed.add(name)
             nwarnings += warn
         lastline = text
-    f.close()
+
     for name, cf in objects:
         warn, fail = print_warnings(cf.after(), name in xfail)
         if fail > 0:
Signature · 6 lines
2.25.1

_______________________________________________
buildroot mailing list
[email protected]
https://lists.buildroot.org/mailman/listinfo/buildroot
Signature · 10 lines
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 561 099 427 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
_______________________________________________
buildroot mailing list
[email protected]
https://lists.buildroot.org/mailman/listinfo/buildroot
#5 lore raw
In reply to Vincent Fazio
Quoted 8 lines
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"Vincent" == Vincent Fazio <[email protected]> writes:

The shebang in check-package now defines python3. There is no longer a need to maintain support with python 2.x.

See-also: 02b165dc71 (check-package: fix Python3 support)

Committed to 2023.02.x, thanks.

Signature · 5 lines
Bye, Peter Korsgaard
_______________________________________________
buildroot mailing list
[email protected]
https://lists.buildroot.org/mailman/listinfo/buildroot