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>