fix configurable observer
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user