summaryrefslogtreecommitdiff
path: root/portato/session.py
diff options
context:
space:
mode:
authorRené 'Necoro' Neumann <necoro@necoro.net>2008-11-03 00:01:46 +0100
committerRené 'Necoro' Neumann <necoro@necoro.net>2008-11-03 00:01:46 +0100
commit7617b3f9fe7ab2d29f23babfa7bfbd1347253453 (patch)
tree207770d0ef5ed1b22b657a694dc1eabad7d5a917 /portato/session.py
parent2869169d44baa53eca78ec1e55342fe882b692c2 (diff)
downloadportato-7617b3f9fe7ab2d29f23babfa7bfbd1347253453.tar.gz
portato-7617b3f9fe7ab2d29f23babfa7bfbd1347253453.tar.bz2
portato-7617b3f9fe7ab2d29f23babfa7bfbd1347253453.zip
Add defaults only session loading
Diffstat (limited to 'portato/session.py')
-rw-r--r--portato/session.py27
1 files changed, 17 insertions, 10 deletions
diff --git a/portato/session.py b/portato/session.py
index 4b0edb0..4f904ed 100644
--- a/portato/session.py
+++ b/portato/session.py
@@ -63,21 +63,28 @@ class Session (object):
"""
self._handlers.append((options, load_fn, save_fn, default))
- def load (self):
+ def load (self, defaults_only = False):
"""
Loads and applies all values of the session.
"""
+
+ def ldefault (options, lfn, default):
+ if not default: return
+ debug("Loading %s with defaults %s.", options, default)
+ lfn(*default)
+
for options, lfn, sfn, default in self._handlers:
- try:
- loaded = [self._cfg.get(*x) for x in options]
- except KeyError: # does not exist -> ignore
- debug("No values for %s.", options)
- if default:
- debug("Loading %s with defaults %s.", options, default)
- lfn(*default)
+ if defaults_only:
+ ldefault(options, lfn, default)
else:
- debug("Loading %s with values %s.", options, loaded)
- lfn(*loaded)
+ try:
+ loaded = [self._cfg.get(*x) for x in options]
+ except KeyError: # does not exist -> ignore
+ debug("No values for %s.", options)
+ ldefault(options, lfn, default)
+ else:
+ debug("Loading %s with values %s.", options, loaded)
+ lfn(*loaded)
def save (self):
"""