From f8ce01d4e55c3c5c49b9ad1d3c2b640e47712640 Mon Sep 17 00:00:00 2001 From: Thierry Carrez Date: Tue, 13 Feb 2018 16:05:26 +0100 Subject: [PATCH] Use deepcopy for dict copy operations The BASE content gets corrupted due to use of shallow copy in dictionary copy operations. Use copy.deepcopy instead. Change-Id: Ia29ccf1f60322c2de16309b7dd998ddf182917b4 --- ptgbot/db.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/ptgbot/db.py b/ptgbot/db.py index e7b8f97..8dc01d1 100644 --- a/ptgbot/db.py +++ b/ptgbot/db.py @@ -15,6 +15,7 @@ # limitations under the License. import calendar +import copy import datetime from itertools import chain import json @@ -37,9 +38,9 @@ class PTGDataBase(): with open(self.filename, 'r') as fp: self.data = json.load(fp) else: - self.data = self.BASE + self.data = copy.deepcopy(self.BASE) - old_data = self.data['additional'].copy() + old_data = copy.deepcopy(self.data['additional']) self.load_data_from_config() self.merge_additional(old_data) self.save() @@ -167,7 +168,7 @@ class PTGDataBase(): self.save() def wipe(self): - self.data = self.BASE + self.data = copy.deepcopy(self.BASE) self.save() def save(self):