state: don't have a dict like interface for cmdstate class
authorPulkit Goyal <7895pulkit@gmail.com>
Wed, 28 Mar 2018 16:31:16 +0530
changeset 38104 36a5a1239a15
parent 38103 a2f83661f721
child 38105 18c6d8b565bf
state: don't have a dict like interface for cmdstate class This patch changes the cmdstate class to stop having a dict like interface and delete the __nonzero__ function. After this patch, the save fuction takes a dict to store the data and read function returns a dict of the data stored. Differential Revision: https://phab.mercurial-scm.org/D3572
mercurial/state.py
--- a/mercurial/state.py	Wed Feb 21 17:20:22 2018 +0530
+++ b/mercurial/state.py	Wed Mar 28 16:31:16 2018 +0530
@@ -46,31 +46,12 @@
         """
         self._repo = repo
         self.fname = fname
-        if not opts:
-            self.opts = {}
-        else:
-            self.opts = opts
-
-    def __nonzero__(self):
-        return self.exists()
-
-    def __getitem__(self, key):
-        return self.opts[key]
 
-    def __setitem__(self, key, value):
-        updates = {key: value}
-        self.opts.update(updates)
+    def read(self):
+        """read the existing state file and return a dict of data stored"""
+        return self._read()
 
-    def load(self):
-        """load the existing state file into the class object"""
-        op = self._read()
-        self.opts.update(op)
-
-    def addopts(self, opts):
-        """add more key-value pairs to the data stored by the object"""
-        self.opts.update(opts)
-
-    def save(self):
+    def save(self, data):
         """write all the state data stored to .hg/<filename> file
 
         we use third-party library cbor to serialize data to write in the file.