[PATCH 01 of 13] changelog: implement context manager method for 'appender' object

Boris Feld boris.feld at octobus.net
Tue Feb 6 13:21:22 UTC 2018


# HG changeset patch
# User Boris Feld <boris.feld at octobus.net>
# Date 1517859411 -3600
#      Mon Feb 05 20:36:51 2018 +0100
# Node ID cc2e588940df0435bf0e3013ebd45013a22fa8fe
# Parent  1a31111e6239a2eb841a5dce5e1cf8212c54bf33
# EXP-Topic revlog-fp
# Available At https://bitbucket.org/octobus/mercurial-devel/
#              hg pull https://bitbucket.org/octobus/mercurial-devel/ -r cc2e588940df
changelog: implement context manager method for 'appender' object

This object mimics a file and was missing the context manager API.

diff --git a/mercurial/changelog.py b/mercurial/changelog.py
--- a/mercurial/changelog.py
+++ b/mercurial/changelog.py
@@ -127,6 +127,13 @@ class appender(object):
         self.offset += len(s)
         self._end += len(s)
 
+    def __enter__(self):
+        self.fp.__enter__()
+        return self
+
+    def __exit__(self, *args):
+        return self.fp.__exit__(*args)
+
 def _divertopener(opener, target):
     """build an opener that writes in 'target.a' instead of 'target'"""
     def _divert(name, mode='r', checkambig=False):


More information about the Mercurial-devel mailing list