diff options
| author | Dana Jansens <danakj@orodu.net> | 2003-03-21 18:42:39 +0000 |
|---|---|---|
| committer | Dana Jansens <danakj@orodu.net> | 2003-03-21 18:42:39 +0000 |
| commit | a52a6d96d701c993896f276e4198003317632aaf (patch) | |
| tree | be2f51e6a433d1fdf9a7c8248b343cb3f6297212 /python/config.py | |
| parent | a36c7543d4eedaa9e10bfd9f4d9b81279b1bb7e6 (diff) | |
rm the old code including the .pys and the c++ shit
Diffstat (limited to 'python/config.py')
| -rw-r--r-- | python/config.py | 190 |
1 files changed, 0 insertions, 190 deletions
diff --git a/python/config.py b/python/config.py deleted file mode 100644 index 3aa6c587..00000000 --- a/python/config.py +++ /dev/null @@ -1,190 +0,0 @@ -# Openbox's config system. Please use the defined functions instead of -# accessing the internal data structures directly, for the sake of us all. - -def add(modulename, name, friendlyname, description, type, default, - **keywords): - """Add a variable to the configuration system. - - Add a variable to the configuration system for a module. - modulename - The name of the module, e.g. 'focus' - name - The name of the variable, e.g. 'my_variable' - friendlyname - The user-friendly name of the variable, e.g. 'My Variable' - description - The detailed destription of the variable, e.g. 'Does Things' - type - The type of the variable, one of: - - 'boolean' - - 'enum' - - 'integer' - - 'string' - - 'file' - - 'function' - - 'object' - default - The default value for the variable, e.g. 300 - keywords - Extra keyword=value pairs to further define the variable. These - can be: - - For 'enum' types: - - options : A list of possible options for the variable. - This *must* be set for all enum variables. - - For 'integer' types: - - min : The minimum value for the variable. - - max : The maximum value for the variable. - """ - modulename = str(modulename).lower() - name = str(name).lower() - friendlyname = str(friendlyname) - description = str(description) - type = str(type).lower() - - # make sure the sub-dicts exist - try: - _settings[modulename] - try: - _settings[modulename][name] - except KeyError: - _settings[modulename][name] = {} - except KeyError: - _settings[modulename] = {} - _settings[modulename][name] = {} - - # add the keywords first as they are used for the tests in set() - for key,value in zip(keywords.keys(), keywords.values()): - _settings[modulename][name][key] = value - - _settings[modulename][name]['name'] = friendlyname - _settings[modulename][name]['description'] = description - _settings[modulename][name]['type'] = type - _settings[modulename][name]['default'] = default - - # put it through the tests - try: - set(modulename, name, default) - except: - del _settings[modulename][name] - import sys - raise sys.exc_info()[0], sys.exc_info()[1] # re-raise it - -def set(modulename, name, value): - """Set a variable's value. - - Sets the value for a variable of the specified module. - modulename - The name of the module, e.g. 'focus' - name - The name of the variable, e.g. 'my_variable' - value - The new value for the variable. - """ - modulename = str(modulename).lower() - name = str(name).lower() - - # proper value checking for 'boolean's - if _settings[modulename][name]['type'] == 'boolean': - if not (value == 0 or value == 1): - raise ValueError, 'Attempted to set ' + name + ' to a value of '+\ - str(value) + ' but boolean variables can only contain 0 or'+\ - ' 1.' - - # proper value checking for 'enum's - elif _settings[modulename][name]['type'] == 'enum': - options = _settings[modulename][name]['options'] - if not value in options: - raise ValueError, 'Attempted to set ' + name + ' to a value of '+\ - str(value) + ' but this is not one of the possible values '+\ - 'for this enum variable. Possible values are: ' +\ - str(options) + "." - - # min/max checking for 'integer's - elif _settings[modulename][name]['type'] == 'integer': - try: - min = _settings[modulename][name]['min'] - if value < min: - raise ValueError, 'Attempted to set ' + name + ' to a value '+\ - ' of ' + str(value) + ' but it has a minimum value ' +\ - ' of ' + str(min) + '.' - except KeyError: pass - try: - max = _settings[modulename][name]['max'] - if value > max: - raise ValueError, 'Attempted to set ' + name + ' to a value '+\ - ' of ' + str(value) + ' but it has a maximum value ' +\ - ' of ' + str(min) + '.' - except KeyError: pass - - _settings[modulename][name]['value'] = value - -def reset(modulename, name): - """Reset a variable to its default value. - - Resets the value for a variable in the specified module back to its - original (default) value. - modulename - The name of the module, e.g. 'focus' - name - The name of the variable, e.g. 'my_variable' - """ - modulename = str(modulename).lower() - name = str(name).lower() - _settings[modulename][name]['value'] = \ - _settings[modulename][name]['default'] - -def get(modulename, name): - """Returns the value of a variable. - - Returns the current value for a variable in the specified module. - modulename - The name of the module, e.g. 'focus' - name - The name of the variable, e.g. 'my variable' - """ - modulename = str(modulename).lower() - name = str(name).lower() - return _settings[modulename][name]['value'] - -#---------------------------- Internals --------------------------- - -"""The main configuration dictionary, which holds sub-dictionaries for each - module. - - The format for entries in here like this (for a string): - _settings['modulename']['varname']['name'] = 'Text Label' - _settings['modulename']['varname']['description'] = 'Does this' - _settings['modulename']['varname']['type'] = 'string' - _settings['modulename']['varname']['default'] = 'Foo' - _settings['modulename']['varname']['value'] = 'Foo' - # 'value' should always be initialized to the same - # value as the 'default' field! - - Here's an example of an enum: - _settings['modulename']['varname']['name'] = 'My Enum Variable' - _settings['modulename']['varname']['description'] = 'Does Enum-like things.' - _settings['modulename']['varname']['type'] = 'enum' - _settings['modulename']['varname']['default'] = \ - _settings['modulename']['varname']['value'] = [ 'Blue', 'Green', 'Pink' ] - - And Here's an example of an integer with bounds: - _settings['modulename']['varname']['name'] = 'A Bounded Integer' - _settings['modulename']['varname']['description'] = 'A fierce party animal!' - _settings['modulename']['varname']['type'] = 'integer' - _settings['modulename']['varname']['default'] = \ - _settings['modulename']['varname']['value'] = 0 - _settings['modulename']['varname']['min'] = 0 - _settings['modulename']['varname']['max'] = 49 - - Hopefully you get the idea. - """ -_settings = {} - -"""Valid values for a variable's type.""" -_types = [ 'boolean', # Boolean types can only hold a value of 0 or 1. - - 'enum', # Enum types hold a value from a list of possible values. - # An 'options' field *must* be provided for enums, - # containing a list of possible values for the variable. - - 'integer', # Integer types hold a single number, as well as a 'min' - # and 'max' property. - # If the 'min' or 'max' is ignore then bounds checking - # will not be performed in that direction. - - 'string', # String types hold a text string. - - 'file', # File types hold a file object. - - 'function',# Function types hold any callable object. - - 'object' # Object types can hold any python object. - ]; - -print "Loaded config.py" |
