git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH v2 1/5] git-p4: use with statements to close files after use in patchRCSKeywords

From
Joel Holdsworth <jholdsworth@nvidia.com>
Date
Dec 16, 2021, 13:46 UTC
Message-ID
<20211216134619.2048348-2-jholdsworth@nvidia.com>
In-Reply-To
<20211216134619.2048348-1-jholdsworth@nvidia.com>

Python with statements are used to wrap the execution of a block of code so that an object can be safely released when execution leaves the scope.

They are desirable for improving code tidyness, and to ensure that objects are properly destroyed even when exceptions are thrown.

Signed-off-by: Joel Holdsworth <jholdsworth@nvidia.com>
---
 git-p4.py | 13 +++++--------
 1 file changed, 5 insertions(+), 8 deletions(-)
diff --git a/git-p4.py b/git-p4.py
index 2b4500226a..226cdef424 100755
--- a/git-p4.py
+++ b/git-p4.py
@@ -1757,14 +1757,11 @@ def patchRCSKeywords(self, file, pattern):
         # Attempt to zap the RCS keywords in a p4 controlled file matching the given pattern
         (handle, outFileName) = tempfile.mkstemp(dir='.')
         try:
-            outFile = os.fdopen(handle, "w+")
-            inFile = open(file, "r")
-            regexp = re.compile(pattern, re.VERBOSE)
-            for line in inFile.readlines():
-                line = regexp.sub(r'$\1$', line)
-                outFile.write(line)
-            inFile.close()
-            outFile.close()
+            with os.fdopen(handle, "w+") as outFile, open(file, "r") as inFile:
+                regexp = re.compile(pattern, re.VERBOSE)
+                for line in inFile.readlines():
+                    line = regexp.sub(r'$\1$', line)
+                    outFile.write(line)
             # Forcibly overwrite the original file
             os.unlink(file)
             shutil.move(outFileName, file)
-- 
2.34.1
Previous: Joel HoldsworthNext: Joel Holdsworth
Message 2 of 6 in “git-p4: fix RCS keyword processing encoding errors”
  1. 0/5 git-p4: fix RCS keyword processing encoding errorsJoel Holdsworth, Dec 16, 2021
  2. 1/5 git-p4: use with statements to close files after use in patchRCSKeywordsJoel Holdsworth, Dec 16, 2021
  3. 2/5 git-p4: pre-compile RCS keyword regexesJoel Holdsworth, Dec 16, 2021
  4. 3/5 git-p4: add raw option to read_pipelinesJoel Holdsworth, Dec 16, 2021
  5. 4/5 git-p4: open temporary patch file for write onlyJoel Holdsworth, Dec 16, 2021
  6. 5/5 git-p4: resolve RCS keywords in bytes not utf-8Joel Holdsworth, Dec 16, 2021

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.