| Index: tools/telemetry/third_party/rope/rope/base/prefs.py
|
| diff --git a/tools/telemetry/third_party/rope/rope/base/prefs.py b/tools/telemetry/third_party/rope/rope/base/prefs.py
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..2ab45dac541d9ef4150b81dcc65b7af08db770ca
|
| --- /dev/null
|
| +++ b/tools/telemetry/third_party/rope/rope/base/prefs.py
|
| @@ -0,0 +1,41 @@
|
| +class Prefs(object):
|
| +
|
| + def __init__(self):
|
| + self.prefs = {}
|
| + self.callbacks = {}
|
| +
|
| + def set(self, key, value):
|
| + """Set the value of `key` preference to `value`."""
|
| + if key in self.callbacks:
|
| + self.callbacks[key](value)
|
| + else:
|
| + self.prefs[key] = value
|
| +
|
| + def add(self, key, value):
|
| + """Add an entry to a list preference
|
| +
|
| + Add `value` to the list of entries for the `key` preference.
|
| +
|
| + """
|
| + if not key in self.prefs:
|
| + self.prefs[key] = []
|
| + self.prefs[key].append(value)
|
| +
|
| + def get(self, key, default=None):
|
| + """Get the value of the key preference"""
|
| + return self.prefs.get(key, default)
|
| +
|
| + def add_callback(self, key, callback):
|
| + """Add `key` preference with `callback` function
|
| +
|
| + Whenever `key` is set the callback is called with the
|
| + given `value` as parameter.
|
| +
|
| + """
|
| + self.callbacks[key] = callback
|
| +
|
| + def __setitem__(self, key, value):
|
| + self.set(key, value)
|
| +
|
| + def __getitem__(self, key):
|
| + return self.get(key)
|
|
|