# HG changeset patch # User Pulkit Goyal <7895pulkit@gmail.com> # Date 2018-03-28 11:01:16 # Node ID 36a5a1239a151cc91edd385f4da8c157f3326926 # Parent a2f83661f7210bfc1c105404d0726bd7deeba465 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 diff --git a/mercurial/state.py b/mercurial/state.py --- a/mercurial/state.py +++ b/mercurial/state.py @@ -46,31 +46,12 @@ class cmdstate(object): """ 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/ file we use third-party library cbor to serialize data to write in the file.