diff options
author | Giampaolo Rodola <g.rodola@gmail.com> | 2017-05-09 02:19:05 +0200 |
---|---|---|
committer | Giampaolo Rodola <g.rodola@gmail.com> | 2017-05-09 02:19:05 +0200 |
commit | 42af6fc151d0bff8ad07e10ed7f11f2151744d0c (patch) | |
tree | 63a20af31c8845c7f5a9da5852d4512f65608ab1 | |
parent | 291870b94b753a22d1efb30059a5600b084fcbe6 (diff) | |
download | psutil-42af6fc151d0bff8ad07e10ed7f11f2151744d0c.tar.gz |
#802: refactoring
-rw-r--r-- | psutil/_common.py | 30 |
1 files changed, 17 insertions, 13 deletions
diff --git a/psutil/_common.py b/psutil/_common.py index 8189a9dd..350ffe79 100644 --- a/psutil/_common.py +++ b/psutil/_common.py @@ -469,7 +469,7 @@ def deprecated_method(replacement): return outer -class WrapNumbers: +class _WrapNumbers: def __init__(self): self.lock = threading.Lock() @@ -477,14 +477,10 @@ class WrapNumbers: self.reminders = defaultdict(int) self.rmap = defaultdict(list) - def run(self, input_dict, name): - if name not in self.cache: - # This was the first call. - self.cache[name] = input_dict - return input_dict - - # In case the number of keys changed between calls (e.g. a - # disk disappears) this removes the entry from self.reminders. + def _remove_dead_reminders(self, input_dict, name): + """In case the number of keys changed between calls (e.g. a + disk disappears) this removes the entry from self.reminders. + """ old_dict = self.cache[name] gone_keys = set(old_dict.keys()) - set(input_dict.keys()) for gone_key in gone_keys: @@ -492,6 +488,14 @@ class WrapNumbers: del self.reminders[remkey] 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 + return input_dict + + self._remove_dead_reminders(input_dict, name) + old_dict = self.cache[name] new_dict = {} for key in input_dict.keys(): input_nt = input_dict[key] @@ -529,12 +533,12 @@ class WrapNumbers: self.rmap.pop(name) -wn = WrapNumbers() +_wn = _WrapNumbers() def wrap_numbers(input_dict, name): - with wn.lock: - return wn.run(input_dict, name) + with _wn.lock: + return _wn.run(input_dict, name) -wrap_numbers.cache_clear = wn.cache_clear +wrap_numbers.cache_clear = _wn.cache_clear |