MiscUtils.Configurable
index
/usr/local/share/webware/MiscUtils/Configurable.py

 
Modules
       
os
sys

 
Classes
       
Configurable
exceptions.Exception
ConfigurationError

 
class Configurable
    Configurable is an abstract superclass that provides configuration
file functionality for subclasses.
 
Subclasses should override:
 
        * defaultConfig()  to return a dictionary of default settings
                           such as { 'Frequency': 5 }
 
        * configFilename() to return the filename by which users can
                           override the configuration such as
                           'Pinger.config'
 
 
Subclasses typically use the setting() method, for example:
 
        time.sleep(setting('Frequency'))
 
 
They might also use the printConfig() method, for example:
 
        printConfig()      # or
        printConfig(file)
 
 
Users of your software can create a file with the same name as
configFilename() and selectively override settings. The format of
the file is a Python dictionary.
 
Subclasses can also override userConfig() in order to obtain the
user configuration settings from another source.
 
  Methods defined here:
__init__(self)
commandLineConfig(self)
Settings that came from the command line (via
addCommandLineSetting).
config(self)
Returns the configuration of the object as a dictionary. This is a combination of defaultConfig() and userConfig(). This method caches the config.
configFilename(self)
Returns the filename by which users can override the
configuration. Subclasses must override to specify a
name. Returning None is valid, in which case no user
config file will be loaded.
configName(self)
Returns the name of the configuration file (the portion
before the '.config').  This is used on the command-line.
configReplacementValues(self)
Returns a dictionary suitable for use with "string % dict"
that should be used on the text in the config file.  If an
empty dictionary (or None) is returned then no substitution
will be attempted.
defaultConfig(self)
Returns a dictionary containing all the default values for the settings. This implementation returns {}. Subclasses should override.
hasSetting(self, name)
printConfig(self, dest=None)
Prints the configuration to the given destination, which defaults to stdout. A fixed with font is assumed for aligning the values to start at the same column.
setSetting(self, name, value)
setting(self, name, default=<class MiscUtils.NoDefault>)
Returns the value of a particular setting in the configuration.
userConfig(self)
Returns the user config overrides found in the optional config file, or {} if there is no such file. The config filename is taken from configFilename().

 
class ConfigurationError(exceptions.Exception)
     Methods inherited from exceptions.Exception:
__getitem__(...)
__init__(...)
__str__(...)

 
Functions
       
addCommandLineSetting(name, value)
Take a setting, like "AppServer.Verbose=0", and call
addCommandLineSetting('AppServer.Verbose', '0'), and
it will override any settings in AppServer.config
commandLineSetting(configName, settingName, default=<class MiscUtils.NoDefault>)
Retrieve a command-line setting.  You can use this with
non-existent classes, like "Context.Root=/WK", and then
fetch it back with commandLineSetting('Context', 'Root').

 
Data
        modloader = <WebKit.ImportSpy.ModuleLoader instance>