diff options
author | Giampaolo Rodola <g.rodola@gmail.com> | 2017-05-09 02:41:24 +0200 |
---|---|---|
committer | Giampaolo Rodola <g.rodola@gmail.com> | 2017-05-09 02:41:24 +0200 |
commit | fe8f4c0791547ab9ade78378b1d6021f5838f1ea (patch) | |
tree | f3a172059517c5920d4fba71f03e6c4706d2f796 | |
parent | 397f56881ba04a6bcec32bd45616b4382834dab3 (diff) | |
download | psutil-fe8f4c0791547ab9ade78378b1d6021f5838f1ea.tar.gz |
refactoring
-rw-r--r-- | psutil/_common.py | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/psutil/_common.py b/psutil/_common.py index 14b564a0..2d3e5c2f 100644 --- a/psutil/_common.py +++ b/psutil/_common.py @@ -475,7 +475,15 @@ class _WrapNumbers: self.lock = threading.Lock() self.cache = {} self.reminders = {} - self.rmap = defaultdict(list) + self.rmap = {} + + def _add_dict(self, input_dict, name): + assert name not in self.cache + assert name not in self.reminders + assert name not in self.rmap + self.cache[name] = input_dict + self.reminders[name] = defaultdict(int) + self.rmap[name] = defaultdict(list) def _remove_dead_reminders(self, input_dict, name): """In case the number of keys changed between calls (e.g. a @@ -484,15 +492,14 @@ class _WrapNumbers: old_dict = self.cache[name] gone_keys = set(old_dict.keys()) - set(input_dict.keys()) for gone_key in gone_keys: - for remkey in self.rmap[name + "-" + gone_key]: + for remkey in self.rmap[name][gone_key]: del self.reminders[name][remkey] - del self.rmap[name + "-" + gone_key] + del self.rmap[name][gone_key] def run(self, input_dict, name): if name not in self.cache: # This was the first call. - self.cache[name] = input_dict - self.reminders[name] = defaultdict(int) + self._add_dict(input_dict, name) return input_dict self._remove_dead_reminders(input_dict, name) @@ -516,7 +523,7 @@ class _WrapNumbers: if input_value < old_value: self.reminders[name][remkey] += old_value bits.append(input_value + self.reminders[name][remkey]) - self.rmap[name + "-" + key].append(remkey) + self.rmap[name][key].append(remkey) new_dict[key] = input_nt._make(bits) @@ -531,7 +538,7 @@ class _WrapNumbers: self.rmap.clear() else: self.cache.pop(name) - self.reminders[name].clear() + self.reminders.pop(name) self.rmap.pop(name) |