'Parse a config file or create a config file object.
``ConfigObj(infile=None, configspec=None, encoding=None,
interpolation=True, raise_errors=False, list_values=True,
create_empty=False, file_error=False, stringify=True,
indent_type=None, default_encoding=None, unrepr=False,
write_empty_values=False, _inspec=False)``'

def __init__(self, infile=None, options=None, configspec=None, encoding=None, interpolation=True, raise_errors=False, list_values=True, create_empty=False, file_error=False, stringify=True, indent_type=None, default_encoding=None, unrepr=False, write_empty_values=False, _inspec=False):

    self._inspec = _inspec
    Section.__init__(self, self, 0, self)
    infile = (infile or [])
    _options = {'configspec': configspec, 'encoding': encoding, 'interpolation': interpolation, 'raise_errors': raise_errors, 'list_values': list_values, 'create_empty': create_empty, 'file_error': file_error, 'stringify': stringify, 'indent_type': indent_type, 'default_encoding': default_encoding, 'unrepr': unrepr, 'write_empty_values': write_empty_values}
    if (options is None):
        options = _options
    else:
        import warnings
        warnings.warn('Passing    in    an    options    dictionary    to    ConfigObj()    is    deprecated.    Use    **options    instead.', DeprecationWarning, stacklevel=2)
        for entry in options:
            if (entry not in OPTION_DEFAULTS):
                raise TypeError(('Unrecognised    option    "%s".' % entry))
        for (entry, value) in OPTION_DEFAULTS.items():
            if (entry not in options):
                options[entry] = value
            keyword_value = _options[entry]
            if (value != keyword_value):
                options[entry] = keyword_value
    if _inspec:
        options['list_values'] = False
    self._initialise(options)
    configspec = options['configspec']
    self._original_configspec = configspec
    self._load(infile, configspec)
