class_docstr: Configuration object
  
  Provides default values configurable at different levels. The configuration object can have
  global default values, which may be overridden by user with yaml configuration files,
  environment variables or by setting directly the values in the configuration object. In order,
  direct definition overrides, environment variables, which overrides yaml configuration, which
  overrides default values in configuration object definition.
  
  Examples
  --------
  >>> config = Configuration()
  >>> config.add_option('test', str, 'hello', 'TEST_ENV')
  >>> config.test
  'hello'
  >>> config.load_yaml('some_config.yaml')
  >>> config.test
  'in yaml!'
  >>> os.environ['TEST_ENV'] = 'there!'
  >>> config.test
  'there!'
  >>> config.test = 'here'
  >>> config.test
  'here'
class_docstr_tok: ["Configuration","object","Provides","default","values","configurable","at","different","levels",".","The","configuration","object","can","have","global","default","values",",","which","may","be","overridden","by","user","with","yaml","configuration","files",",","environment","variables","or","by","setting","directly","the","values","in","the","configuration","object",".","In","order",",","direct","definition","overrides",",","environment","variables",",","which","overrides","yaml","configuration",",","which","overrides","default","values","in","configuration","object","definition",".","Examples","--","--","--","--",">",">",">","config","=","Configuration","(",")",">",">",">","config.add_option","(","'test","'",",","str",",","'hello","'",",","'TEST_ENV","'",")",">",">",">","config.test","'hello'",">",">",">","config.load_yaml","(","'some_config.yaml","'",")",">",">",">","config.test","'in","yaml","!","'",">",">",">","os.environ","[","'TEST_ENV","'","]","=","'there","!","'",">",">",">","config.test","'there","!","'",">",">",">","config.test","=","'here'",">",">",">","config.test","'here","'"]
docstr: Load yaml file and set global default configuration
  
  Parameters
  ----------
  path: str
      Path to the global configuration file.
  
  Raises
  -------
  ConfigurationError
      If some option in the yaml file does not exist in the config
docstr_tok: ["Load","yaml","file","and","set","global","default","configuration","Parameters","--","--","--","--","--","path",":","str","Path","to","the","global","configuration","file",".","Raises","--","--","--","-","ConfigurationError","If","some","option","in","the","yaml","file","does","not","exist","in","the","config"]
code: def load_yaml(self, path):
      """Load yaml file and set global default configuration
  
      Parameters
      ----------
      path: str
          Path to the global configuration file.
  
      Raises
      -------
      ConfigurationError
          If some option in the yaml file does not exist in the config
  
      """
      with open(path, encoding="utf8") as f:
          cfg = yaml.safe_load(f)
          if cfg is None:
              return
          self._load_yaml_dict(self, cfg)
  
imports: import contextlib
  import logging
  import os
  import pprint
  import yaml
label_desc: Use image node_id 2 for calling the Configuration obj's underlying member method code with example usage: obj.load_yaml(path) without return types