0

fix configurable observer

This commit is contained in:
aheadley
2012-03-22 21:19:56 -04:00
parent 863c6b1154
commit 99f2cae7a8
2 changed files with 15 additions and 5 deletions

View File

@@ -46,6 +46,8 @@
from settingsValidators import *
import util
from observer import ProgressBarObserver, LoggingObserver
import platform
import sys
# renders is a dictionary mapping strings to dicts. These dicts describe the
# configuration for that render. Therefore, the validator for 'renders' is set
@@ -96,6 +98,8 @@ processes = Setting(required=True, validator=int, default=-1)
memcached_host = Setting(required=False, validator=str, default=None)
if platform.system() == 'Windows' or not sys.stderr.isatty():
observer = LoggingObserver()
obs = LoggingObserver()
else:
observer = ProgressBarObserver()
obs = ProgressBarObserver()
observer = Setting(required=True, validator=validateObserver, default=obs)

View File

@@ -182,6 +182,12 @@ def validateCrop(value):
value[1],value[3] = value[3],value[1]
return value
def validateObserver(observer):
if all(map(lambda m: hasattr(observer, m), ['start', 'add', 'update', 'finish'])):
return observer
else:
raise ValidationException("%r does not look like an observer" % repr(observer))
def make_dictValidator(keyvalidator, valuevalidator):
"""Compose and return a dict validator -- a validator that validates each
key and value in a dictionary.