d0df704d8a
added python.path vm arg to startup script fixed infinite loop in unwrap() when displaying sequences of sequences git-svn-id: http://google-refine.googlecode.com/svn/trunk@509 7d457c2a-affb-35e4-300a-418c747d4874
85 lines
2.2 KiB
Python
85 lines
2.2 KiB
Python
###
|
|
#
|
|
# Copyright Alan Kennedy.
|
|
#
|
|
# You may contact the copyright holder at this uri:
|
|
#
|
|
# http://www.xhaus.com/contact/modjy
|
|
#
|
|
# The licence under which this code is released is the Apache License v2.0.
|
|
#
|
|
# The terms and conditions of this license are listed in a file contained
|
|
# in the distribution that also contained this file, under the name
|
|
# LICENSE.txt.
|
|
#
|
|
# You may also read a copy of the license at the following web address.
|
|
#
|
|
# http://modjy.xhaus.com/LICENSE.txt
|
|
#
|
|
###
|
|
|
|
from UserDict import UserDict
|
|
|
|
BOOLEAN = ('boolean', int)
|
|
INTEGER = ('integer', int)
|
|
FLOAT = ('float', float)
|
|
STRING = ('string', None)
|
|
|
|
modjy_servlet_params = {
|
|
|
|
'multithread': (BOOLEAN, 1),
|
|
'cache_callables': (BOOLEAN, 1),
|
|
'reload_on_mod': (BOOLEAN, 0),
|
|
|
|
'app_import_name': (STRING, None),
|
|
|
|
'app_directory': (STRING, None),
|
|
'app_filename': (STRING, 'application.py'),
|
|
'app_callable_name': (STRING, 'handler'),
|
|
'callable_query_name': (STRING, None),
|
|
|
|
'exc_handler': (STRING, 'standard'),
|
|
|
|
'log_level': (STRING, 'info'),
|
|
|
|
'packages': (STRING, None),
|
|
'classdirs': (STRING, None),
|
|
'extdirs': (STRING, None),
|
|
|
|
'initial_env': (STRING, None),
|
|
}
|
|
|
|
class modjy_param_mgr(UserDict):
|
|
|
|
def __init__(self, param_types):
|
|
UserDict.__init__(self)
|
|
self.param_types = param_types
|
|
for pname in self.param_types.keys():
|
|
typ, default = self.param_types[pname]
|
|
self.__setitem__(pname, default)
|
|
|
|
def __getitem__(self, name):
|
|
return self._get_defaulted_value(name)
|
|
|
|
def __setitem__(self, name, value):
|
|
self.data[name] = self._convert_value(name, value)
|
|
|
|
def _convert_value(self, name, value):
|
|
if self.param_types.has_key(name):
|
|
typ, default = self.param_types[name]
|
|
typ_str, typ_func = typ
|
|
if typ_func:
|
|
try:
|
|
return typ_func(value)
|
|
except ValueError:
|
|
raise BadParameter("Illegal value for %s parameter '%s': %s" % (typ_str, name, value) )
|
|
return value
|
|
|
|
def _get_defaulted_value(self, name):
|
|
if self.data.has_key(name):
|
|
return self.data[name]
|
|
if self.param_types.has_key(name):
|
|
typ, default = self.param_types[name]
|
|
return default
|
|
raise KeyError(name)
|