# This file was automatically generated by SWIG (https://www.swig.org).
# Version 4.1.1
#
# Do not make changes to this file unless you know what you are doing - modify
# the SWIG interface file instead.

from sys import version_info as _swig_python_version_info
# Import the low-level C/C++ module
if __package__ or "." in __name__:
    from . import _conf
else:
    import _conf

try:
    import builtins as __builtin__
except ImportError:
    import __builtin__

def _swig_repr(self):
    try:
        strthis = "proxy of " + self.this.__repr__()
    except __builtin__.Exception:
        strthis = ""
    return "<%s.%s; %s >" % (self.__class__.__module__, self.__class__.__name__, strthis,)


def _swig_setattr_nondynamic_instance_variable(set):
    def set_instance_attr(self, name, value):
        if name == "this":
            set(self, name, value)
        elif name == "thisown":
            self.this.own(value)
        elif hasattr(self, name) and isinstance(getattr(type(self), name), property):
            set(self, name, value)
        else:
            raise AttributeError("You cannot add instance attributes to %s" % self)
    return set_instance_attr


def _swig_setattr_nondynamic_class_variable(set):
    def set_class_attr(cls, name, value):
        if hasattr(cls, name) and not isinstance(getattr(cls, name), property):
            set(cls, name, value)
        else:
            raise AttributeError("You cannot add class attributes to %s" % cls)
    return set_class_attr


def _swig_add_metaclass(metaclass):
    """Class decorator for adding a metaclass to a SWIG wrapped class - a slimmed down version of six.add_metaclass"""
    def wrapper(cls):
        return metaclass(cls.__name__, cls.__bases__, cls.__dict__.copy())
    return wrapper


class _SwigNonDynamicMeta(type):
    """Meta class to enforce nondynamic attributes (no new attributes) for a class"""
    __setattr__ = _swig_setattr_nondynamic_class_variable(type.__setattr__)


class SwigPyIterator(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined - class is abstract")
    __repr__ = _swig_repr
    __swig_destroy__ = _conf.delete_SwigPyIterator

    def value(self):
        return _conf.SwigPyIterator_value(self)

    def incr(self, n=1):
        return _conf.SwigPyIterator_incr(self, n)

    def decr(self, n=1):
        return _conf.SwigPyIterator_decr(self, n)

    def distance(self, x):
        return _conf.SwigPyIterator_distance(self, x)

    def equal(self, x):
        return _conf.SwigPyIterator_equal(self, x)

    def copy(self):
        return _conf.SwigPyIterator_copy(self)

    def next(self):
        return _conf.SwigPyIterator_next(self)

    def __next__(self):
        return _conf.SwigPyIterator___next__(self)

    def previous(self):
        return _conf.SwigPyIterator_previous(self)

    def advance(self, n):
        return _conf.SwigPyIterator_advance(self, n)

    def __eq__(self, x):
        return _conf.SwigPyIterator___eq__(self, x)

    def __ne__(self, x):
        return _conf.SwigPyIterator___ne__(self, x)

    def __iadd__(self, n):
        return _conf.SwigPyIterator___iadd__(self, n)

    def __isub__(self, n):
        return _conf.SwigPyIterator___isub__(self, n)

    def __add__(self, n):
        return _conf.SwigPyIterator___add__(self, n)

    def __sub__(self, *args):
        return _conf.SwigPyIterator___sub__(self, *args)
    def __iter__(self):
        return self

# Register SwigPyIterator in _conf:
_conf.SwigPyIterator_swigregister(SwigPyIterator)
import libdnf.common_types
class Option(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined - class is abstract")
    __repr__ = _swig_repr
    Priority_EMPTY = _conf.Option_Priority_EMPTY
    Priority_DEFAULT = _conf.Option_Priority_DEFAULT
    Priority_MAINCONFIG = _conf.Option_Priority_MAINCONFIG
    Priority_AUTOMATICCONFIG = _conf.Option_Priority_AUTOMATICCONFIG
    Priority_REPOCONFIG = _conf.Option_Priority_REPOCONFIG
    Priority_PLUGINDEFAULT = _conf.Option_Priority_PLUGINDEFAULT
    Priority_PLUGINCONFIG = _conf.Option_Priority_PLUGINCONFIG
    Priority_DROPINCONFIG = _conf.Option_Priority_DROPINCONFIG
    Priority_COMMANDLINE = _conf.Option_Priority_COMMANDLINE
    Priority_RUNTIME = _conf.Option_Priority_RUNTIME

    def clone(self):
        return _conf.Option_clone(self)

    def getPriority(self):
        return _conf.Option_getPriority(self)

    def set(self, priority, value):
        return _conf.Option_set(self, priority, value)

    def getValueString(self):
        return _conf.Option_getValueString(self)

    def empty(self):
        return _conf.Option_empty(self)

    def reset(self):
        return _conf.Option_reset(self)
    __swig_destroy__ = _conf.delete_Option

# Register Option in _conf:
_conf.Option_swigregister(Option)
class OptionBool(Option):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        _conf.OptionBool_swiginit(self, _conf.new_OptionBool(*args))

    def clone(self):
        return _conf.OptionBool_clone(self)

    def test(self, arg2):
        return _conf.OptionBool_test(self, arg2)

    def fromString(self, value):
        return _conf.OptionBool_fromString(self, value)

    def set(self, *args):
        return _conf.OptionBool_set(self, *args)

    def getValue(self):
        return _conf.OptionBool_getValue(self)

    def getDefaultValue(self):
        return _conf.OptionBool_getDefaultValue(self)

    def toString(self, value):
        return _conf.OptionBool_toString(self, value)

    def getValueString(self):
        return _conf.OptionBool_getValueString(self)

    def getTrueValues(self):
        return _conf.OptionBool_getTrueValues(self)

    def getFalseValues(self):
        return _conf.OptionBool_getFalseValues(self)

    def reset(self):
        return _conf.OptionBool_reset(self)
    __swig_destroy__ = _conf.delete_OptionBool

# Register OptionBool in _conf:
_conf.OptionBool_swigregister(OptionBool)
cvar = _conf.cvar
defTrueValues = cvar.defTrueValues
defFalseValues = cvar.defFalseValues

class OptionEnumString(Option):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        _conf.OptionEnumString_swiginit(self, _conf.new_OptionEnumString(*args))

    def clone(self):
        return _conf.OptionEnumString_clone(self)

    def test(self, value):
        return _conf.OptionEnumString_test(self, value)

    def fromString(self, value):
        return _conf.OptionEnumString_fromString(self, value)

    def set(self, priority, value):
        return _conf.OptionEnumString_set(self, priority, value)

    def getValue(self):
        return _conf.OptionEnumString_getValue(self)

    def getDefaultValue(self):
        return _conf.OptionEnumString_getDefaultValue(self)

    def getValueString(self):
        return _conf.OptionEnumString_getValueString(self)

    def reset(self):
        return _conf.OptionEnumString_reset(self)
    __swig_destroy__ = _conf.delete_OptionEnumString

# Register OptionEnumString in _conf:
_conf.OptionEnumString_swigregister(OptionEnumString)
class OptionNumberInt32(Option):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        _conf.OptionNumberInt32_swiginit(self, _conf.new_OptionNumberInt32(*args))

    def clone(self):
        return _conf.OptionNumberInt32_clone(self)

    def test(self, value):
        return _conf.OptionNumberInt32_test(self, value)

    def fromString(self, value):
        return _conf.OptionNumberInt32_fromString(self, value)

    def set(self, *args):
        return _conf.OptionNumberInt32_set(self, *args)

    def getValue(self):
        return _conf.OptionNumberInt32_getValue(self)

    def getDefaultValue(self):
        return _conf.OptionNumberInt32_getDefaultValue(self)

    def toString(self, value):
        return _conf.OptionNumberInt32_toString(self, value)

    def getValueString(self):
        return _conf.OptionNumberInt32_getValueString(self)

    def reset(self):
        return _conf.OptionNumberInt32_reset(self)
    __swig_destroy__ = _conf.delete_OptionNumberInt32

# Register OptionNumberInt32 in _conf:
_conf.OptionNumberInt32_swigregister(OptionNumberInt32)
class OptionNumberUInt32(Option):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        _conf.OptionNumberUInt32_swiginit(self, _conf.new_OptionNumberUInt32(*args))

    def clone(self):
        return _conf.OptionNumberUInt32_clone(self)

    def test(self, value):
        return _conf.OptionNumberUInt32_test(self, value)

    def fromString(self, value):
        return _conf.OptionNumberUInt32_fromString(self, value)

    def set(self, *args):
        return _conf.OptionNumberUInt32_set(self, *args)

    def getValue(self):
        return _conf.OptionNumberUInt32_getValue(self)

    def getDefaultValue(self):
        return _conf.OptionNumberUInt32_getDefaultValue(self)

    def toString(self, value):
        return _conf.OptionNumberUInt32_toString(self, value)

    def getValueString(self):
        return _conf.OptionNumberUInt32_getValueString(self)

    def reset(self):
        return _conf.OptionNumberUInt32_reset(self)
    __swig_destroy__ = _conf.delete_OptionNumberUInt32

# Register OptionNumberUInt32 in _conf:
_conf.OptionNumberUInt32_swigregister(OptionNumberUInt32)
class OptionNumberInt64(Option):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        _conf.OptionNumberInt64_swiginit(self, _conf.new_OptionNumberInt64(*args))

    def clone(self):
        return _conf.OptionNumberInt64_clone(self)

    def test(self, value):
        return _conf.OptionNumberInt64_test(self, value)

    def fromString(self, value):
        return _conf.OptionNumberInt64_fromString(self, value)

    def set(self, *args):
        return _conf.OptionNumberInt64_set(self, *args)

    def getValue(self):
        return _conf.OptionNumberInt64_getValue(self)

    def getDefaultValue(self):
        return _conf.OptionNumberInt64_getDefaultValue(self)

    def toString(self, value):
        return _conf.OptionNumberInt64_toString(self, value)

    def getValueString(self):
        return _conf.OptionNumberInt64_getValueString(self)

    def reset(self):
        return _conf.OptionNumberInt64_reset(self)
    __swig_destroy__ = _conf.delete_OptionNumberInt64

# Register OptionNumberInt64 in _conf:
_conf.OptionNumberInt64_swigregister(OptionNumberInt64)
class OptionNumberUInt64(Option):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        _conf.OptionNumberUInt64_swiginit(self, _conf.new_OptionNumberUInt64(*args))

    def clone(self):
        return _conf.OptionNumberUInt64_clone(self)

    def test(self, value):
        return _conf.OptionNumberUInt64_test(self, value)

    def fromString(self, value):
        return _conf.OptionNumberUInt64_fromString(self, value)

    def set(self, *args):
        return _conf.OptionNumberUInt64_set(self, *args)

    def getValue(self):
        return _conf.OptionNumberUInt64_getValue(self)

    def getDefaultValue(self):
        return _conf.OptionNumberUInt64_getDefaultValue(self)

    def toString(self, value):
        return _conf.OptionNumberUInt64_toString(self, value)

    def getValueString(self):
        return _conf.OptionNumberUInt64_getValueString(self)

    def reset(self):
        return _conf.OptionNumberUInt64_reset(self)
    __swig_destroy__ = _conf.delete_OptionNumberUInt64

# Register OptionNumberUInt64 in _conf:
_conf.OptionNumberUInt64_swigregister(OptionNumberUInt64)
class OptionNumberFloat(Option):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        _conf.OptionNumberFloat_swiginit(self, _conf.new_OptionNumberFloat(*args))

    def clone(self):
        return _conf.OptionNumberFloat_clone(self)

    def test(self, value):
        return _conf.OptionNumberFloat_test(self, value)

    def fromString(self, value):
        return _conf.OptionNumberFloat_fromString(self, value)

    def set(self, *args):
        return _conf.OptionNumberFloat_set(self, *args)

    def getValue(self):
        return _conf.OptionNumberFloat_getValue(self)

    def getDefaultValue(self):
        return _conf.OptionNumberFloat_getDefaultValue(self)

    def toString(self, value):
        return _conf.OptionNumberFloat_toString(self, value)

    def getValueString(self):
        return _conf.OptionNumberFloat_getValueString(self)

    def reset(self):
        return _conf.OptionNumberFloat_reset(self)
    __swig_destroy__ = _conf.delete_OptionNumberFloat

# Register OptionNumberFloat in _conf:
_conf.OptionNumberFloat_swigregister(OptionNumberFloat)
class OptionSeconds(OptionNumberInt32):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        _conf.OptionSeconds_swiginit(self, _conf.new_OptionSeconds(*args))

    def clone(self):
        return _conf.OptionSeconds_clone(self)

    def fromString(self, value):
        return _conf.OptionSeconds_fromString(self, value)

    def set(self, *args):
        return _conf.OptionSeconds_set(self, *args)
    __swig_destroy__ = _conf.delete_OptionSeconds

# Register OptionSeconds in _conf:
_conf.OptionSeconds_swigregister(OptionSeconds)
class OptionString(Option):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        _conf.OptionString_swiginit(self, _conf.new_OptionString(*args))

    def clone(self):
        return _conf.OptionString_clone(self)

    def test(self, value):
        return _conf.OptionString_test(self, value)

    def set(self, priority, value):
        return _conf.OptionString_set(self, priority, value)

    def fromString(self, value):
        return _conf.OptionString_fromString(self, value)

    def getValue(self):
        return _conf.OptionString_getValue(self)

    def getDefaultValue(self):
        return _conf.OptionString_getDefaultValue(self)

    def getValueString(self):
        return _conf.OptionString_getValueString(self)

    def reset(self):
        return _conf.OptionString_reset(self)
    __swig_destroy__ = _conf.delete_OptionString

# Register OptionString in _conf:
_conf.OptionString_swigregister(OptionString)
class OptionStringList(Option):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        _conf.OptionStringList_swiginit(self, _conf.new_OptionStringList(*args))

    def clone(self):
        return _conf.OptionStringList_clone(self)

    def test(self, value):
        return _conf.OptionStringList_test(self, value)

    def fromString(self, value):
        return _conf.OptionStringList_fromString(self, value)

    def set(self, *args):
        return _conf.OptionStringList_set(self, *args)

    def getValue(self):
        return _conf.OptionStringList_getValue(self)

    def getDefaultValue(self):
        return _conf.OptionStringList_getDefaultValue(self)

    def toString(self, value):
        return _conf.OptionStringList_toString(self, value)

    def getValueString(self):
        return _conf.OptionStringList_getValueString(self)

    def reset(self):
        return _conf.OptionStringList_reset(self)
    __swig_destroy__ = _conf.delete_OptionStringList

# Register OptionStringList in _conf:
_conf.OptionStringList_swigregister(OptionStringList)
class OptionPath(OptionString):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        _conf.OptionPath_swiginit(self, _conf.new_OptionPath(*args))

    def clone(self):
        return _conf.OptionPath_clone(self)

    def test(self, value):
        return _conf.OptionPath_test(self, value)

    def set(self, priority, value):
        return _conf.OptionPath_set(self, priority, value)
    __swig_destroy__ = _conf.delete_OptionPath

# Register OptionPath in _conf:
_conf.OptionPath_swigregister(OptionPath)
class OptionChildBool(Option):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, parent):
        _conf.OptionChildBool_swiginit(self, _conf.new_OptionChildBool(parent))

    def clone(self):
        return _conf.OptionChildBool_clone(self)

    def getPriority(self):
        return _conf.OptionChildBool_getPriority(self)

    def set(self, *args):
        return _conf.OptionChildBool_set(self, *args)

    def getValue(self):
        return _conf.OptionChildBool_getValue(self)

    def getDefaultValue(self):
        return _conf.OptionChildBool_getDefaultValue(self)

    def getValueString(self):
        return _conf.OptionChildBool_getValueString(self)

    def empty(self):
        return _conf.OptionChildBool_empty(self)

    def reset(self):
        return _conf.OptionChildBool_reset(self)
    __swig_destroy__ = _conf.delete_OptionChildBool

# Register OptionChildBool in _conf:
_conf.OptionChildBool_swigregister(OptionChildBool)
class OptionChildString(Option):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, parent):
        _conf.OptionChildString_swiginit(self, _conf.new_OptionChildString(parent))

    def clone(self):
        return _conf.OptionChildString_clone(self)

    def getPriority(self):
        return _conf.OptionChildString_getPriority(self)

    def set(self, *args):
        return _conf.OptionChildString_set(self, *args)

    def getValue(self):
        return _conf.OptionChildString_getValue(self)

    def getDefaultValue(self):
        return _conf.OptionChildString_getDefaultValue(self)

    def getValueString(self):
        return _conf.OptionChildString_getValueString(self)

    def empty(self):
        return _conf.OptionChildString_empty(self)

    def reset(self):
        return _conf.OptionChildString_reset(self)
    __swig_destroy__ = _conf.delete_OptionChildString

# Register OptionChildString in _conf:
_conf.OptionChildString_swigregister(OptionChildString)
class OptionChildStringList(Option):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, parent):
        _conf.OptionChildStringList_swiginit(self, _conf.new_OptionChildStringList(parent))

    def clone(self):
        return _conf.OptionChildStringList_clone(self)

    def getPriority(self):
        return _conf.OptionChildStringList_getPriority(self)

    def set(self, *args):
        return _conf.OptionChildStringList_set(self, *args)

    def getValue(self):
        return _conf.OptionChildStringList_getValue(self)

    def getDefaultValue(self):
        return _conf.OptionChildStringList_getDefaultValue(self)

    def getValueString(self):
        return _conf.OptionChildStringList_getValueString(self)

    def empty(self):
        return _conf.OptionChildStringList_empty(self)

    def reset(self):
        return _conf.OptionChildStringList_reset(self)
    __swig_destroy__ = _conf.delete_OptionChildStringList

# Register OptionChildStringList in _conf:
_conf.OptionChildStringList_swigregister(OptionChildStringList)
class OptionChildNumberInt32(Option):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, parent):
        _conf.OptionChildNumberInt32_swiginit(self, _conf.new_OptionChildNumberInt32(parent))

    def clone(self):
        return _conf.OptionChildNumberInt32_clone(self)

    def getPriority(self):
        return _conf.OptionChildNumberInt32_getPriority(self)

    def set(self, *args):
        return _conf.OptionChildNumberInt32_set(self, *args)

    def getValue(self):
        return _conf.OptionChildNumberInt32_getValue(self)

    def getDefaultValue(self):
        return _conf.OptionChildNumberInt32_getDefaultValue(self)

    def getValueString(self):
        return _conf.OptionChildNumberInt32_getValueString(self)

    def empty(self):
        return _conf.OptionChildNumberInt32_empty(self)

    def reset(self):
        return _conf.OptionChildNumberInt32_reset(self)
    __swig_destroy__ = _conf.delete_OptionChildNumberInt32

# Register OptionChildNumberInt32 in _conf:
_conf.OptionChildNumberInt32_swigregister(OptionChildNumberInt32)
class OptionChildNumberUInt32(Option):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, parent):
        _conf.OptionChildNumberUInt32_swiginit(self, _conf.new_OptionChildNumberUInt32(parent))

    def clone(self):
        return _conf.OptionChildNumberUInt32_clone(self)

    def getPriority(self):
        return _conf.OptionChildNumberUInt32_getPriority(self)

    def set(self, *args):
        return _conf.OptionChildNumberUInt32_set(self, *args)

    def getValue(self):
        return _conf.OptionChildNumberUInt32_getValue(self)

    def getDefaultValue(self):
        return _conf.OptionChildNumberUInt32_getDefaultValue(self)

    def getValueString(self):
        return _conf.OptionChildNumberUInt32_getValueString(self)

    def empty(self):
        return _conf.OptionChildNumberUInt32_empty(self)

    def reset(self):
        return _conf.OptionChildNumberUInt32_reset(self)
    __swig_destroy__ = _conf.delete_OptionChildNumberUInt32

# Register OptionChildNumberUInt32 in _conf:
_conf.OptionChildNumberUInt32_swigregister(OptionChildNumberUInt32)
class OptionChildNumberFloat(Option):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, parent):
        _conf.OptionChildNumberFloat_swiginit(self, _conf.new_OptionChildNumberFloat(parent))

    def clone(self):
        return _conf.OptionChildNumberFloat_clone(self)

    def getPriority(self):
        return _conf.OptionChildNumberFloat_getPriority(self)

    def set(self, *args):
        return _conf.OptionChildNumberFloat_set(self, *args)

    def getValue(self):
        return _conf.OptionChildNumberFloat_getValue(self)

    def getDefaultValue(self):
        return _conf.OptionChildNumberFloat_getDefaultValue(self)

    def getValueString(self):
        return _conf.OptionChildNumberFloat_getValueString(self)

    def empty(self):
        return _conf.OptionChildNumberFloat_empty(self)

    def reset(self):
        return _conf.OptionChildNumberFloat_reset(self)
    __swig_destroy__ = _conf.delete_OptionChildNumberFloat

# Register OptionChildNumberFloat in _conf:
_conf.OptionChildNumberFloat_swigregister(OptionChildNumberFloat)
class OptionChildEnumString(Option):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, parent):
        _conf.OptionChildEnumString_swiginit(self, _conf.new_OptionChildEnumString(parent))

    def clone(self):
        return _conf.OptionChildEnumString_clone(self)

    def getPriority(self):
        return _conf.OptionChildEnumString_getPriority(self)

    def set(self, *args):
        return _conf.OptionChildEnumString_set(self, *args)

    def getValue(self):
        return _conf.OptionChildEnumString_getValue(self)

    def getDefaultValue(self):
        return _conf.OptionChildEnumString_getDefaultValue(self)

    def getValueString(self):
        return _conf.OptionChildEnumString_getValueString(self)

    def empty(self):
        return _conf.OptionChildEnumString_empty(self)

    def reset(self):
        return _conf.OptionChildEnumString_reset(self)
    __swig_destroy__ = _conf.delete_OptionChildEnumString

# Register OptionChildEnumString in _conf:
_conf.OptionChildEnumString_swigregister(OptionChildEnumString)
class OptionChildSeconds(Option):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, parent):
        _conf.OptionChildSeconds_swiginit(self, _conf.new_OptionChildSeconds(parent))

    def clone(self):
        return _conf.OptionChildSeconds_clone(self)

    def getPriority(self):
        return _conf.OptionChildSeconds_getPriority(self)

    def set(self, *args):
        return _conf.OptionChildSeconds_set(self, *args)

    def getValue(self):
        return _conf.OptionChildSeconds_getValue(self)

    def getDefaultValue(self):
        return _conf.OptionChildSeconds_getDefaultValue(self)

    def getValueString(self):
        return _conf.OptionChildSeconds_getValueString(self)

    def empty(self):
        return _conf.OptionChildSeconds_empty(self)

    def reset(self):
        return _conf.OptionChildSeconds_reset(self)
    __swig_destroy__ = _conf.delete_OptionChildSeconds

# Register OptionChildSeconds in _conf:
_conf.OptionChildSeconds_swigregister(OptionChildSeconds)
class VectorString(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def iterator(self):
        return _conf.VectorString_iterator(self)
    def __iter__(self):
        return self.iterator()

    def __nonzero__(self):
        return _conf.VectorString___nonzero__(self)

    def __bool__(self):
        return _conf.VectorString___bool__(self)

    def __len__(self):
        return _conf.VectorString___len__(self)

    def __getslice__(self, i, j):
        return _conf.VectorString___getslice__(self, i, j)

    def __setslice__(self, *args):
        return _conf.VectorString___setslice__(self, *args)

    def __delslice__(self, i, j):
        return _conf.VectorString___delslice__(self, i, j)

    def __delitem__(self, *args):
        return _conf.VectorString___delitem__(self, *args)

    def __getitem__(self, *args):
        return _conf.VectorString___getitem__(self, *args)

    def __setitem__(self, *args):
        return _conf.VectorString___setitem__(self, *args)

    def pop(self):
        return _conf.VectorString_pop(self)

    def append(self, x):
        return _conf.VectorString_append(self, x)

    def empty(self):
        return _conf.VectorString_empty(self)

    def size(self):
        return _conf.VectorString_size(self)

    def swap(self, v):
        return _conf.VectorString_swap(self, v)

    def begin(self):
        return _conf.VectorString_begin(self)

    def end(self):
        return _conf.VectorString_end(self)

    def rbegin(self):
        return _conf.VectorString_rbegin(self)

    def rend(self):
        return _conf.VectorString_rend(self)

    def clear(self):
        return _conf.VectorString_clear(self)

    def get_allocator(self):
        return _conf.VectorString_get_allocator(self)

    def pop_back(self):
        return _conf.VectorString_pop_back(self)

    def erase(self, *args):
        return _conf.VectorString_erase(self, *args)

    def __init__(self, *args):
        _conf.VectorString_swiginit(self, _conf.new_VectorString(*args))

    def push_back(self, x):
        return _conf.VectorString_push_back(self, x)

    def front(self):
        return _conf.VectorString_front(self)

    def back(self):
        return _conf.VectorString_back(self)

    def assign(self, n, x):
        return _conf.VectorString_assign(self, n, x)

    def resize(self, *args):
        return _conf.VectorString_resize(self, *args)

    def insert(self, *args):
        return _conf.VectorString_insert(self, *args)

    def reserve(self, n):
        return _conf.VectorString_reserve(self, n)

    def capacity(self):
        return _conf.VectorString_capacity(self)
    __swig_destroy__ = _conf.delete_VectorString

# Register VectorString in _conf:
_conf.VectorString_swigregister(VectorString)


def VectorString__str__(self):
    return str(list(self))
VectorString.__str__ = VectorString__str__

def VectorString__eq__(self, other):
    return list(self) == list(other)
VectorString.__eq__ = VectorString__eq__

def VectorString__ne__(self, other):
    return list(self) != list(other)
VectorString.__ne__ = VectorString__ne__

def VectorString__lt__(self, other):
    return list(self) < list(other)
VectorString.__lt__ = VectorString__lt__

def VectorString__le__(self, other):
    return list(self) <= list(other)
VectorString.__le__ = VectorString__le__

def VectorString__gt__(self, other):
    return list(self) > list(other)
VectorString.__gt__ = VectorString__gt__

def VectorString__ge__(self, other):
    return list(self) >= list(other)
VectorString.__ge__ = VectorString__ge__

def VectorString__iadd__(self, value):
    self.extend(value)
    return self
VectorString.__iadd__ = VectorString__iadd__

def VectorString__imul__(self, value):
    data = list(self)
    data *= value
    self.clear()
    self.extend(data)
    return self
VectorString.__imul__ = VectorString__imul__

def VectorString__mul__(self, value):
    result = self.copy()
    result *= value
    return result
VectorString.__mul__ = VectorString__mul__

def VectorString__rmul__(self, value):
    return self * value
VectorString.__rmul__ = VectorString__rmul__

def VectorString__add__(self, value):
    result = self.copy()
    result.extend(value)
    return result
VectorString.__add__ = VectorString__add__

def VectorString__append(self, item):
    self.push_back(item)
VectorString.append = VectorString__append

def VectorString__copy(self):
    return VectorString(list(self))
VectorString.copy = VectorString__copy

def VectorString__count(self, item):
    return list(self).count(item)
VectorString.count = VectorString__count

def VectorString__extend(self, iterable):
    for i in iterable:
        self.push_back(i)
VectorString.extend = VectorString__extend

def VectorString__index(self, *args, **kwargs):
    data = list(self)
    return data.index(*args, **kwargs)
VectorString.index = VectorString__index

def VectorString__insert(self, *args, **kwargs):
    data = list(self)
    data.insert(*args, **kwargs)
    self.clear()
    self.extend(data)
VectorString.insert = VectorString__insert

def VectorString__remove(self, *args, **kwargs):
    data = list(self)
    data.remove(*args, **kwargs)
    self.clear()
    self.extend(data)
VectorString.remove = VectorString__remove

def VectorString__sort(self, *args, **kwargs):
    data = list(self)
    data.sort()
    self.clear()
    self.extend(data)
VectorString.sort = VectorString__sort

def VectorString__reverse(self, *args, **kwargs):
    data = list(self)
    data.reverse()
    self.clear()
    self.extend(data)
VectorString.reverse = VectorString__reverse

class OptionBinds(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def add(self, id, option):
        return _conf.OptionBinds_add(self, id, option)

    def at(self, *args):
        return _conf.OptionBinds_at(self, *args)

    def empty(self):
        return _conf.OptionBinds_empty(self)

    def size(self):
        return _conf.OptionBinds_size(self)

    def __getitem__(self, id):
        return _conf.OptionBinds___getitem__(self, id)

    def __len__(self):
        return _conf.OptionBinds___len__(self)

    def __iter__(self):
        return _conf.OptionBinds___iter__(self)

    def __init__(self):
        _conf.OptionBinds_swiginit(self, _conf.new_OptionBinds())
    __swig_destroy__ = _conf.delete_OptionBinds

# Register OptionBinds in _conf:
_conf.OptionBinds_swigregister(OptionBinds)
class OptionBinds_Item(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined")
    __repr__ = _swig_repr

    def getPriority(self):
        return _conf.OptionBinds_Item_getPriority(self)

    def newString(self, priority, value):
        return _conf.OptionBinds_Item_newString(self, priority, value)

    def getValueString(self):
        return _conf.OptionBinds_Item_getValueString(self)

    def getAddValue(self):
        return _conf.OptionBinds_Item_getAddValue(self)

    def getOption(self, *args):
        return _conf.OptionBinds_Item_getOption(self, *args)
    __swig_destroy__ = _conf.delete_OptionBinds_Item

# Register OptionBinds_Item in _conf:
_conf.OptionBinds_Item_swigregister(OptionBinds_Item)
class Config(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def optBinds(self):
        return _conf.Config_optBinds(self)

    def __init__(self):
        _conf.Config_swiginit(self, _conf.new_Config())
    __swig_destroy__ = _conf.delete_Config

# Register Config in _conf:
_conf.Config_swigregister(Config)
class ConfigMain(Config):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self):
        _conf.ConfigMain_swiginit(self, _conf.new_ConfigMain())
    __swig_destroy__ = _conf.delete_ConfigMain

    def debuglevel(self):
        return _conf.ConfigMain_debuglevel(self)

    def errorlevel(self):
        return _conf.ConfigMain_errorlevel(self)

    def logfilelevel(self):
        return _conf.ConfigMain_logfilelevel(self)

    def installroot(self):
        return _conf.ConfigMain_installroot(self)

    def config_file_path(self):
        return _conf.ConfigMain_config_file_path(self)

    def plugins(self):
        return _conf.ConfigMain_plugins(self)

    def pluginpath(self):
        return _conf.ConfigMain_pluginpath(self)

    def pluginconfpath(self):
        return _conf.ConfigMain_pluginconfpath(self)

    def persistdir(self):
        return _conf.ConfigMain_persistdir(self)

    def transformdb(self):
        return _conf.ConfigMain_transformdb(self)

    def recent(self):
        return _conf.ConfigMain_recent(self)

    def reset_nice(self):
        return _conf.ConfigMain_reset_nice(self)

    def system_cachedir(self):
        return _conf.ConfigMain_system_cachedir(self)

    def cacheonly(self):
        return _conf.ConfigMain_cacheonly(self)

    def keepcache(self):
        return _conf.ConfigMain_keepcache(self)

    def logdir(self):
        return _conf.ConfigMain_logdir(self)

    def log_size(self):
        return _conf.ConfigMain_log_size(self)

    def log_rotate(self):
        return _conf.ConfigMain_log_rotate(self)

    def log_compress(self):
        return _conf.ConfigMain_log_compress(self)

    def varsdir(self):
        return _conf.ConfigMain_varsdir(self)

    def reposdir(self):
        return _conf.ConfigMain_reposdir(self)

    def debug_solver(self):
        return _conf.ConfigMain_debug_solver(self)

    def installonlypkgs(self):
        return _conf.ConfigMain_installonlypkgs(self)

    def group_package_types(self):
        return _conf.ConfigMain_group_package_types(self)

    def installonly_limit(self):
        return _conf.ConfigMain_installonly_limit(self)

    def tsflags(self):
        return _conf.ConfigMain_tsflags(self)

    def assumeyes(self):
        return _conf.ConfigMain_assumeyes(self)

    def assumeno(self):
        return _conf.ConfigMain_assumeno(self)

    def check_config_file_age(self):
        return _conf.ConfigMain_check_config_file_age(self)

    def defaultyes(self):
        return _conf.ConfigMain_defaultyes(self)

    def diskspacecheck(self):
        return _conf.ConfigMain_diskspacecheck(self)

    def localpkg_gpgcheck(self):
        return _conf.ConfigMain_localpkg_gpgcheck(self)

    def gpgkey_dns_verification(self):
        return _conf.ConfigMain_gpgkey_dns_verification(self)

    def obsoletes(self):
        return _conf.ConfigMain_obsoletes(self)

    def showdupesfromrepos(self):
        return _conf.ConfigMain_showdupesfromrepos(self)

    def exit_on_lock(self):
        return _conf.ConfigMain_exit_on_lock(self)

    def allow_vendor_change(self):
        return _conf.ConfigMain_allow_vendor_change(self)

    def metadata_timer_sync(self):
        return _conf.ConfigMain_metadata_timer_sync(self)

    def disable_excludes(self):
        return _conf.ConfigMain_disable_excludes(self)

    def multilib_policy(self):
        return _conf.ConfigMain_multilib_policy(self)

    def best(self):
        return _conf.ConfigMain_best(self)

    def install_weak_deps(self):
        return _conf.ConfigMain_install_weak_deps(self)

    def bugtracker_url(self):
        return _conf.ConfigMain_bugtracker_url(self)

    def zchunk(self):
        return _conf.ConfigMain_zchunk(self)

    def color(self):
        return _conf.ConfigMain_color(self)

    def color_list_installed_older(self):
        return _conf.ConfigMain_color_list_installed_older(self)

    def color_list_installed_newer(self):
        return _conf.ConfigMain_color_list_installed_newer(self)

    def color_list_installed_reinstall(self):
        return _conf.ConfigMain_color_list_installed_reinstall(self)

    def color_list_installed_extra(self):
        return _conf.ConfigMain_color_list_installed_extra(self)

    def color_list_available_upgrade(self):
        return _conf.ConfigMain_color_list_available_upgrade(self)

    def color_list_available_downgrade(self):
        return _conf.ConfigMain_color_list_available_downgrade(self)

    def color_list_available_reinstall(self):
        return _conf.ConfigMain_color_list_available_reinstall(self)

    def color_list_available_install(self):
        return _conf.ConfigMain_color_list_available_install(self)

    def color_update_installed(self):
        return _conf.ConfigMain_color_update_installed(self)

    def color_update_local(self):
        return _conf.ConfigMain_color_update_local(self)

    def color_update_remote(self):
        return _conf.ConfigMain_color_update_remote(self)

    def color_search_match(self):
        return _conf.ConfigMain_color_search_match(self)

    def history_record(self):
        return _conf.ConfigMain_history_record(self)

    def history_record_packages(self):
        return _conf.ConfigMain_history_record_packages(self)

    def rpmverbosity(self):
        return _conf.ConfigMain_rpmverbosity(self)

    def strict(self):
        return _conf.ConfigMain_strict(self)

    def skip_broken(self):
        return _conf.ConfigMain_skip_broken(self)

    def autocheck_running_kernel(self):
        return _conf.ConfigMain_autocheck_running_kernel(self)

    def clean_requirements_on_remove(self):
        return _conf.ConfigMain_clean_requirements_on_remove(self)

    def history_list_view(self):
        return _conf.ConfigMain_history_list_view(self)

    def upgrade_group_objects_upgrade(self):
        return _conf.ConfigMain_upgrade_group_objects_upgrade(self)

    def destdir(self):
        return _conf.ConfigMain_destdir(self)

    def comment(self):
        return _conf.ConfigMain_comment(self)

    def downloadonly(self):
        return _conf.ConfigMain_downloadonly(self)

    def ignorearch(self):
        return _conf.ConfigMain_ignorearch(self)

    def module_platform_id(self):
        return _conf.ConfigMain_module_platform_id(self)

    def module_stream_switch(self):
        return _conf.ConfigMain_module_stream_switch(self)

    def module_obsoletes(self):
        return _conf.ConfigMain_module_obsoletes(self)

    def user_agent(self):
        return _conf.ConfigMain_user_agent(self)

    def countme(self):
        return _conf.ConfigMain_countme(self)

    def protect_running_kernel(self):
        return _conf.ConfigMain_protect_running_kernel(self)

    def retries(self):
        return _conf.ConfigMain_retries(self)

    def cachedir(self):
        return _conf.ConfigMain_cachedir(self)

    def fastestmirror(self):
        return _conf.ConfigMain_fastestmirror(self)

    def excludepkgs(self):
        return _conf.ConfigMain_excludepkgs(self)

    def includepkgs(self):
        return _conf.ConfigMain_includepkgs(self)

    def exclude_from_weak(self):
        return _conf.ConfigMain_exclude_from_weak(self)

    def exclude_from_weak_autodetect(self):
        return _conf.ConfigMain_exclude_from_weak_autodetect(self)

    def proxy(self):
        return _conf.ConfigMain_proxy(self)

    def proxy_username(self):
        return _conf.ConfigMain_proxy_username(self)

    def proxy_password(self):
        return _conf.ConfigMain_proxy_password(self)

    def proxy_auth_method(self):
        return _conf.ConfigMain_proxy_auth_method(self)

    def protected_packages(self):
        return _conf.ConfigMain_protected_packages(self)

    def username(self):
        return _conf.ConfigMain_username(self)

    def password(self):
        return _conf.ConfigMain_password(self)

    def gpgcheck(self):
        return _conf.ConfigMain_gpgcheck(self)

    def repo_gpgcheck(self):
        return _conf.ConfigMain_repo_gpgcheck(self)

    def enabled(self):
        return _conf.ConfigMain_enabled(self)

    def enablegroups(self):
        return _conf.ConfigMain_enablegroups(self)

    def bandwidth(self):
        return _conf.ConfigMain_bandwidth(self)

    def minrate(self):
        return _conf.ConfigMain_minrate(self)

    def ip_resolve(self):
        return _conf.ConfigMain_ip_resolve(self)

    def throttle(self):
        return _conf.ConfigMain_throttle(self)

    def timeout(self):
        return _conf.ConfigMain_timeout(self)

    def max_parallel_downloads(self):
        return _conf.ConfigMain_max_parallel_downloads(self)

    def max_downloads_per_mirror(self):
        return _conf.ConfigMain_max_downloads_per_mirror(self)

    def metadata_expire(self):
        return _conf.ConfigMain_metadata_expire(self)

    def sslcacert(self):
        return _conf.ConfigMain_sslcacert(self)

    def sslverify(self):
        return _conf.ConfigMain_sslverify(self)

    def sslclientcert(self):
        return _conf.ConfigMain_sslclientcert(self)

    def sslclientkey(self):
        return _conf.ConfigMain_sslclientkey(self)

    def proxy_sslcacert(self):
        return _conf.ConfigMain_proxy_sslcacert(self)

    def proxy_sslverify(self):
        return _conf.ConfigMain_proxy_sslverify(self)

    def proxy_sslclientcert(self):
        return _conf.ConfigMain_proxy_sslclientcert(self)

    def proxy_sslclientkey(self):
        return _conf.ConfigMain_proxy_sslclientkey(self)

    def deltarpm(self):
        return _conf.ConfigMain_deltarpm(self)

    def deltarpm_percentage(self):
        return _conf.ConfigMain_deltarpm_percentage(self)

    def skip_if_unavailable(self):
        return _conf.ConfigMain_skip_if_unavailable(self)

    def sslverifystatus(self):
        return _conf.ConfigMain_sslverifystatus(self)

    @staticmethod
    def addVarsFromDir(varsMap, dirPath):
        return _conf.ConfigMain_addVarsFromDir(varsMap, dirPath)

    @staticmethod
    def addVarsFromEnv(varsMap):
        return _conf.ConfigMain_addVarsFromEnv(varsMap)

# Register ConfigMain in _conf:
_conf.ConfigMain_swigregister(ConfigMain)
class ConfigRepo(Config):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    __swig_destroy__ = _conf.delete_ConfigRepo

    def __init__(self, *args):
        _conf.ConfigRepo_swiginit(self, _conf.new_ConfigRepo(*args))

    def getMainConfig(self):
        return _conf.ConfigRepo_getMainConfig(self)

    def name(self):
        return _conf.ConfigRepo_name(self)

    def enabled(self):
        return _conf.ConfigRepo_enabled(self)

    def basecachedir(self):
        return _conf.ConfigRepo_basecachedir(self)

    def baseurl(self):
        return _conf.ConfigRepo_baseurl(self)

    def mirrorlist(self):
        return _conf.ConfigRepo_mirrorlist(self)

    def metalink(self):
        return _conf.ConfigRepo_metalink(self)

    def type(self):
        return _conf.ConfigRepo_type(self)

    def mediaid(self):
        return _conf.ConfigRepo_mediaid(self)

    def gpgkey(self):
        return _conf.ConfigRepo_gpgkey(self)

    def excludepkgs(self):
        return _conf.ConfigRepo_excludepkgs(self)

    def includepkgs(self):
        return _conf.ConfigRepo_includepkgs(self)

    def fastestmirror(self):
        return _conf.ConfigRepo_fastestmirror(self)

    def proxy(self):
        return _conf.ConfigRepo_proxy(self)

    def proxy_username(self):
        return _conf.ConfigRepo_proxy_username(self)

    def proxy_password(self):
        return _conf.ConfigRepo_proxy_password(self)

    def proxy_auth_method(self):
        return _conf.ConfigRepo_proxy_auth_method(self)

    def username(self):
        return _conf.ConfigRepo_username(self)

    def password(self):
        return _conf.ConfigRepo_password(self)

    def protected_packages(self):
        return _conf.ConfigRepo_protected_packages(self)

    def gpgcheck(self):
        return _conf.ConfigRepo_gpgcheck(self)

    def repo_gpgcheck(self):
        return _conf.ConfigRepo_repo_gpgcheck(self)

    def enablegroups(self):
        return _conf.ConfigRepo_enablegroups(self)

    def retries(self):
        return _conf.ConfigRepo_retries(self)

    def bandwidth(self):
        return _conf.ConfigRepo_bandwidth(self)

    def minrate(self):
        return _conf.ConfigRepo_minrate(self)

    def ip_resolve(self):
        return _conf.ConfigRepo_ip_resolve(self)

    def throttle(self):
        return _conf.ConfigRepo_throttle(self)

    def timeout(self):
        return _conf.ConfigRepo_timeout(self)

    def max_parallel_downloads(self):
        return _conf.ConfigRepo_max_parallel_downloads(self)

    def max_downloads_per_mirror(self):
        return _conf.ConfigRepo_max_downloads_per_mirror(self)

    def metadata_expire(self):
        return _conf.ConfigRepo_metadata_expire(self)

    def cost(self):
        return _conf.ConfigRepo_cost(self)

    def priority(self):
        return _conf.ConfigRepo_priority(self)

    def module_hotfixes(self):
        return _conf.ConfigRepo_module_hotfixes(self)

    def sslcacert(self):
        return _conf.ConfigRepo_sslcacert(self)

    def sslverify(self):
        return _conf.ConfigRepo_sslverify(self)

    def sslclientcert(self):
        return _conf.ConfigRepo_sslclientcert(self)

    def sslclientkey(self):
        return _conf.ConfigRepo_sslclientkey(self)

    def proxy_sslcacert(self):
        return _conf.ConfigRepo_proxy_sslcacert(self)

    def proxy_sslverify(self):
        return _conf.ConfigRepo_proxy_sslverify(self)

    def proxy_sslclientcert(self):
        return _conf.ConfigRepo_proxy_sslclientcert(self)

    def proxy_sslclientkey(self):
        return _conf.ConfigRepo_proxy_sslclientkey(self)

    def deltarpm(self):
        return _conf.ConfigRepo_deltarpm(self)

    def deltarpm_percentage(self):
        return _conf.ConfigRepo_deltarpm_percentage(self)

    def skip_if_unavailable(self):
        return _conf.ConfigRepo_skip_if_unavailable(self)

    def enabled_metadata(self):
        return _conf.ConfigRepo_enabled_metadata(self)

    def user_agent(self):
        return _conf.ConfigRepo_user_agent(self)

    def countme(self):
        return _conf.ConfigRepo_countme(self)

    def sslverifystatus(self):
        return _conf.ConfigRepo_sslverifystatus(self)

# Register ConfigRepo in _conf:
_conf.ConfigRepo_swigregister(ConfigRepo)
class OptionBindsIterator(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, _cur, _end):
        _conf.OptionBindsIterator_swiginit(self, _conf.new_OptionBindsIterator(_cur, _end))

    def __iter__(self):
        return _conf.OptionBindsIterator___iter__(self)
    cur = property(_conf.OptionBindsIterator_cur_get, _conf.OptionBindsIterator_cur_set)
    end = property(_conf.OptionBindsIterator_end_get, _conf.OptionBindsIterator_end_set)

    def __next__(self):
        return _conf.OptionBindsIterator___next__(self)

    def next(self):
        return _conf.OptionBindsIterator_next(self)
    __swig_destroy__ = _conf.delete_OptionBindsIterator

# Register OptionBindsIterator in _conf:
_conf.OptionBindsIterator_swigregister(OptionBindsIterator)
class ConfigParser(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    @staticmethod
    def substitute(text, substitutions):
        return _conf.ConfigParser_substitute(text, substitutions)

    def setSubstitutions(self, substitutions):
        return _conf.ConfigParser_setSubstitutions(self, substitutions)

    def getSubstitutions(self):
        return _conf.ConfigParser_getSubstitutions(self)

    def read(self, filePath):
        return _conf.ConfigParser_read(self, filePath)

    def write(self, *args):
        return _conf.ConfigParser_write(self, *args)

    def addSection(self, *args):
        return _conf.ConfigParser_addSection(self, *args)

    def hasSection(self, section):
        return _conf.ConfigParser_hasSection(self, section)

    def hasOption(self, section, key):
        return _conf.ConfigParser_hasOption(self, section, key)

    def setValue(self, *args):
        return _conf.ConfigParser_setValue(self, *args)

    def removeSection(self, section):
        return _conf.ConfigParser_removeSection(self, section)

    def removeOption(self, section, key):
        return _conf.ConfigParser_removeOption(self, section, key)

    def addCommentLine(self, section, comment):
        return _conf.ConfigParser_addCommentLine(self, section, comment)

    def getValue(self, section, key):
        return _conf.ConfigParser_getValue(self, section, key)

    def getSubstitutedValue(self, section, key):
        return _conf.ConfigParser_getSubstitutedValue(self, section, key)

    def getHeader(self, *args):
        return _conf.ConfigParser_getHeader(self, *args)

    def getData(self, *args):
        return _conf.ConfigParser_getData(self, *args)

    def readString(self, content):
        return _conf.ConfigParser_readString(self, content)

    def __init__(self):
        _conf.ConfigParser_swiginit(self, _conf.new_ConfigParser())
    __swig_destroy__ = _conf.delete_ConfigParser

# Register ConfigParser in _conf:
_conf.ConfigParser_swigregister(ConfigParser)
class PairStringOptionBindsItem(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        _conf.PairStringOptionBindsItem_swiginit(self, _conf.new_PairStringOptionBindsItem(*args))
    first = property(_conf.PairStringOptionBindsItem_first_get, _conf.PairStringOptionBindsItem_first_set)
    second = property(_conf.PairStringOptionBindsItem_second_get, _conf.PairStringOptionBindsItem_second_set)
    def __len__(self):
        return 2
    def __repr__(self):
        return str((self.first, self.second))
    def __getitem__(self, index): 
        if not (index % 2):
            return self.first
        else:
            return self.second
    def __setitem__(self, index, val):
        if not (index % 2):
            self.first = val
        else:
            self.second = val
    __swig_destroy__ = _conf.delete_PairStringOptionBindsItem

# Register PairStringOptionBindsItem in _conf:
_conf.PairStringOptionBindsItem_swigregister(PairStringOptionBindsItem)

# Partial compatibility with Python ConfigParser
ConfigParser.readFileName = ConfigParser.read
def ConfigParser__newRead(self, filenames):
    parsedFNames = []
    try:
        if isinstance(filenames, str) or isinstance(filenames, unicode):
            filenames = [filenames]
    except NameError:
        pass
    for fname in filenames:
        try:
            self.readFileName(fname)
            parsedFNames.append(fname)
        except IOError:
            pass
        except Exception as e:
            raise RuntimeError("Parsing file '%s' failed: %s" % (fname, str(e)))
    return parsedFNames
ConfigParser.read = ConfigParser__newRead
del ConfigParser__newRead

def ConfigParser__read_string(self, string, source='<string>'):
    try:
        self.readString(string)
    except Exception as e:
        raise RuntimeError("Parsing source '%s' failed: %s" % (source, str(e)))
ConfigParser.read_string = ConfigParser__read_string
del ConfigParser__read_string

def ConfigParser__add_section(self, section):
    if not self.addSection(section):
        raise KeyError("Section '%s' already exists" % section)
ConfigParser.add_section = ConfigParser__add_section
del ConfigParser__add_section

ConfigParser.has_section = ConfigParser.hasSection
ConfigParser.has_option = ConfigParser.hasOption

def ConfigParser__get(self, section, option, raw=False):
    try:
        if raw:
            return self.getValue(section, option)
        else:
            return self.getSubstitutedValue(section, option)
    except IndexError as e:
        raise KeyError(str(e))

ConfigParser.get = ConfigParser__get
del ConfigParser__get

def ConfigParser__getint(self, section, option, raw=False):
    return int(self.get(section, option, raw=raw))
ConfigParser.getint = ConfigParser__getint
del ConfigParser__getint

def ConfigParser__getfloat(self, section, option, raw=False):
    return float(self.get(section, option, raw=raw))
ConfigParser.getfloat = ConfigParser__getfloat
del ConfigParser__getfloat

def ConfigParser__getboolean(self, section, option, raw=False):
    v = self.get(section, option, raw=raw)
    try:
        return OptionBool(False).fromString(v)
    except RuntimeError:
        raise ValueError('Not a boolean: %s' % v)
ConfigParser.getboolean = ConfigParser__getboolean
del ConfigParser__getboolean

def ConfigParser__items(self, section, raw=False):
    if not self.hasSection(section):
        raise KeyError("No section: '%s'" % section)
    sectObj = self.getData()[section]
    items = []
    for key in sectObj:
        if not key.startswith('#'):
            value = self.get(section, key, raw=raw)
            items.append((key, value))
    return items
ConfigParser.items = ConfigParser__items
del ConfigParser__items

def ConfigParser__set(self, section, option, value):
    if not self.hasSection(section):
        raise KeyError("No section: '%s'" % section)
    self.setValue(section, option, value)
ConfigParser.set = ConfigParser__set
del ConfigParser__set

ConfigParser.remove_section = ConfigParser.removeSection

def ConfigParser__remove_option(self, section, option):
    if not self.hasSection(section):
        raise KeyError("No section: '%s'" % section)
    return self.removeOption(section, option)
ConfigParser.remove_option = ConfigParser__remove_option
del ConfigParser__remove_option

def ConfigParser__options(self, section):
    if not self.hasSection(section):
        raise KeyError("No section: '%s'" % section)
    sectObj = self.getData()[section]
    return [item for item in sectObj if not item.startswith('#')]
ConfigParser.options = ConfigParser__options
del ConfigParser__options

def ConfigParser__sections(self):
    return list(self.getData())
ConfigParser.sections = ConfigParser__sections
del ConfigParser__sections

# Compatible name aliases
ConfigMain.exclude = ConfigMain.excludepkgs
ConfigRepo.exclude = ConfigRepo.excludepkgs


