Package entropy :: Package core :: Package settings :: Package plugins :: Module skel :: Class SystemSettingsPlugin

Class SystemSettingsPlugin

source code


Instance Methods
None
__init__(self, plugin_id, helper_interface)
SystemSettingsPlugin constructor.
source code
 
add_parser(self, parser_id, parser_callable)
You must call this method in order to add your custom parsers to the plugin.
source code
string
get_id(self)
Returns the unique plugin id passed at construction time.
source code
set
get_updatable_configuration_files(self, repository_id)
Return a list (set) of updatable configuration files for this plugin.
source code
dict
parse(self, system_settings_instance)
This method is called by SystemSettings instance when building its settings metadata.
source code
None
post_setup(self, system_settings_instance)
This method is called by SystemSettings instance after having built all the SystemSettings metadata.
source code

Inherited from object: __delattr__, __format__, __getattribute__, __hash__, __new__, __reduce__, __reduce_ex__, __repr__, __setattr__, __sizeof__, __str__, __subclasshook__

Class Variables
  BASE_PLUGIN_API_VERSION = 3
This is a plugin base class for all SystemSettings plugins.
Properties

Inherited from object: __class__

Method Details

__init__(self, plugin_id, helper_interface)
(Constructor)

source code 

SystemSettingsPlugin constructor.

Parameters:
  • plugin_id (string) - plugin identifier, must be unique
  • helper_interface - any Python object that could be of help to your parsers
  • handler_instance (Python object)
Returns: None
None
Overrides: object.__init__

add_parser(self, parser_id, parser_callable)

source code 
You must call this method in order to add your custom
parsers to the plugin.
Please note, if your parser method ends with "_parser"
it will be automatically added this way:

method: foo_parser
    parser_id => foo
method: another_fabulous_parser
    parser_id => another_fabulous

@param parser_id: parser identifier, must be unique
@type parser_id: string
@param parser_callable: any callable function which has
    the following signature: callable(system_settings_instance)
    can return True to stop further parsers calls
@type parser_callable: callable
@return: None
@rtype: None

get_id(self)

source code 

Returns the unique plugin id passed at construction time.

Returns: string
plugin identifier

get_updatable_configuration_files(self, repository_id)

source code 

Return a list (set) of updatable configuration files for this plugin. For "updatable" it is meant, configuration files that expose package matches (not just keys) at the beginning of new lines. This makes possible to implement automatic configuration files updates upon package name renames. Please override this method if interested in exposing conf files.

Parameters:
  • repository_id (string or None) - repository identifier, if needed to return a list of specific configuration files
Returns: set
list (set) of package files paths (must check for path avail)

parse(self, system_settings_instance)

source code 

This method is called by SystemSettings instance when building its settings metadata.

Returned data from parser will be put into the SystemSettings dict using plugin_id and parser_id keys. If returned data is None, SystemSettings dict won't be changed.

Parameters:
  • system_settings_instance (SystemSettings instance) - SystemSettings instance
Returns: dict
the parsed metadata

post_setup(self, system_settings_instance)

source code 

This method is called by SystemSettings instance after having built all the SystemSettings metadata. You can reimplement this and hook your refinement code into this method.

Parameters:
  • system_settings_instance (SystemSettings instance) - SystemSettings instance
Returns: None
None

Class Variable Details

BASE_PLUGIN_API_VERSION

This is a plugin base class for all SystemSettings plugins. It allows to add extra parsers (though metadata) to SystemSettings. Just inherit from this class and call add_parser to add your custom parsers. SystemSettings will call the parse method, as explained below.

Sample code:

>>> # load SystemSettings
>>> from entropy.core.settings.base import SystemSettings
>>> from entropy.core.settings.plugins.skel import SystemSettingsPlugin
>>> system_settings = SystemSettings()
>>> class MyPlugin(SystemSettingsPlugin):
>>>      pass
>>> my_plugin = MyPlugin('mystuff', None)
>>> def myparsing_function():
>>>     return {'abc': 1 }
>>> my_plugin.add_parser('parser_no_1', myparsing_function)
>>> system_settings.add_plugin(my_plugin)
>>> print(system_settings['mystuff']['parser_no_1'])
{'abc': 1 }
>>> # let's remove it
>>> system_settings.remove_plugin('mystuff') # through its plugin_id
>>> print(system_settings.get('mystuff'))
None
Value:
3