Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
marvel
GitHub Repository: marvel/qnf
Path: blob/master/elisp/emacs-for-python/rope-dist/rope/base/prefs.py
1420 views
1
class Prefs(object):
2
3
def __init__(self):
4
self.prefs = {}
5
self.callbacks = {}
6
7
def set(self, key, value):
8
"""Set the value of `key` preference to `value`."""
9
if key in self.callbacks:
10
self.callbacks[key](value)
11
else:
12
self.prefs[key] = value
13
14
def add(self, key, value):
15
"""Add an entry to a list preference
16
17
Add `value` to the list of entries for the `key` preference.
18
19
"""
20
if not key in self.prefs:
21
self.prefs[key] = []
22
self.prefs[key].append(value)
23
24
def get(self, key, default=None):
25
"""Get the value of the key preference"""
26
return self.prefs.get(key, default)
27
28
def add_callback(self, key, callback):
29
"""Add `key` preference with `callback` function
30
31
Whenever `key` is set the callback is called with the
32
given `value` as parameter.
33
34
"""
35
self.callbacks[key] = callback
36
37
def __setitem__(self, key, value):
38
self.set(key, value)
39
40
def __getitem__(self, key):
41
return self.get(key)
42
43