#NEWLINE# def __init__( self , inifilename = None , rootsection = '__root__' , writable = True , **kwargs ) : #NEWLINE# #INDENT# 'Loads and optionally saves configuration files in INI format, as\n        handled by :py:mod:`configparser`.\n\n        :param inifile: The name of a ini-style configuration\n                        file. The file should have a top-level\n                        section, by default named ``__root__``, whose\n                        keys are turned into top-level configuration\n                        parameters. Any other sections in this file\n                        are turned into nested config objects.\n        :type inifile: str\n        :param rootsection: An alternative name for the top-level section. \n                            See note below. \n        :type rootsection: str\n        :param writable: Whether changes to the LayeredConfig object\n                         that has this INIFile object amongst its\n                         sources should be saved in the INI file.\n        :type writable: bool\n\n        .. note::\n\n           Since this source uses :py:mod:`configparser`, and since\n           that module handles sections named ``[DEFAULT]``\n           differently, this module will have a sort-of automatic\n           cascading feature for subsections if ``DEFAULT`` is used as\n           ``rootsection``\n\n        ' #NEWLINE# super ( INIFile , self ) . __init__ ( ** kwargs ) #NEWLINE# if inifilename : #NEWLINE# #INDENT# if ( not os . path . exists ( inifilename ) ) : #NEWLINE# #INDENT# logging . warning ( ( 'INI file %s does not exist' % inifilename ) ) #NEWLINE# self . source = configparser . RawConfigParser ( dict_type = OrderedDict ) #NEWLINE# self . inifilename = inifilename #NEWLINE# if ( rootsection != 'DEFAULT' ) : #NEWLINE# #INDENT# self . source . add_section ( rootsection ) #NEWLINE# #UNINDENT# #UNINDENT# else : #NEWLINE# #INDENT# self . source = configparser . RawConfigParser ( dict_type = OrderedDict ) #NEWLINE# self . source . read ( inifilename ) #NEWLINE# self . inifilename = inifilename #NEWLINE# #UNINDENT# #UNINDENT# else : #NEWLINE# #INDENT# if ( 'config' in kwargs ) : #NEWLINE# #INDENT# self . source = kwargs [ 'config' ] #NEWLINE# self . inifilename = None #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# self . source = configparser . ConfigParser ( dict_type = OrderedDict ) #NEWLINE# self . source . add_section ( rootsection ) #NEWLINE# self . inifilename = None #NEWLINE# #UNINDENT# #UNINDENT# if ( 'section' in kwargs ) : #NEWLINE# #INDENT# self . sectionkey = kwargs [ 'section' ] #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# self . sectionkey = rootsection #NEWLINE# self . dirty = False #NEWLINE# #UNINDENT# self . writable = writable #NEWLINE# self . rootsection = rootsection