Looks like regression in Python itself?

In both Python 2 and 3, the file is closed properly if the file object is not being stored:

>>> import os
>>> os.listdir('/proc/self/fd')
['0', '1', '2', '3']
>>> l=open('/proc/self/stat').readline()
>>> os.listdir('/proc/self/fd')
['0', '1', '2', '3']
>>> f=open('/proc/self/stat')
>>> os.listdir('/proc/self/fd')
['0', '1', '2', '3', '4']
>>>


(file descriptor "3" is the one being used to read the /proc/self/fd directory, "4" is the one used for reading the stat file)

The "with" construction should not be needed here. Something else is causing this (e.g. nested function definition or exception handler?).

Mike.


On 02-06-16 11:34, Richard Purdie wrote:
This avoids warnings with python 3.

Signed-off-by: Richard Purdie <richard.pur...@linuxfoundation.org>
---
  meta-oe/classes/gitpkgv.bbclass | 6 ++++--
  1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/meta-oe/classes/gitpkgv.bbclass b/meta-oe/classes/gitpkgv.bbclass
index 1cba00c..4866fac 100644
--- a/meta-oe/classes/gitpkgv.bbclass
+++ b/meta-oe/classes/gitpkgv.bbclass
@@ -87,11 +87,13 @@ def get_git_pkgv(d, use_tags):

                      if commits != "":
                          oe.path.remove(rev_file, recurse=False)
-                        open(rev_file, "w").write("%d\n" % int(commits))
+                        with open(rev_file, "w") as f:
+                            f.write("%d\n" % int(commits))
                      else:
                          commits = "0"
                  else:
-                    commits = open(rev_file, "r").readline(128).strip()
+                    with open(rev_file, "r") as f:
+                        commits = f.readline(128).strip()

                  if use_tags:
                      try:




Kind regards,

Mike Looijmans
System Expert

TOPIC Embedded Products
Eindhovenseweg 32-C, NL-5683 KH Best
Postbus 440, NL-5680 AK Best
Telefoon: +31 (0) 499 33 69 79
E-mail: mike.looijm...@topicproducts.com
Website: www.topicproducts.com

Please consider the environment before printing this e-mail





--
_______________________________________________
Openembedded-devel mailing list
Openembedded-devel@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-devel

Reply via email to