cement.core.config
¶
Cement core config module.
-
class
cement.core.config.
ConfigHandler
(**kw)[source]¶ Bases:
cement.core.config.ConfigInterface
,cement.core.handler.Handler
Config handler implementation.
-
_parse_file
(file_path)[source]¶ Parse a configuration file at
file_path
and store it. This function must be provided by the handler implementation (that is sub-classing this).Parameters: file_path (str) – The file system path to the configuration file. Returns: True
if file was read properly,False
otherwiseReturn type: bool
-
parse_file
(file_path)[source]¶ Ensure we are using the absolute/expanded path to
file_path
, and then callself._parse_file
to parse config file settings from it, overwriting existing config settings.Developers sub-classing from here should generally override
_parse_file
which handles just the parsing of the file and leaving this function to wrap any checks/logging/etc.Parameters: file_path (str) – The file system path to the configuration file. Returns: True
if the givenfile_path
was parsed, andFalse
- otherwise.
Return type: bool
-
-
class
cement.core.config.
ConfigInterface
(**kw)[source]¶ Bases:
cement.core.interface.Interface
This class defines the Config Interface. Handlers that implement this interface must provide the methods and attributes defined below. In general, most implementations should sub-class from the provided
ConfigHandler
base class as a starting point.-
class
Meta
[source]¶ Bases:
object
Handler meta-data.
-
interface
= 'config'¶ The string identifier of the interface.
-
-
add_section
(section)[source]¶ Add a new section if it doesn’t already exist.
Parameters: section – The section label to create. Returns: None
-
get
(section, key)[source]¶ Return a configuration value based on
section.key
. Must honor environment variables if they exist to override the config… for exampleconfig['myapp']['foo']['bar']
must be overridable by the environment variableMYAPP_FOO_BAR
…. Note thatMYAPP_
must prefix all vars, thereforeconfig['redis']['foo']
would be overridable byMYAPP_REDIS_FOO
… butconfig['myapp']['foo']['bar']
would not have a double prefix ofMYAPP_MYAPP_FOO_BAR
.Parameters: Returns: The value of the
key
insection
.Return type: unknown
-
get_dict
()[source]¶ Return a dict of the entire configuration.
Returns: A dictionary of the entire config. Return type: dict
-
get_section_dict
(section)[source]¶ Return a dict of configuration parameters for
section
.Parameters: section (str) – The config section to generate a dict from (using that sections’ keys). Returns: A dictionary of the config section. Return type: dict
-
get_sections
()[source]¶ Return a list of configuration sections.
Returns: A list of config sections. Return type: list
-
has_section
(section)[source]¶ Returns whether or not the section exists.
Parameters: section (str) – The section to test for. Returns: True
if the configuration section exists,False
- otherwise.
Return type: bool
-
keys
(section)[source]¶ Return a list of configuration keys from
section
.Parameters: section (list) – The config section to pull keys from. Returns: A list of keys in section
.Return type: list
-
merge
(dict_obj, override=True)[source]¶ Merges a dict object into the configuration.
Parameters: Returns: None
-
class