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

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

From
Joel Holdsworth <jholdsworth@nvidia.com>
Date
Dec 13, 2021, 22:54 UTC
Message-ID
<20211213225441.1865782-2-jholdsworth@nvidia.com>
In-Reply-To
<20211213225441.1865782-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.33.0
Previous: Joel HoldsworthNext: Joel Holdsworth
Message 2 of 9 in “git-p4: fix RCS keyword processing encoding errors”
  1. 0/4 git-p4: fix RCS keyword processing encoding errorsJoel Holdsworth, Dec 13, 2021
  2. 1/4 git-p4: use with statements to close files after use in patchRCSKeywordsJoel Holdsworth, Dec 13, 2021
  3. 2/4 git-p4: pre-compile RCS keyword regexesJoel Holdsworth, Dec 13, 2021
  4. 3/4 git-p4: add raw option to read_pipelinesJoel Holdsworth, Dec 13, 2021
  5. 4/4 git-p4: resolve RCS keywords in binaryJoel Holdsworth, Dec 13, 2021
  6. Junio C HamanoDec 13, 2021
  7. Joel HoldsworthDec 14, 2021
  8. Junio C HamanoDec 15, 2021
  9. Andrew OakleyDec 14, 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.