Path: blob/master/elisp/emacs-for-python/rope-dist/rope/base/prefs.py
1420 views
class Prefs(object):12def __init__(self):3self.prefs = {}4self.callbacks = {}56def set(self, key, value):7"""Set the value of `key` preference to `value`."""8if key in self.callbacks:9self.callbacks[key](value)10else:11self.prefs[key] = value1213def add(self, key, value):14"""Add an entry to a list preference1516Add `value` to the list of entries for the `key` preference.1718"""19if not key in self.prefs:20self.prefs[key] = []21self.prefs[key].append(value)2223def get(self, key, default=None):24"""Get the value of the key preference"""25return self.prefs.get(key, default)2627def add_callback(self, key, callback):28"""Add `key` preference with `callback` function2930Whenever `key` is set the callback is called with the31given `value` as parameter.3233"""34self.callbacks[key] = callback3536def __setitem__(self, key, value):37self.set(key, value)3839def __getitem__(self, key):40return self.get(key)414243