# This file was automatically generated by SWIG (https://www.swig.org).
# Version 4.3.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 getattr(globals().get("__spec__"), "parent", None) or globals().get("__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__)


import weakref

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)
from . import common
from . import exception
from . import logger
class StringUniquePtr(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.StringUniquePtr_swiginit(self, _conf.new_StringUniquePtr(*args))

    def __deref__(self):
        return _conf.StringUniquePtr___deref__(self)

    def release(self):
        return _conf.StringUniquePtr_release(self)

    def reset(self, __p=None):
        return _conf.StringUniquePtr_reset(self, __p)

    def swap(self, __u):
        return _conf.StringUniquePtr_swap(self, __u)

    def get(self):
        return _conf.StringUniquePtr_get(self)

    def __nonzero__(self):
        return _conf.StringUniquePtr___nonzero__(self)
    __bool__ = __nonzero__


    __swig_destroy__ = _conf.delete_StringUniquePtr

# Register StringUniquePtr in _conf:
_conf.StringUniquePtr_swigregister(StringUniquePtr)
class LibraryVersion(object):
    r"""
    Library version
    Since: 5.0
    PRIME version - completely changing API and everything in dnf (hopefully stays as a 5 for the foreseeable future)
    MAJOR version - incompatible API changes
    MINOR version - add functionality in a backward compatible manner
    MICRO version - make backward compatible bug fixes
    """

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    prime = property(_conf.LibraryVersion_prime_get, _conf.LibraryVersion_prime_set)
    major = property(_conf.LibraryVersion_major_get, _conf.LibraryVersion_major_set)
    minor = property(_conf.LibraryVersion_minor_get, _conf.LibraryVersion_minor_set)
    micro = property(_conf.LibraryVersion_micro_get, _conf.LibraryVersion_micro_set)

    def __init__(self):
        _conf.LibraryVersion_swiginit(self, _conf.new_LibraryVersion())
    __swig_destroy__ = _conf.delete_LibraryVersion

# Register LibraryVersion in _conf:
_conf.LibraryVersion_swigregister(LibraryVersion)
class PluginAPIVersion(object):
    r"""
    Plugin API version
    Since: 5.0
    """

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    major = property(_conf.PluginAPIVersion_major_get, _conf.PluginAPIVersion_major_set)
    minor = property(_conf.PluginAPIVersion_minor_get, _conf.PluginAPIVersion_minor_set)

    def __init__(self):
        _conf.PluginAPIVersion_swiginit(self, _conf.new_PluginAPIVersion())
    __swig_destroy__ = _conf.delete_PluginAPIVersion

# Register PluginAPIVersion in _conf:
_conf.PluginAPIVersion_swigregister(PluginAPIVersion)

def get_library_version():
    r"""
    :rtype: :py:class:`LibraryVersion`
    :return: Library version
    Since: 5.0
    """
    return _conf.get_library_version()

def get_plugin_api_version():
    r"""
    :rtype: :py:class:`PluginAPIVersion`
    :return: Plugin API version implemented in the library
    Since: 5.0
    """
    return _conf.get_plugin_api_version()
class Option(object):
    r"""Option class is an abstract class. Parent of all options. Options are used to store a configuration."""

    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_INSTALLROOT = _conf.Option_Priority_INSTALLROOT
    Priority_PLUGINDEFAULT = _conf.Option_Priority_PLUGINDEFAULT
    Priority_PLUGINCONFIG = _conf.Option_Priority_PLUGINCONFIG
    Priority_COMMANDLINE = _conf.Option_Priority_COMMANDLINE
    Priority_RUNTIME = _conf.Option_Priority_RUNTIME
    __swig_destroy__ = _conf.delete_Option

    def clone(self):
        r"""Makes copy (clone) of this object."""
        return _conf.Option_clone(self)

    def get_priority(self):
        r"""Returns priority (source) of the stored value."""
        return _conf.Option_get_priority(self)

    def set(self, *args):
        r"""
        *Overload 1:*
        Parses input string and sets new value and priority (source).
        The value and priority are stored only if the new priority is equal to or higher than the stored priority.

        |

        *Overload 2:*
        Parses input string and sets new value and runtime priority.
        """
        return _conf.Option_set(self, *args)

    def get_value_string(self):
        r"""Gets a string representation of the stored value."""
        return _conf.Option_get_value_string(self)

    def empty(self):
        r"""Checks if the option is empty (has no stored value)."""
        return _conf.Option_empty(self)

    def lock(self, first_comment):
        r"""
        Locks the option.
        The locked option is read-only. Its value cannot be changed.

        :type first_comment: string
        :param first_comment: The comment will be saved when lock() is first called
        Since: 1.0
        """
        return _conf.Option_lock(self, first_comment)

    def is_locked(self):
        r"""
        Checks if the option is locked.

        :rtype: boolean
        :return: 'true' if the option is locked
        Since: 1.0
        """
        return _conf.Option_is_locked(self)

    def assert_not_locked(self):
        r"""
        Asserts the option is not locked and throws a `libdnf5::UserAssertionError` in case it is.

        Since: 1.0
        """
        return _conf.Option_assert_not_locked(self)

# Register Option in _conf:
_conf.Option_swigregister(Option)
cvar = _conf.cvar
PLUGIN_API_VERSION = cvar.PLUGIN_API_VERSION
PERSISTDIR = cvar.PERSISTDIR
SYSTEM_STATE_DIR = cvar.SYSTEM_STATE_DIR
SYSTEM_CACHEDIR = cvar.SYSTEM_CACHEDIR
CONF_FILENAME = cvar.CONF_FILENAME
CONF_DIRECTORY = cvar.CONF_DIRECTORY
VERSIONLOCK_CONF_FILENAME = cvar.VERSIONLOCK_CONF_FILENAME
PLUGINS_CONF_DIR = cvar.PLUGINS_CONF_DIR
REPOSITORY_CONF_DIRS = cvar.REPOSITORY_CONF_DIRS
REPOS_OVERRIDE_DIR = cvar.REPOS_OVERRIDE_DIR
TRANSACTION_LOCK_FILEPATH = cvar.TRANSACTION_LOCK_FILEPATH
VARS_DIRS = cvar.VARS_DIRS
GROUP_PACKAGE_TYPES = cvar.GROUP_PACKAGE_TYPES
INSTALLONLYPKGS = cvar.INSTALLONLYPKGS
BUGTRACKER = cvar.BUGTRACKER
METADATA_TYPE_COMPS = cvar.METADATA_TYPE_COMPS
METADATA_TYPE_FILELISTS = cvar.METADATA_TYPE_FILELISTS
METADATA_TYPE_OTHER = cvar.METADATA_TYPE_OTHER
METADATA_TYPE_PRESTO = cvar.METADATA_TYPE_PRESTO
METADATA_TYPE_UPDATEINFO = cvar.METADATA_TYPE_UPDATEINFO
METADATA_TYPE_ALL = cvar.METADATA_TYPE_ALL
METADATA_TYPE_APPSTREAM = cvar.METADATA_TYPE_APPSTREAM
OPTIONAL_METADATA_TYPES = cvar.OPTIONAL_METADATA_TYPES

class OptionBool(Option):
    r"""
    Option that stores boolean value.
    Supports default value.
    Conversion from string to bool is done according to vectors which contains strings of true and false values.
    Conversion is case insensitive for input. Values must be lower case in vectors.
    """

    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):
        r"""
        *Overload 1:*
        Constructor that sets default value.

        |

        *Overload 2:*
        Constructor that sets default value and vectors for conversion from string.
        """
        _conf.OptionBool_swiginit(self, _conf.new_OptionBool(*args))
    __swig_destroy__ = _conf.delete_OptionBool

    def clone(self):
        r"""Makes copy (clone) of this object."""
        return _conf.OptionBool_clone(self)

    def set(self, *args):
        r"""
        *Overload 1:*
        Sets new value and priority (source).
        The value and priority are stored only if the new priority is equal to or higher than the stored priority.

        |

        *Overload 2:*
        Sets new value with the runtime priority.

        |

        *Overload 3:*
        Parses input string and sets new value and priority.
        The value and priority are stored only if the new priority is equal to or higher than the stored priority.

        |

        *Overload 4:*
        Parses input string and sets new value and runtime priority.
        """
        return _conf.OptionBool_set(self, *args)

    def get_value(self):
        r"""Gets the stored value."""
        return _conf.OptionBool_get_value(self)

    def get_default_value(self):
        r"""Gets the default value. Default value is used until it is replaced by set() method."""
        return _conf.OptionBool_get_default_value(self)

    def get_value_string(self):
        r"""Gets a string representation of the stored value."""
        return _conf.OptionBool_get_value_string(self)

    @staticmethod
    def get_default_true_values():
        r"""Returns vector with default strings used for conversion from string to "true" bool value."""
        return _conf.OptionBool_get_default_true_values()

    @staticmethod
    def get_default_false_values():
        r"""Returns vector with default strings used for conversion from string to "false" bool value."""
        return _conf.OptionBool_get_default_false_values()

    def get_true_values(self):
        r"""Returns vector with strings used for conversion from string to "true" bool value."""
        return _conf.OptionBool_get_true_values(self)

    def get_false_values(self):
        r"""Returns vector with strings used for conversion from string to "false" bool value."""
        return _conf.OptionBool_get_false_values(self)

    def test(self, arg2):
        r"""Does nothing. But it must be present for compatibility with other option types."""
        return _conf.OptionBool_test(self, arg2)

    def from_string(self, value):
        r"""Parses input string and returns result."""
        return _conf.OptionBool_from_string(self, value)

    def to_string(self, value):
        r"""Converts input value to the string."""
        return _conf.OptionBool_to_string(self, value)

# Register OptionBool in _conf:
_conf.OptionBool_swigregister(OptionBool)
class OptionEnum(Option):
    r"""
    Option that stores value from enumeration of strings.
    It supports default value.
    It supports user defined function for conversion from string.
    """

    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.OptionEnum_swiginit(self, _conf.new_OptionEnum(*args))
    __swig_destroy__ = _conf.delete_OptionEnum

    def clone(self):
        r"""Makes copy (clone) of this object."""
        return _conf.OptionEnum_clone(self)

    def set(self, *args):
        r"""
        *Overload 1:*
        Parses input string and sets new value and priority.
        The value and priority are stored only if the new priority is equal to or higher than the stored priority.

        |

        *Overload 2:*
        Parses input string and sets new value and runtime priority.
        """
        return _conf.OptionEnum_set(self, *args)

    def get_value(self):
        r"""Gets the stored value."""
        return _conf.OptionEnum_get_value(self)

    def get_default_value(self):
        r"""Gets the default value. Default value is used until it is replaced by set() method."""
        return _conf.OptionEnum_get_default_value(self)

    def get_value_string(self):
        r"""Gets a string representation of the stored value."""
        return _conf.OptionEnum_get_value_string(self)

    def test(self, value):
        r"""Tests input value and throws exception if the value is not allowed."""
        return _conf.OptionEnum_test(self, value)

    def from_string(self, value):
        r"""Parses input string and returns result."""
        return _conf.OptionEnum_from_string(self, value)

# Register OptionEnum in _conf:
_conf.OptionEnum_swigregister(OptionEnum)
class OptionNumberInt32(Option):
    r"""
    Option that stores numerical value. The type of value is template parameter.
    Support default value, minimal and maximal values, user defined function for conversion from string.
    """

    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):
        r"""
        *Overload 1:*
        Constructor that sets default value and limits for min and max values.

        |

        *Overload 2:*
        Constructor that sets default value and limit for min value.

        |

        *Overload 3:*
        Constructor that sets default value.

        |

        *Overload 4:*
        Constructor that sets default value and limits for min and max values and input parsing function.

        |

        *Overload 5:*
        Constructor that sets default value and limit for min value and input parsing function.

        |

        *Overload 6:*
        Constructor that sets default value and input parsing function.
        """
        _conf.OptionNumberInt32_swiginit(self, _conf.new_OptionNumberInt32(*args))
    __swig_destroy__ = _conf.delete_OptionNumberInt32

    def clone(self):
        r"""Makes copy (clone) of this object."""
        return _conf.OptionNumberInt32_clone(self)

    def set(self, *args):
        r"""
        *Overload 1:*
        Sets new value and priority (source).
        The value and priority are stored only if the new priority is equal to or higher than the stored priority.

        |

        *Overload 2:*
        Sets new value and runtime priority.

        |

        *Overload 3:*
        Parses input string and sets new value and priority.
        The value and priority are stored only if the new priority is equal to or higher than the stored priority.

        |

        *Overload 4:*
        Parses input string and sets new value and runtime priority.
        """
        return _conf.OptionNumberInt32_set(self, *args)

    def get_value(self):
        r"""Gets the stored value."""
        return _conf.OptionNumberInt32_get_value(self)

    def get_default_value(self):
        r"""Gets the default value. Default value is used until it is replaced by set() method."""
        return _conf.OptionNumberInt32_get_default_value(self)

    def get_value_string(self):
        r"""Gets a string representation of the stored value."""
        return _conf.OptionNumberInt32_get_value_string(self)

    def test(self, value):
        r"""Tests input value and throws exception if the value is not allowed."""
        return _conf.OptionNumberInt32_test(self, value)

    def from_string(self, value):
        r"""Parses input string and returns result."""
        return _conf.OptionNumberInt32_from_string(self, value)

    def to_string(self, value):
        r"""Converts input value to the string."""
        return _conf.OptionNumberInt32_to_string(self, value)

# Register OptionNumberInt32 in _conf:
_conf.OptionNumberInt32_swigregister(OptionNumberInt32)
class OptionNumberUInt32(Option):
    r"""
    Option that stores numerical value. The type of value is template parameter.
    Support default value, minimal and maximal values, user defined function for conversion from string.
    """

    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):
        r"""
        *Overload 1:*
        Constructor that sets default value and limits for min and max values.

        |

        *Overload 2:*
        Constructor that sets default value and limit for min value.

        |

        *Overload 3:*
        Constructor that sets default value.

        |

        *Overload 4:*
        Constructor that sets default value and limits for min and max values and input parsing function.

        |

        *Overload 5:*
        Constructor that sets default value and limit for min value and input parsing function.

        |

        *Overload 6:*
        Constructor that sets default value and input parsing function.
        """
        _conf.OptionNumberUInt32_swiginit(self, _conf.new_OptionNumberUInt32(*args))
    __swig_destroy__ = _conf.delete_OptionNumberUInt32

    def clone(self):
        r"""Makes copy (clone) of this object."""
        return _conf.OptionNumberUInt32_clone(self)

    def set(self, *args):
        r"""
        *Overload 1:*
        Sets new value and priority (source).
        The value and priority are stored only if the new priority is equal to or higher than the stored priority.

        |

        *Overload 2:*
        Sets new value and runtime priority.

        |

        *Overload 3:*
        Parses input string and sets new value and priority.
        The value and priority are stored only if the new priority is equal to or higher than the stored priority.

        |

        *Overload 4:*
        Parses input string and sets new value and runtime priority.
        """
        return _conf.OptionNumberUInt32_set(self, *args)

    def get_value(self):
        r"""Gets the stored value."""
        return _conf.OptionNumberUInt32_get_value(self)

    def get_default_value(self):
        r"""Gets the default value. Default value is used until it is replaced by set() method."""
        return _conf.OptionNumberUInt32_get_default_value(self)

    def get_value_string(self):
        r"""Gets a string representation of the stored value."""
        return _conf.OptionNumberUInt32_get_value_string(self)

    def test(self, value):
        r"""Tests input value and throws exception if the value is not allowed."""
        return _conf.OptionNumberUInt32_test(self, value)

    def from_string(self, value):
        r"""Parses input string and returns result."""
        return _conf.OptionNumberUInt32_from_string(self, value)

    def to_string(self, value):
        r"""Converts input value to the string."""
        return _conf.OptionNumberUInt32_to_string(self, value)

# Register OptionNumberUInt32 in _conf:
_conf.OptionNumberUInt32_swigregister(OptionNumberUInt32)
class OptionNumberInt64(Option):
    r"""
    Option that stores numerical value. The type of value is template parameter.
    Support default value, minimal and maximal values, user defined function for conversion from string.
    """

    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):
        r"""
        *Overload 1:*
        Constructor that sets default value and limits for min and max values.

        |

        *Overload 2:*
        Constructor that sets default value and limit for min value.

        |

        *Overload 3:*
        Constructor that sets default value.

        |

        *Overload 4:*
        Constructor that sets default value and limits for min and max values and input parsing function.

        |

        *Overload 5:*
        Constructor that sets default value and limit for min value and input parsing function.

        |

        *Overload 6:*
        Constructor that sets default value and input parsing function.
        """
        _conf.OptionNumberInt64_swiginit(self, _conf.new_OptionNumberInt64(*args))
    __swig_destroy__ = _conf.delete_OptionNumberInt64

    def clone(self):
        r"""Makes copy (clone) of this object."""
        return _conf.OptionNumberInt64_clone(self)

    def set(self, *args):
        r"""
        *Overload 1:*
        Sets new value and priority (source).
        The value and priority are stored only if the new priority is equal to or higher than the stored priority.

        |

        *Overload 2:*
        Sets new value and runtime priority.

        |

        *Overload 3:*
        Parses input string and sets new value and priority.
        The value and priority are stored only if the new priority is equal to or higher than the stored priority.

        |

        *Overload 4:*
        Parses input string and sets new value and runtime priority.
        """
        return _conf.OptionNumberInt64_set(self, *args)

    def get_value(self):
        r"""Gets the stored value."""
        return _conf.OptionNumberInt64_get_value(self)

    def get_default_value(self):
        r"""Gets the default value. Default value is used until it is replaced by set() method."""
        return _conf.OptionNumberInt64_get_default_value(self)

    def get_value_string(self):
        r"""Gets a string representation of the stored value."""
        return _conf.OptionNumberInt64_get_value_string(self)

    def test(self, value):
        r"""Tests input value and throws exception if the value is not allowed."""
        return _conf.OptionNumberInt64_test(self, value)

    def from_string(self, value):
        r"""Parses input string and returns result."""
        return _conf.OptionNumberInt64_from_string(self, value)

    def to_string(self, value):
        r"""Converts input value to the string."""
        return _conf.OptionNumberInt64_to_string(self, value)

# Register OptionNumberInt64 in _conf:
_conf.OptionNumberInt64_swigregister(OptionNumberInt64)
class OptionNumberUInt64(Option):
    r"""
    Option that stores numerical value. The type of value is template parameter.
    Support default value, minimal and maximal values, user defined function for conversion from string.
    """

    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):
        r"""
        *Overload 1:*
        Constructor that sets default value and limits for min and max values.

        |

        *Overload 2:*
        Constructor that sets default value and limit for min value.

        |

        *Overload 3:*
        Constructor that sets default value.

        |

        *Overload 4:*
        Constructor that sets default value and limits for min and max values and input parsing function.

        |

        *Overload 5:*
        Constructor that sets default value and limit for min value and input parsing function.

        |

        *Overload 6:*
        Constructor that sets default value and input parsing function.
        """
        _conf.OptionNumberUInt64_swiginit(self, _conf.new_OptionNumberUInt64(*args))
    __swig_destroy__ = _conf.delete_OptionNumberUInt64

    def clone(self):
        r"""Makes copy (clone) of this object."""
        return _conf.OptionNumberUInt64_clone(self)

    def set(self, *args):
        r"""
        *Overload 1:*
        Sets new value and priority (source).
        The value and priority are stored only if the new priority is equal to or higher than the stored priority.

        |

        *Overload 2:*
        Sets new value and runtime priority.

        |

        *Overload 3:*
        Parses input string and sets new value and priority.
        The value and priority are stored only if the new priority is equal to or higher than the stored priority.

        |

        *Overload 4:*
        Parses input string and sets new value and runtime priority.
        """
        return _conf.OptionNumberUInt64_set(self, *args)

    def get_value(self):
        r"""Gets the stored value."""
        return _conf.OptionNumberUInt64_get_value(self)

    def get_default_value(self):
        r"""Gets the default value. Default value is used until it is replaced by set() method."""
        return _conf.OptionNumberUInt64_get_default_value(self)

    def get_value_string(self):
        r"""Gets a string representation of the stored value."""
        return _conf.OptionNumberUInt64_get_value_string(self)

    def test(self, value):
        r"""Tests input value and throws exception if the value is not allowed."""
        return _conf.OptionNumberUInt64_test(self, value)

    def from_string(self, value):
        r"""Parses input string and returns result."""
        return _conf.OptionNumberUInt64_from_string(self, value)

    def to_string(self, value):
        r"""Converts input value to the string."""
        return _conf.OptionNumberUInt64_to_string(self, value)

# Register OptionNumberUInt64 in _conf:
_conf.OptionNumberUInt64_swigregister(OptionNumberUInt64)
class OptionNumberFloat(Option):
    r"""
    Option that stores numerical value. The type of value is template parameter.
    Support default value, minimal and maximal values, user defined function for conversion from string.
    """

    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):
        r"""
        *Overload 1:*
        Constructor that sets default value and limits for min and max values.

        |

        *Overload 2:*
        Constructor that sets default value and limit for min value.

        |

        *Overload 3:*
        Constructor that sets default value.

        |

        *Overload 4:*
        Constructor that sets default value and limits for min and max values and input parsing function.

        |

        *Overload 5:*
        Constructor that sets default value and limit for min value and input parsing function.

        |

        *Overload 6:*
        Constructor that sets default value and input parsing function.
        """
        _conf.OptionNumberFloat_swiginit(self, _conf.new_OptionNumberFloat(*args))
    __swig_destroy__ = _conf.delete_OptionNumberFloat

    def clone(self):
        r"""Makes copy (clone) of this object."""
        return _conf.OptionNumberFloat_clone(self)

    def set(self, *args):
        r"""
        *Overload 1:*
        Sets new value and priority (source).
        The value and priority are stored only if the new priority is equal to or higher than the stored priority.

        |

        *Overload 2:*
        Sets new value and runtime priority.

        |

        *Overload 3:*
        Parses input string and sets new value and priority.
        The value and priority are stored only if the new priority is equal to or higher than the stored priority.

        |

        *Overload 4:*
        Parses input string and sets new value and runtime priority.
        """
        return _conf.OptionNumberFloat_set(self, *args)

    def get_value(self):
        r"""Gets the stored value."""
        return _conf.OptionNumberFloat_get_value(self)

    def get_default_value(self):
        r"""Gets the default value. Default value is used until it is replaced by set() method."""
        return _conf.OptionNumberFloat_get_default_value(self)

    def get_value_string(self):
        r"""Gets a string representation of the stored value."""
        return _conf.OptionNumberFloat_get_value_string(self)

    def test(self, value):
        r"""Tests input value and throws exception if the value is not allowed."""
        return _conf.OptionNumberFloat_test(self, value)

    def from_string(self, value):
        r"""Parses input string and returns result."""
        return _conf.OptionNumberFloat_from_string(self, value)

    def to_string(self, value):
        r"""Converts input value to the string."""
        return _conf.OptionNumberFloat_to_string(self, value)

# Register OptionNumberFloat in _conf:
_conf.OptionNumberFloat_swigregister(OptionNumberFloat)
class OptionSeconds(OptionNumberInt32):
    r"""
    Option that stores an integer value of seconds.
    Support default value, minimal and maximal values.
    """

    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):
        r"""Makes copy (clone) of this object."""
        return _conf.OptionSeconds_clone(self)

    def set(self, *args):
        r"""
        *Overload 1:*
        Sets new value and priority (source).
        The value and priority are stored only if the new priority is equal to or higher than the stored priority.

        |

        *Overload 2:*
        Sets new value and runtime priority.

        |

        *Overload 3:*
        Parses input string and sets new value and priority.
        Valid inputs: 100, 1.5m, 90s, 1.2d, 1d, 0xF, 0.1, -1, never.
        Invalid inputs: -10, -0.1, 45.6Z, 1d6h, 1day, 1y.
        The value and priority are stored only if the new priority is equal to or higher than the stored priority.

        |

        *Overload 4:*
        Parses input string and sets new value and runtime priority.
        """
        return _conf.OptionSeconds_set(self, *args)

    def from_string(self, value):
        r"""Parses input string and returns result."""
        return _conf.OptionSeconds_from_string(self, value)
    __swig_destroy__ = _conf.delete_OptionSeconds

# Register OptionSeconds in _conf:
_conf.OptionSeconds_swigregister(OptionSeconds)
class OptionString(Option):
    r"""
    Option that stores string value.
    Support default value, and check of an input value using the regular expression
    """

    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_OptionString

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

    def clone(self):
        r"""Makes copy (clone) of this object."""
        return _conf.OptionString_clone(self)

    def set(self, *args):
        r"""
        *Overload 1:*
        Sets new value and priority.
        The value and priority are stored only if the new priority is equal to or higher than the stored priority.

        |

        *Overload 2:*
        Sets new value and runtime priority.
        """
        return _conf.OptionString_set(self, *args)

    def get_value(self):
        r"""Gets the stored value."""
        return _conf.OptionString_get_value(self)

    def get_default_value(self):
        r"""Gets the default value. Default value is used until it is replaced by set() method."""
        return _conf.OptionString_get_default_value(self)

    def get_value_string(self):
        r"""Gets a string representation of the stored value."""
        return _conf.OptionString_get_value_string(self)

    def test(self, value):
        r"""Tests input value and throws exception if the value is not allowed."""
        return _conf.OptionString_test(self, value)

    def from_string(self, value):
        r"""Returns copy of input string. Must be present for compatibility with other option types."""
        return _conf.OptionString_from_string(self, value)

# Register OptionString in _conf:
_conf.OptionString_swigregister(OptionString)
class OptionStringSet(Option):
    r"""
    Option that stores a container of strings. The type of the container is a
    template parameter. Non-type IsAppend template parameter is used to
    distinguish between regular list-like options (e.g. OptionStringList,
    OptionStringSet) and append options (e.g. OptionStringAppendList,
    OptionStringAppendSet).
    Support default value, and check of an input value using the regular expression.
    """

    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.OptionStringSet_swiginit(self, _conf.new_OptionStringSet(*args))
    __swig_destroy__ = _conf.delete_OptionStringSet

    def clone(self):
        r"""Makes copy (clone) of this object."""
        return _conf.OptionStringSet_clone(self)

    def set(self, *args):
        r"""
        *Overload 1:*
        Sets new value and priority (source).
        The value and priority are stored only if the new priority is equal to or higher than the stored priority.

        |

        *Overload 2:*
        Sets new value and runtime priority.

        |

        *Overload 3:*
        Parses input string and sets new value and priority.
        The value and priority are stored only if the new priority is equal to or higher than the stored priority.

        |

        *Overload 4:*
        Parses input string and sets new value and runtime priority.
        """
        return _conf.OptionStringSet_set(self, *args)

    def add(self, *args):
        r"""
        *Overload 1:*
        Adds items from an another container.
        New items are stored in the container value

        |

        *Overload 2:*
        Parses input string and adds new values and priority.
        The value and priority are stored only if the new priority is equal to or higher than the stored priority.
        """
        return _conf.OptionStringSet_add(self, *args)

    def add_item(self, priority, item):
        r"""
        Adds new item to the container.
        New item is stored in the container value
        """
        return _conf.OptionStringSet_add_item(self, priority, item)

    def get_value(self):
        r"""Gets the stored value."""
        return _conf.OptionStringSet_get_value(self)

    def get_default_value(self):
        r"""Gets the default value. Default value is used until it is replaced by set() method."""
        return _conf.OptionStringSet_get_default_value(self)

    def get_value_string(self):
        r"""Gets a string representation of the stored value."""
        return _conf.OptionStringSet_get_value_string(self)

    def test(self, value):
        r"""Tests input value and throws exception if the value is not allowed."""
        return _conf.OptionStringSet_test(self, value)

    def from_string(self, value):
        r"""Parses input string and returns result."""
        return _conf.OptionStringSet_from_string(self, value)

    def to_string(self, value):
        r"""Converts input value to the string."""
        return _conf.OptionStringSet_to_string(self, value)

    @staticmethod
    def get_default_delimiters():
        r"""Returns the default delimiters"""
        return _conf.OptionStringSet_get_default_delimiters()

    def get_delimiters(self):
        r"""Return delimiters of this OptionStringList"""
        return _conf.OptionStringSet_get_delimiters(self)

# Register OptionStringSet in _conf:
_conf.OptionStringSet_swigregister(OptionStringSet)
class OptionStringList(Option):
    r"""
    Option that stores a container of strings. The type of the container is a
    template parameter. Non-type IsAppend template parameter is used to
    distinguish between regular list-like options (e.g. OptionStringList,
    OptionStringSet) and append options (e.g. OptionStringAppendList,
    OptionStringAppendSet).
    Support default value, and check of an input value using the regular expression.
    """

    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))
    __swig_destroy__ = _conf.delete_OptionStringList

    def clone(self):
        r"""Makes copy (clone) of this object."""
        return _conf.OptionStringList_clone(self)

    def set(self, *args):
        r"""
        *Overload 1:*
        Sets new value and priority (source).
        The value and priority are stored only if the new priority is equal to or higher than the stored priority.

        |

        *Overload 2:*
        Sets new value and runtime priority.

        |

        *Overload 3:*
        Parses input string and sets new value and priority.
        The value and priority are stored only if the new priority is equal to or higher than the stored priority.

        |

        *Overload 4:*
        Parses input string and sets new value and runtime priority.
        """
        return _conf.OptionStringList_set(self, *args)

    def add(self, *args):
        r"""
        *Overload 1:*
        Adds items from an another container.
        New items are stored in the container value

        |

        *Overload 2:*
        Parses input string and adds new values and priority.
        The value and priority are stored only if the new priority is equal to or higher than the stored priority.
        """
        return _conf.OptionStringList_add(self, *args)

    def add_item(self, priority, item):
        r"""
        Adds new item to the container.
        New item is stored in the container value
        """
        return _conf.OptionStringList_add_item(self, priority, item)

    def get_value(self):
        r"""Gets the stored value."""
        return _conf.OptionStringList_get_value(self)

    def get_default_value(self):
        r"""Gets the default value. Default value is used until it is replaced by set() method."""
        return _conf.OptionStringList_get_default_value(self)

    def get_value_string(self):
        r"""Gets a string representation of the stored value."""
        return _conf.OptionStringList_get_value_string(self)

    def test(self, value):
        r"""Tests input value and throws exception if the value is not allowed."""
        return _conf.OptionStringList_test(self, value)

    def from_string(self, value):
        r"""Parses input string and returns result."""
        return _conf.OptionStringList_from_string(self, value)

    def to_string(self, value):
        r"""Converts input value to the string."""
        return _conf.OptionStringList_to_string(self, value)

    @staticmethod
    def get_default_delimiters():
        r"""Returns the default delimiters"""
        return _conf.OptionStringList_get_default_delimiters()

    def get_delimiters(self):
        r"""Return delimiters of this OptionStringList"""
        return _conf.OptionStringList_get_delimiters(self)

# Register OptionStringList in _conf:
_conf.OptionStringList_swigregister(OptionStringList)
class OptionStringAppendSet(Option):
    r"""
    Option that stores a container of strings. The type of the container is a
    template parameter. Non-type IsAppend template parameter is used to
    distinguish between regular list-like options (e.g. OptionStringList,
    OptionStringSet) and append options (e.g. OptionStringAppendList,
    OptionStringAppendSet).
    Support default value, and check of an input value using the regular expression.
    """

    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.OptionStringAppendSet_swiginit(self, _conf.new_OptionStringAppendSet(*args))
    __swig_destroy__ = _conf.delete_OptionStringAppendSet

    def clone(self):
        r"""Makes copy (clone) of this object."""
        return _conf.OptionStringAppendSet_clone(self)

    def set(self, *args):
        r"""
        *Overload 1:*
        Sets new value and priority (source).
        The value and priority are stored only if the new priority is equal to or higher than the stored priority.

        |

        *Overload 2:*
        Sets new value and runtime priority.

        |

        *Overload 3:*
        Parses input string and sets new value and priority.
        The value and priority are stored only if the new priority is equal to or higher than the stored priority.

        |

        *Overload 4:*
        Parses input string and sets new value and runtime priority.
        """
        return _conf.OptionStringAppendSet_set(self, *args)

    def add(self, *args):
        r"""
        *Overload 1:*
        Adds items from an another container.
        New items are stored in the container value

        |

        *Overload 2:*
        Parses input string and adds new values and priority.
        The value and priority are stored only if the new priority is equal to or higher than the stored priority.
        """
        return _conf.OptionStringAppendSet_add(self, *args)

    def add_item(self, priority, item):
        r"""
        Adds new item to the container.
        New item is stored in the container value
        """
        return _conf.OptionStringAppendSet_add_item(self, priority, item)

    def get_value(self):
        r"""Gets the stored value."""
        return _conf.OptionStringAppendSet_get_value(self)

    def get_default_value(self):
        r"""Gets the default value. Default value is used until it is replaced by set() method."""
        return _conf.OptionStringAppendSet_get_default_value(self)

    def get_value_string(self):
        r"""Gets a string representation of the stored value."""
        return _conf.OptionStringAppendSet_get_value_string(self)

    def test(self, value):
        r"""Tests input value and throws exception if the value is not allowed."""
        return _conf.OptionStringAppendSet_test(self, value)

    def from_string(self, value):
        r"""Parses input string and returns result."""
        return _conf.OptionStringAppendSet_from_string(self, value)

    def to_string(self, value):
        r"""Converts input value to the string."""
        return _conf.OptionStringAppendSet_to_string(self, value)

    @staticmethod
    def get_default_delimiters():
        r"""Returns the default delimiters"""
        return _conf.OptionStringAppendSet_get_default_delimiters()

    def get_delimiters(self):
        r"""Return delimiters of this OptionStringList"""
        return _conf.OptionStringAppendSet_get_delimiters(self)

# Register OptionStringAppendSet in _conf:
_conf.OptionStringAppendSet_swigregister(OptionStringAppendSet)
class OptionStringAppendList(Option):
    r"""
    Option that stores a container of strings. The type of the container is a
    template parameter. Non-type IsAppend template parameter is used to
    distinguish between regular list-like options (e.g. OptionStringList,
    OptionStringSet) and append options (e.g. OptionStringAppendList,
    OptionStringAppendSet).
    Support default value, and check of an input value using the regular expression.
    """

    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.OptionStringAppendList_swiginit(self, _conf.new_OptionStringAppendList(*args))
    __swig_destroy__ = _conf.delete_OptionStringAppendList

    def clone(self):
        r"""Makes copy (clone) of this object."""
        return _conf.OptionStringAppendList_clone(self)

    def set(self, *args):
        r"""
        *Overload 1:*
        Sets new value and priority (source).
        The value and priority are stored only if the new priority is equal to or higher than the stored priority.

        |

        *Overload 2:*
        Sets new value and runtime priority.

        |

        *Overload 3:*
        Parses input string and sets new value and priority.
        The value and priority are stored only if the new priority is equal to or higher than the stored priority.

        |

        *Overload 4:*
        Parses input string and sets new value and runtime priority.
        """
        return _conf.OptionStringAppendList_set(self, *args)

    def add(self, *args):
        r"""
        *Overload 1:*
        Adds items from an another container.
        New items are stored in the container value

        |

        *Overload 2:*
        Parses input string and adds new values and priority.
        The value and priority are stored only if the new priority is equal to or higher than the stored priority.
        """
        return _conf.OptionStringAppendList_add(self, *args)

    def add_item(self, priority, item):
        r"""
        Adds new item to the container.
        New item is stored in the container value
        """
        return _conf.OptionStringAppendList_add_item(self, priority, item)

    def get_value(self):
        r"""Gets the stored value."""
        return _conf.OptionStringAppendList_get_value(self)

    def get_default_value(self):
        r"""Gets the default value. Default value is used until it is replaced by set() method."""
        return _conf.OptionStringAppendList_get_default_value(self)

    def get_value_string(self):
        r"""Gets a string representation of the stored value."""
        return _conf.OptionStringAppendList_get_value_string(self)

    def test(self, value):
        r"""Tests input value and throws exception if the value is not allowed."""
        return _conf.OptionStringAppendList_test(self, value)

    def from_string(self, value):
        r"""Parses input string and returns result."""
        return _conf.OptionStringAppendList_from_string(self, value)

    def to_string(self, value):
        r"""Converts input value to the string."""
        return _conf.OptionStringAppendList_to_string(self, value)

    @staticmethod
    def get_default_delimiters():
        r"""Returns the default delimiters"""
        return _conf.OptionStringAppendList_get_default_delimiters()

    def get_delimiters(self):
        r"""Return delimiters of this OptionStringList"""
        return _conf.OptionStringAppendList_get_delimiters(self)

# Register OptionStringAppendList in _conf:
_conf.OptionStringAppendList_swigregister(OptionStringAppendList)
class OptionPath(OptionString):
    r"""
    Option that stores file/directory path.
    Support default value, and path verification (absolute, existence).
    """

    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_OptionPath

    def __init__(self, *args):
        r"""
        *Overload 1:*
        Constructor sets default value and conditions.

        |

        *Overload 2:*
        Constructor sets default value and conditions.

        |

        *Overload 3:*
        Constructor sets default value and conditions.

        |

        *Overload 4:*
        Constructor sets default value and conditions.

        |

        *Overload 5:*
        Constructor sets default value and conditions.

        |

        *Overload 6:*
        Constructor sets default value and conditions.

        |

        *Overload 7:*
        Constructor sets default value and conditions.

        |

        *Overload 8:*
        Constructor sets default value and conditions.

        |

        *Overload 9:*
        Constructor sets default value and conditions.

        |

        *Overload 10:*
        Constructor sets default value and conditions.
        """
        _conf.OptionPath_swiginit(self, _conf.new_OptionPath(*args))

    def clone(self):
        r"""Makes copy (clone) of this object."""
        return _conf.OptionPath_clone(self)

    def set(self, *args):
        r"""
        *Overload 1:*
        Parses input string and sets new value and priority.
        According setting passed in constructor it can verify that the path is absolute, exists and match regex.
        The value and priority are stored only if the new priority is equal to or higher than the stored priority.

        |

        *Overload 2:*
        Parses input string and sets new value and runtime priority.
        """
        return _conf.OptionPath_set(self, *args)

    def test(self, value):
        r"""Tests input value and throws exception if the value is not allowed."""
        return _conf.OptionPath_test(self, value)

# Register OptionPath in _conf:
_conf.OptionPath_swigregister(OptionPath)
class OptionChildBool(Option):
    r"""
    Option that links option to another option. It uses default value and parameters from linked option.
    If it is empty (has no stored value), uses value from the linked option (parent).
    Parent option type is template parameter.
    """

    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):
        r"""Constructor takes reference to parent option."""
        _conf.OptionChildBool_swiginit(self, _conf.new_OptionChildBool(parent))

    def clone(self):
        r"""Makes copy (clone) of this object."""
        return _conf.OptionChildBool_clone(self)

    def get_priority(self):
        r"""Returns priority (source) of the stored value. If no value is stored, priority from the parent is returned."""
        return _conf.OptionChildBool_get_priority(self)

    def set(self, *args):
        r"""
        *Overload 1:*
        Sets new value and priority (source).
        The value and priority are stored only if the new priority is equal to or higher than the stored priority.

        |

        *Overload 2:*
        Sets new value and runtime priority.

        |

        *Overload 3:*
        Sets new value and priority (source).
        The value and priority are stored only if the new priority is equal to or higher than the stored priority.

        |

        *Overload 4:*
        Sets new value and runtime priority.
        """
        return _conf.OptionChildBool_set(self, *args)

    def get_value(self):
        r"""Gets the stored value. If no value is stored, value from the parent is returned."""
        return _conf.OptionChildBool_get_value(self)

    def get_default_value(self):
        r"""Gets the default value from parent. Default value is used until it is replaced by set() method."""
        return _conf.OptionChildBool_get_default_value(self)

    def get_value_string(self):
        r"""Gets a string representation of the stored value. If no value is stored, value from the parent is returned."""
        return _conf.OptionChildBool_get_value_string(self)

    def empty(self):
        r"""Checks if the option is empty (has no stored value). If it is empty, checks status of the parent."""
        return _conf.OptionChildBool_empty(self)
    __swig_destroy__ = _conf.delete_OptionChildBool

# Register OptionChildBool in _conf:
_conf.OptionChildBool_swigregister(OptionChildBool)
class OptionChildString(Option):
    r"""
    Option that links option to another option. It uses default value and parameters from linked option.
    If it is empty (has no stored value), uses value from the linked option (parent).
    Parent option type is template parameter.
    """

    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):
        r"""Constructor takes reference to parent option."""
        _conf.OptionChildString_swiginit(self, _conf.new_OptionChildString(parent))

    def clone(self):
        r"""Makes copy (clone) of this object."""
        return _conf.OptionChildString_clone(self)

    def get_priority(self):
        r"""Returns priority (source) of the stored value. If no value is stored, priority from the parent is returned."""
        return _conf.OptionChildString_get_priority(self)

    def set(self, *args):
        r"""
        *Overload 1:*
        Sets new value and priority (source).
        The value and priority are stored only if the new priority is equal to or higher than the stored priority.

        |

        *Overload 2:*
        Sets new value and runtime priority.

        |

        *Overload 3:*
        Sets new value and priority (source).
        The value and priority are stored only if the new priority is equal to or higher than the stored priority.

        |

        *Overload 4:*
        Sets new value and runtime priority.
        """
        return _conf.OptionChildString_set(self, *args)

    def get_value(self):
        r"""Gets the stored value. If no value is stored, value from the parent is returned."""
        return _conf.OptionChildString_get_value(self)

    def get_default_value(self):
        r"""Gets the default value from parent. Default value is used until it is replaced by set() method."""
        return _conf.OptionChildString_get_default_value(self)

    def get_value_string(self):
        r"""Gets a string representation of the stored value. If no value is stored, value from the parent is returned."""
        return _conf.OptionChildString_get_value_string(self)

    def empty(self):
        r"""Checks if the option is empty (has no stored value). If it is empty, checks status of the parent."""
        return _conf.OptionChildString_empty(self)
    __swig_destroy__ = _conf.delete_OptionChildString

# Register OptionChildString in _conf:
_conf.OptionChildString_swigregister(OptionChildString)
class OptionChildStringList(Option):
    r"""
    Option that links option to another option. It uses default value and parameters from linked option.
    If it is empty (has no stored value), uses value from the linked option (parent).
    Parent option type is template parameter.
    """

    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):
        r"""Constructor takes reference to parent option."""
        _conf.OptionChildStringList_swiginit(self, _conf.new_OptionChildStringList(parent))

    def clone(self):
        r"""Makes copy (clone) of this object."""
        return _conf.OptionChildStringList_clone(self)

    def get_priority(self):
        r"""Returns priority (source) of the stored value. If no value is stored, priority from the parent is returned."""
        return _conf.OptionChildStringList_get_priority(self)

    def set(self, *args):
        r"""
        *Overload 1:*
        Sets new value and priority (source).
        The value and priority are stored only if the new priority is equal to or higher than the stored priority.

        |

        *Overload 2:*
        Sets new value and runtime priority.

        |

        *Overload 3:*
        Sets new value and priority (source).
        The value and priority are stored only if the new priority is equal to or higher than the stored priority.

        |

        *Overload 4:*
        Sets new value and runtime priority.
        """
        return _conf.OptionChildStringList_set(self, *args)

    def get_value(self):
        r"""Gets the stored value. If no value is stored, value from the parent is returned."""
        return _conf.OptionChildStringList_get_value(self)

    def get_default_value(self):
        r"""Gets the default value from parent. Default value is used until it is replaced by set() method."""
        return _conf.OptionChildStringList_get_default_value(self)

    def get_value_string(self):
        r"""Gets a string representation of the stored value. If no value is stored, value from the parent is returned."""
        return _conf.OptionChildStringList_get_value_string(self)

    def empty(self):
        r"""Checks if the option is empty (has no stored value). If it is empty, checks status of the parent."""
        return _conf.OptionChildStringList_empty(self)
    __swig_destroy__ = _conf.delete_OptionChildStringList

# Register OptionChildStringList in _conf:
_conf.OptionChildStringList_swigregister(OptionChildStringList)
class OptionChildStringSet(Option):
    r"""
    Option that links option to another option. It uses default value and parameters from linked option.
    If it is empty (has no stored value), uses value from the linked option (parent).
    Parent option type is template parameter.
    """

    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):
        r"""Constructor takes reference to parent option."""
        _conf.OptionChildStringSet_swiginit(self, _conf.new_OptionChildStringSet(parent))

    def clone(self):
        r"""Makes copy (clone) of this object."""
        return _conf.OptionChildStringSet_clone(self)

    def get_priority(self):
        r"""Returns priority (source) of the stored value. If no value is stored, priority from the parent is returned."""
        return _conf.OptionChildStringSet_get_priority(self)

    def set(self, *args):
        r"""
        *Overload 1:*
        Sets new value and priority (source).
        The value and priority are stored only if the new priority is equal to or higher than the stored priority.

        |

        *Overload 2:*
        Sets new value and runtime priority.

        |

        *Overload 3:*
        Sets new value and priority (source).
        The value and priority are stored only if the new priority is equal to or higher than the stored priority.

        |

        *Overload 4:*
        Sets new value and runtime priority.
        """
        return _conf.OptionChildStringSet_set(self, *args)

    def get_value(self):
        r"""Gets the stored value. If no value is stored, value from the parent is returned."""
        return _conf.OptionChildStringSet_get_value(self)

    def get_default_value(self):
        r"""Gets the default value from parent. Default value is used until it is replaced by set() method."""
        return _conf.OptionChildStringSet_get_default_value(self)

    def get_value_string(self):
        r"""Gets a string representation of the stored value. If no value is stored, value from the parent is returned."""
        return _conf.OptionChildStringSet_get_value_string(self)

    def empty(self):
        r"""Checks if the option is empty (has no stored value). If it is empty, checks status of the parent."""
        return _conf.OptionChildStringSet_empty(self)
    __swig_destroy__ = _conf.delete_OptionChildStringSet

# Register OptionChildStringSet in _conf:
_conf.OptionChildStringSet_swigregister(OptionChildStringSet)
class OptionChildStringAppendList(Option):
    r"""
    Option that links option to another option. It uses default value and parameters from linked option.
    If it is empty (has no stored value), uses value from the linked option (parent).
    Parent option type is template parameter.
    """

    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):
        r"""Constructor takes reference to parent option."""
        _conf.OptionChildStringAppendList_swiginit(self, _conf.new_OptionChildStringAppendList(parent))

    def clone(self):
        r"""Makes copy (clone) of this object."""
        return _conf.OptionChildStringAppendList_clone(self)

    def get_priority(self):
        r"""Returns priority (source) of the stored value. If no value is stored, priority from the parent is returned."""
        return _conf.OptionChildStringAppendList_get_priority(self)

    def set(self, *args):
        r"""
        *Overload 1:*
        Sets new value and priority (source).
        The value and priority are stored only if the new priority is equal to or higher than the stored priority.

        |

        *Overload 2:*
        Sets new value and runtime priority.

        |

        *Overload 3:*
        Sets new value and priority (source).
        The value and priority are stored only if the new priority is equal to or higher than the stored priority.

        |

        *Overload 4:*
        Sets new value and runtime priority.
        """
        return _conf.OptionChildStringAppendList_set(self, *args)

    def get_value(self):
        r"""Gets the stored value. If no value is stored, value from the parent is returned."""
        return _conf.OptionChildStringAppendList_get_value(self)

    def get_default_value(self):
        r"""Gets the default value from parent. Default value is used until it is replaced by set() method."""
        return _conf.OptionChildStringAppendList_get_default_value(self)

    def get_value_string(self):
        r"""Gets a string representation of the stored value. If no value is stored, value from the parent is returned."""
        return _conf.OptionChildStringAppendList_get_value_string(self)

    def empty(self):
        r"""Checks if the option is empty (has no stored value). If it is empty, checks status of the parent."""
        return _conf.OptionChildStringAppendList_empty(self)
    __swig_destroy__ = _conf.delete_OptionChildStringAppendList

# Register OptionChildStringAppendList in _conf:
_conf.OptionChildStringAppendList_swigregister(OptionChildStringAppendList)
class OptionChildStringAppendSet(Option):
    r"""
    Option that links option to another option. It uses default value and parameters from linked option.
    If it is empty (has no stored value), uses value from the linked option (parent).
    Parent option type is template parameter.
    """

    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):
        r"""Constructor takes reference to parent option."""
        _conf.OptionChildStringAppendSet_swiginit(self, _conf.new_OptionChildStringAppendSet(parent))

    def clone(self):
        r"""Makes copy (clone) of this object."""
        return _conf.OptionChildStringAppendSet_clone(self)

    def get_priority(self):
        r"""Returns priority (source) of the stored value. If no value is stored, priority from the parent is returned."""
        return _conf.OptionChildStringAppendSet_get_priority(self)

    def set(self, *args):
        r"""
        *Overload 1:*
        Sets new value and priority (source).
        The value and priority are stored only if the new priority is equal to or higher than the stored priority.

        |

        *Overload 2:*
        Sets new value and runtime priority.

        |

        *Overload 3:*
        Sets new value and priority (source).
        The value and priority are stored only if the new priority is equal to or higher than the stored priority.

        |

        *Overload 4:*
        Sets new value and runtime priority.
        """
        return _conf.OptionChildStringAppendSet_set(self, *args)

    def get_value(self):
        r"""Gets the stored value. If no value is stored, value from the parent is returned."""
        return _conf.OptionChildStringAppendSet_get_value(self)

    def get_default_value(self):
        r"""Gets the default value from parent. Default value is used until it is replaced by set() method."""
        return _conf.OptionChildStringAppendSet_get_default_value(self)

    def get_value_string(self):
        r"""Gets a string representation of the stored value. If no value is stored, value from the parent is returned."""
        return _conf.OptionChildStringAppendSet_get_value_string(self)

    def empty(self):
        r"""Checks if the option is empty (has no stored value). If it is empty, checks status of the parent."""
        return _conf.OptionChildStringAppendSet_empty(self)
    __swig_destroy__ = _conf.delete_OptionChildStringAppendSet

# Register OptionChildStringAppendSet in _conf:
_conf.OptionChildStringAppendSet_swigregister(OptionChildStringAppendSet)
class OptionChildNumberInt32(Option):
    r"""
    Option that links option to another option. It uses default value and parameters from linked option.
    If it is empty (has no stored value), uses value from the linked option (parent).
    Parent option type is template parameter.
    """

    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):
        r"""Constructor takes reference to parent option."""
        _conf.OptionChildNumberInt32_swiginit(self, _conf.new_OptionChildNumberInt32(parent))

    def clone(self):
        r"""Makes copy (clone) of this object."""
        return _conf.OptionChildNumberInt32_clone(self)

    def get_priority(self):
        r"""Returns priority (source) of the stored value. If no value is stored, priority from the parent is returned."""
        return _conf.OptionChildNumberInt32_get_priority(self)

    def set(self, *args):
        r"""
        *Overload 1:*
        Sets new value and priority (source).
        The value and priority are stored only if the new priority is equal to or higher than the stored priority.

        |

        *Overload 2:*
        Sets new value and runtime priority.

        |

        *Overload 3:*
        Sets new value and priority (source).
        The value and priority are stored only if the new priority is equal to or higher than the stored priority.

        |

        *Overload 4:*
        Sets new value and runtime priority.
        """
        return _conf.OptionChildNumberInt32_set(self, *args)

    def get_value(self):
        r"""Gets the stored value. If no value is stored, value from the parent is returned."""
        return _conf.OptionChildNumberInt32_get_value(self)

    def get_default_value(self):
        r"""Gets the default value from parent. Default value is used until it is replaced by set() method."""
        return _conf.OptionChildNumberInt32_get_default_value(self)

    def get_value_string(self):
        r"""Gets a string representation of the stored value. If no value is stored, value from the parent is returned."""
        return _conf.OptionChildNumberInt32_get_value_string(self)

    def empty(self):
        r"""Checks if the option is empty (has no stored value). If it is empty, checks status of the parent."""
        return _conf.OptionChildNumberInt32_empty(self)
    __swig_destroy__ = _conf.delete_OptionChildNumberInt32

# Register OptionChildNumberInt32 in _conf:
_conf.OptionChildNumberInt32_swigregister(OptionChildNumberInt32)
class OptionChildNumberUInt32(Option):
    r"""
    Option that links option to another option. It uses default value and parameters from linked option.
    If it is empty (has no stored value), uses value from the linked option (parent).
    Parent option type is template parameter.
    """

    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):
        r"""Constructor takes reference to parent option."""
        _conf.OptionChildNumberUInt32_swiginit(self, _conf.new_OptionChildNumberUInt32(parent))

    def clone(self):
        r"""Makes copy (clone) of this object."""
        return _conf.OptionChildNumberUInt32_clone(self)

    def get_priority(self):
        r"""Returns priority (source) of the stored value. If no value is stored, priority from the parent is returned."""
        return _conf.OptionChildNumberUInt32_get_priority(self)

    def set(self, *args):
        r"""
        *Overload 1:*
        Sets new value and priority (source).
        The value and priority are stored only if the new priority is equal to or higher than the stored priority.

        |

        *Overload 2:*
        Sets new value and runtime priority.

        |

        *Overload 3:*
        Sets new value and priority (source).
        The value and priority are stored only if the new priority is equal to or higher than the stored priority.

        |

        *Overload 4:*
        Sets new value and runtime priority.
        """
        return _conf.OptionChildNumberUInt32_set(self, *args)

    def get_value(self):
        r"""Gets the stored value. If no value is stored, value from the parent is returned."""
        return _conf.OptionChildNumberUInt32_get_value(self)

    def get_default_value(self):
        r"""Gets the default value from parent. Default value is used until it is replaced by set() method."""
        return _conf.OptionChildNumberUInt32_get_default_value(self)

    def get_value_string(self):
        r"""Gets a string representation of the stored value. If no value is stored, value from the parent is returned."""
        return _conf.OptionChildNumberUInt32_get_value_string(self)

    def empty(self):
        r"""Checks if the option is empty (has no stored value). If it is empty, checks status of the parent."""
        return _conf.OptionChildNumberUInt32_empty(self)
    __swig_destroy__ = _conf.delete_OptionChildNumberUInt32

# Register OptionChildNumberUInt32 in _conf:
_conf.OptionChildNumberUInt32_swigregister(OptionChildNumberUInt32)
class OptionChildNumberFloat(Option):
    r"""
    Option that links option to another option. It uses default value and parameters from linked option.
    If it is empty (has no stored value), uses value from the linked option (parent).
    Parent option type is template parameter.
    """

    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):
        r"""Constructor takes reference to parent option."""
        _conf.OptionChildNumberFloat_swiginit(self, _conf.new_OptionChildNumberFloat(parent))

    def clone(self):
        r"""Makes copy (clone) of this object."""
        return _conf.OptionChildNumberFloat_clone(self)

    def get_priority(self):
        r"""Returns priority (source) of the stored value. If no value is stored, priority from the parent is returned."""
        return _conf.OptionChildNumberFloat_get_priority(self)

    def set(self, *args):
        r"""
        *Overload 1:*
        Sets new value and priority (source).
        The value and priority are stored only if the new priority is equal to or higher than the stored priority.

        |

        *Overload 2:*
        Sets new value and runtime priority.

        |

        *Overload 3:*
        Sets new value and priority (source).
        The value and priority are stored only if the new priority is equal to or higher than the stored priority.

        |

        *Overload 4:*
        Sets new value and runtime priority.
        """
        return _conf.OptionChildNumberFloat_set(self, *args)

    def get_value(self):
        r"""Gets the stored value. If no value is stored, value from the parent is returned."""
        return _conf.OptionChildNumberFloat_get_value(self)

    def get_default_value(self):
        r"""Gets the default value from parent. Default value is used until it is replaced by set() method."""
        return _conf.OptionChildNumberFloat_get_default_value(self)

    def get_value_string(self):
        r"""Gets a string representation of the stored value. If no value is stored, value from the parent is returned."""
        return _conf.OptionChildNumberFloat_get_value_string(self)

    def empty(self):
        r"""Checks if the option is empty (has no stored value). If it is empty, checks status of the parent."""
        return _conf.OptionChildNumberFloat_empty(self)
    __swig_destroy__ = _conf.delete_OptionChildNumberFloat

# Register OptionChildNumberFloat in _conf:
_conf.OptionChildNumberFloat_swigregister(OptionChildNumberFloat)
class OptionChildEnum(Option):
    r"""
    Option that links option to another option. It uses default value and parameters from linked option.
    If it is empty (has no stored value), uses value from the linked option (parent).
    Parent option type is template parameter.
    """

    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):
        r"""Constructor takes reference to parent option."""
        _conf.OptionChildEnum_swiginit(self, _conf.new_OptionChildEnum(parent))

    def clone(self):
        r"""Makes copy (clone) of this object."""
        return _conf.OptionChildEnum_clone(self)

    def get_priority(self):
        r"""Returns priority (source) of the stored value. If no value is stored, priority from the parent is returned."""
        return _conf.OptionChildEnum_get_priority(self)

    def set(self, *args):
        r"""
        *Overload 1:*
        Sets new value and priority (source).
        The value and priority are stored only if the new priority is equal to or higher than the stored priority.

        |

        *Overload 2:*
        Sets new value and runtime priority.

        |

        *Overload 3:*
        Sets new value and priority (source).
        The value and priority are stored only if the new priority is equal to or higher than the stored priority.

        |

        *Overload 4:*
        Sets new value and runtime priority.
        """
        return _conf.OptionChildEnum_set(self, *args)

    def get_value(self):
        r"""Gets the stored value. If no value is stored, value from the parent is returned."""
        return _conf.OptionChildEnum_get_value(self)

    def get_default_value(self):
        r"""Gets the default value from parent. Default value is used until it is replaced by set() method."""
        return _conf.OptionChildEnum_get_default_value(self)

    def get_value_string(self):
        r"""Gets a string representation of the stored value. If no value is stored, value from the parent is returned."""
        return _conf.OptionChildEnum_get_value_string(self)

    def empty(self):
        r"""Checks if the option is empty (has no stored value). If it is empty, checks status of the parent."""
        return _conf.OptionChildEnum_empty(self)
    __swig_destroy__ = _conf.delete_OptionChildEnum

# Register OptionChildEnum in _conf:
_conf.OptionChildEnum_swigregister(OptionChildEnum)
class OptionChildSeconds(Option):
    r"""
    Option that links option to another option. It uses default value and parameters from linked option.
    If it is empty (has no stored value), uses value from the linked option (parent).
    Parent option type is template parameter.
    """

    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):
        r"""Constructor takes reference to parent option."""
        _conf.OptionChildSeconds_swiginit(self, _conf.new_OptionChildSeconds(parent))

    def clone(self):
        r"""Makes copy (clone) of this object."""
        return _conf.OptionChildSeconds_clone(self)

    def get_priority(self):
        r"""Returns priority (source) of the stored value. If no value is stored, priority from the parent is returned."""
        return _conf.OptionChildSeconds_get_priority(self)

    def set(self, *args):
        r"""
        *Overload 1:*
        Sets new value and priority (source).
        The value and priority are stored only if the new priority is equal to or higher than the stored priority.

        |

        *Overload 2:*
        Sets new value and runtime priority.

        |

        *Overload 3:*
        Sets new value and priority (source).
        The value and priority are stored only if the new priority is equal to or higher than the stored priority.

        |

        *Overload 4:*
        Sets new value and runtime priority.
        """
        return _conf.OptionChildSeconds_set(self, *args)

    def get_value(self):
        r"""Gets the stored value. If no value is stored, value from the parent is returned."""
        return _conf.OptionChildSeconds_get_value(self)

    def get_default_value(self):
        r"""Gets the default value from parent. Default value is used until it is replaced by set() method."""
        return _conf.OptionChildSeconds_get_default_value(self)

    def get_value_string(self):
        r"""Gets a string representation of the stored value. If no value is stored, value from the parent is returned."""
        return _conf.OptionChildSeconds_get_value_string(self)

    def empty(self):
        r"""Checks if the option is empty (has no stored value). If it is empty, checks status of the parent."""
        return _conf.OptionChildSeconds_empty(self)
    __swig_destroy__ = _conf.delete_OptionChildSeconds

# Register OptionChildSeconds in _conf:
_conf.OptionChildSeconds_swigregister(OptionChildSeconds)
class OptionBinds(object):
    r"""
    Maps the options names (text names read from config file, command line, ...) to options objects.
    Supports user defined functions for processing new value and converting value to string.
    """

    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.OptionBinds_swiginit(self, _conf.new_OptionBinds(*args))
    __swig_destroy__ = _conf.delete_OptionBinds

    def add(self, *args):
        return _conf.OptionBinds_add(self, *args)

    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)

# Register OptionBinds in _conf:
_conf.OptionBinds_swigregister(OptionBinds)
class ConfigParser(object):
    r"""
    Class for parsing dnf/yum .ini configuration files.

    ConfigParser is used for parsing files.
    User can get both substituted and original parsed values.
    The parsed items are stored into the PreserveOrderMap.
    ConfigParser preserve order of items. Comments and empty lines are kept.
    """

    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_ConfigParser

    def __init__(self, *args):
        _conf.ConfigParser_swiginit(self, _conf.new_ConfigParser(*args))

    def read(self, file_path):
        r"""
        Reads/parse one INI file

        Can be called repeately for reading/merge more INI files.

        :type file_path: string
        :param file_path: Name (with path) of file to read
        """
        return _conf.ConfigParser_read(self, file_path)

    def write(self, *args):
        r"""
        *Overload 1:*

        Writes all data (all sections) to INI file

        :type file_path: string
        :param file_path: Name (with path) of file to write
        :type append: boolean
        :param append: If true, existent file will be appended, otherwise overwritten

        |

        *Overload 2:*

        Writes one section data to INI file

        :type file_path: string
        :param file_path: Name (with path) of file to write
        :type append: boolean
        :param append: If true, existent file will be appended, otherwise overwritten
        :type section: string
        :param section: Section to write
        """
        return _conf.ConfigParser_write(self, *args)

    def add_section(self, *args):
        return _conf.ConfigParser_add_section(self, *args)

    def has_section(self, section):
        return _conf.ConfigParser_has_section(self, section)

    def has_option(self, section, key):
        return _conf.ConfigParser_has_option(self, section, key)

    def set_value(self, *args):
        return _conf.ConfigParser_set_value(self, *args)

    def remove_section(self, section):
        return _conf.ConfigParser_remove_section(self, section)

    def remove_option(self, section, key):
        return _conf.ConfigParser_remove_option(self, section, key)

    def add_comment_line(self, *args):
        return _conf.ConfigParser_add_comment_line(self, *args)

    def get_value(self, section, key):
        return _conf.ConfigParser_get_value(self, section, key)

    def get_header(self, *args):
        return _conf.ConfigParser_get_header(self, *args)

    def get_data(self, *args):
        return _conf.ConfigParser_get_data(self, *args)

# Register ConfigParser in _conf:
_conf.ConfigParser_swigregister(ConfigParser)
class Vars(object):
    r"""
    Class for reading and substituting DNF vars (arch, releasever, etc.).

    The class loads the variables from the environment as well as from a list
    of directories.
    """

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    Priority_DEFAULT = _conf.Vars_Priority_DEFAULT
    Priority_AUTO = _conf.Vars_Priority_AUTO
    Priority_VARSDIR = _conf.Vars_Priority_VARSDIR
    Priority_PLUGIN = _conf.Vars_Priority_PLUGIN
    Priority_ENVIRONMENT = _conf.Vars_Priority_ENVIRONMENT
    Priority_COMMANDLINE = _conf.Vars_Priority_COMMANDLINE
    Priority_RUNTIME = _conf.Vars_Priority_RUNTIME

    def __init__(self, *args):
        _conf.Vars_swiginit(self, _conf.new_Vars(*args))
    __swig_destroy__ = _conf.delete_Vars

    def substitute(self, text):
        r"""
        Substitute DNF vars in the input text.

        :type text: string
        :param text: The text for substitution
        :rtype: string
        :return: The substituted text
        """
        return _conf.Vars_substitute(self, text)

    def get_variables(self):
        return _conf.Vars_get_variables(self)

    def set(self, *args):
        r"""
        Set particular variable to a value

        :type name: string
        :param name: Name of the variable
        :type value: string
        :param value: Value to be stored in variable
        :type prio: int, optional
        :param prio: Source/Priority of the value
        :raises: ReadOnlyVariableError if the variable is read-only
        """
        return _conf.Vars_set(self, *args)

    def unset(self, *args):
        r"""
        Unset particular variable

        :type name: string
        :param name: Name of the variable
        :type prio: int, optional
        :param prio: Source/Priority of the request
        :raises: ReadOnlyVariableError if the variable is read-only
        :rtype: boolean
        :return: false if the variable exists after the function returns (insufficient request priority)
        """
        return _conf.Vars_unset(self, *args)

    def is_read_only(self, name):
        r"""
        Checks whether a variable is read-only

        :type name: string
        :param name: Name of the variable
        :rtype: boolean
        :return: true if the variable is read-only, false if it is writable
        """
        return _conf.Vars_is_read_only(self, name)

    def contains(self, name):
        r"""
        Checks if there is an variable with name equivalent to name in the container.

        :type name: string
        :param name: Name of the variable
        :rtype: boolean
        :return: true if there is such an element, otherwise false
        """
        return _conf.Vars_contains(self, name)

    def get_value(self, name):
        r"""
        Get value of particular variable.

        :type name: string
        :param name: Name of the variable
        """
        return _conf.Vars_get_value(self, name)

    def get(self, name):
        r"""
        Get particular variable.

        :type name: string
        :param name: Name of the variable
        """
        return _conf.Vars_get(self, name)

    @staticmethod
    def detect_release(base, install_root_path):
        return _conf.Vars_detect_release(base, install_root_path)

# Register Vars in _conf:
_conf.Vars_swigregister(Vars)
class Config(object):
    r"""Base class for configurations objects"""

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

    def opt_binds(self):
        return _conf.Config_opt_binds(self)

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

    def load_from_parser(self, parser, section, vars, logger, priority):
        return _conf.Config_load_from_parser(self, parser, section, vars, logger, priority)

# Register Config in _conf:
_conf.Config_swigregister(Config)
class ConfigMain(Config):
    r"""Holds global configuration"""

    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 get_debuglevel_option(self, *args):
        return _conf.ConfigMain_get_debuglevel_option(self, *args)

    def get_errorlevel_option(self, *args):
        r"""
        *Overload 1:*
        Deprecated: The option does nothing

        |

        *Overload 2:*
        Deprecated: The option does nothing
        """
        return _conf.ConfigMain_get_errorlevel_option(self, *args)

    def get_installroot_option(self, *args):
        return _conf.ConfigMain_get_installroot_option(self, *args)

    def get_config_file_path_option(self, *args):
        return _conf.ConfigMain_get_config_file_path_option(self, *args)

    def get_plugins_option(self, *args):
        return _conf.ConfigMain_get_plugins_option(self, *args)

    def get_pluginpath_option(self, *args):
        return _conf.ConfigMain_get_pluginpath_option(self, *args)

    def get_pluginconfpath_option(self, *args):
        return _conf.ConfigMain_get_pluginconfpath_option(self, *args)

    def get_persistdir_option(self, *args):
        return _conf.ConfigMain_get_persistdir_option(self, *args)

    def get_system_state_dir_option(self, *args):
        return _conf.ConfigMain_get_system_state_dir_option(self, *args)

    def get_transaction_history_dir_option(self, *args):
        return _conf.ConfigMain_get_transaction_history_dir_option(self, *args)

    def get_transformdb_option(self, *args):
        return _conf.ConfigMain_get_transformdb_option(self, *args)

    def get_recent_option(self, *args):
        return _conf.ConfigMain_get_recent_option(self, *args)

    def get_reset_nice_option(self, *args):
        return _conf.ConfigMain_get_reset_nice_option(self, *args)

    def get_system_cachedir_option(self, *args):
        return _conf.ConfigMain_get_system_cachedir_option(self, *args)

    def get_cacheonly_option(self, *args):
        return _conf.ConfigMain_get_cacheonly_option(self, *args)

    def get_keepcache_option(self, *args):
        return _conf.ConfigMain_get_keepcache_option(self, *args)

    def get_logdir_option(self, *args):
        return _conf.ConfigMain_get_logdir_option(self, *args)

    def get_log_size_option(self, *args):
        return _conf.ConfigMain_get_log_size_option(self, *args)

    def get_log_rotate_option(self, *args):
        return _conf.ConfigMain_get_log_rotate_option(self, *args)

    def get_debugdir_option(self, *args):
        return _conf.ConfigMain_get_debugdir_option(self, *args)

    def get_varsdir_option(self, *args):
        return _conf.ConfigMain_get_varsdir_option(self, *args)

    def get_reposdir_option(self, *args):
        return _conf.ConfigMain_get_reposdir_option(self, *args)

    def get_debug_solver_option(self, *args):
        return _conf.ConfigMain_get_debug_solver_option(self, *args)

    def get_installonlypkgs_option(self, *args):
        return _conf.ConfigMain_get_installonlypkgs_option(self, *args)

    def get_group_package_types_option(self, *args):
        return _conf.ConfigMain_get_group_package_types_option(self, *args)

    def get_optional_metadata_types_option(self, *args):
        return _conf.ConfigMain_get_optional_metadata_types_option(self, *args)

    def get_use_host_config_option(self, *args):
        return _conf.ConfigMain_get_use_host_config_option(self, *args)

    def get_installonly_limit_option(self, *args):
        return _conf.ConfigMain_get_installonly_limit_option(self, *args)

    def get_tsflags_option(self, *args):
        return _conf.ConfigMain_get_tsflags_option(self, *args)

    def get_assumeyes_option(self, *args):
        return _conf.ConfigMain_get_assumeyes_option(self, *args)

    def get_assumeno_option(self, *args):
        return _conf.ConfigMain_get_assumeno_option(self, *args)

    def get_check_config_file_age_option(self, *args):
        return _conf.ConfigMain_get_check_config_file_age_option(self, *args)

    def get_defaultyes_option(self, *args):
        return _conf.ConfigMain_get_defaultyes_option(self, *args)

    def get_diskspacecheck_option(self, *args):
        return _conf.ConfigMain_get_diskspacecheck_option(self, *args)

    def get_localpkg_gpgcheck_option(self, *args):
        return _conf.ConfigMain_get_localpkg_gpgcheck_option(self, *args)

    def get_gpgkey_dns_verification_option(self, *args):
        return _conf.ConfigMain_get_gpgkey_dns_verification_option(self, *args)

    def get_obsoletes_option(self, *args):
        return _conf.ConfigMain_get_obsoletes_option(self, *args)

    def get_exit_on_lock_option(self, *args):
        return _conf.ConfigMain_get_exit_on_lock_option(self, *args)

    def get_allow_vendor_change_option(self, *args):
        return _conf.ConfigMain_get_allow_vendor_change_option(self, *args)

    def get_metadata_timer_sync_option(self, *args):
        r"""
        *Overload 1:*
        Deprecated: The metadata_timer_sync option does nothing

        |

        *Overload 2:*
        Deprecated: The metadata_timer_sync option does nothing
        """
        return _conf.ConfigMain_get_metadata_timer_sync_option(self, *args)

    def get_disable_excludes_option(self, *args):
        return _conf.ConfigMain_get_disable_excludes_option(self, *args)

    def get_multilib_policy_option(self, *args):
        return _conf.ConfigMain_get_multilib_policy_option(self, *args)

    def get_best_option(self, *args):
        return _conf.ConfigMain_get_best_option(self, *args)

    def get_install_weak_deps_option(self, *args):
        return _conf.ConfigMain_get_install_weak_deps_option(self, *args)

    def get_allow_downgrade_option(self, *args):
        return _conf.ConfigMain_get_allow_downgrade_option(self, *args)

    def get_bugtracker_url_option(self, *args):
        return _conf.ConfigMain_get_bugtracker_url_option(self, *args)

    def get_zchunk_option(self, *args):
        return _conf.ConfigMain_get_zchunk_option(self, *args)

    def get_color_option(self, *args):
        return _conf.ConfigMain_get_color_option(self, *args)

    def get_color_list_installed_older_option(self, *args):
        return _conf.ConfigMain_get_color_list_installed_older_option(self, *args)

    def get_color_list_installed_newer_option(self, *args):
        return _conf.ConfigMain_get_color_list_installed_newer_option(self, *args)

    def get_color_list_installed_reinstall_option(self, *args):
        return _conf.ConfigMain_get_color_list_installed_reinstall_option(self, *args)

    def get_color_list_installed_extra_option(self, *args):
        return _conf.ConfigMain_get_color_list_installed_extra_option(self, *args)

    def get_color_list_available_upgrade_option(self, *args):
        return _conf.ConfigMain_get_color_list_available_upgrade_option(self, *args)

    def get_color_list_available_downgrade_option(self, *args):
        return _conf.ConfigMain_get_color_list_available_downgrade_option(self, *args)

    def get_color_list_available_reinstall_option(self, *args):
        return _conf.ConfigMain_get_color_list_available_reinstall_option(self, *args)

    def get_color_list_available_install_option(self, *args):
        return _conf.ConfigMain_get_color_list_available_install_option(self, *args)

    def get_color_update_installed_option(self, *args):
        return _conf.ConfigMain_get_color_update_installed_option(self, *args)

    def get_color_update_local_option(self, *args):
        return _conf.ConfigMain_get_color_update_local_option(self, *args)

    def get_color_update_remote_option(self, *args):
        return _conf.ConfigMain_get_color_update_remote_option(self, *args)

    def get_color_search_match_option(self, *args):
        return _conf.ConfigMain_get_color_search_match_option(self, *args)

    def get_history_record_option(self, *args):
        return _conf.ConfigMain_get_history_record_option(self, *args)

    def get_history_record_packages_option(self, *args):
        return _conf.ConfigMain_get_history_record_packages_option(self, *args)

    def get_rpmverbosity_option(self, *args):
        return _conf.ConfigMain_get_rpmverbosity_option(self, *args)

    def get_strict_option(self, *args):
        r"""
        *Overload 1:*
        Deprecated: Use get_skip_broken_option() and get_skip_unavailable_option()

        |

        *Overload 2:*
        Deprecated: Use get_skip_broken_option() const and get_skip_unavailable_option() const
        """
        return _conf.ConfigMain_get_strict_option(self, *args)

    def get_skip_broken_option(self, *args):
        r"""Solver is allowed to skip transaction packages with broken dependencies"""
        return _conf.ConfigMain_get_skip_broken_option(self, *args)

    def get_skip_unavailable_option(self, *args):
        r"""Solver is allowed to skip packages that are not available in repositories"""
        return _conf.ConfigMain_get_skip_unavailable_option(self, *args)

    def get_autocheck_running_kernel_option(self, *args):
        return _conf.ConfigMain_get_autocheck_running_kernel_option(self, *args)

    def get_clean_requirements_on_remove_option(self, *args):
        return _conf.ConfigMain_get_clean_requirements_on_remove_option(self, *args)

    def get_history_list_view_option(self, *args):
        return _conf.ConfigMain_get_history_list_view_option(self, *args)

    def get_upgrade_group_objects_upgrade_option(self, *args):
        return _conf.ConfigMain_get_upgrade_group_objects_upgrade_option(self, *args)

    def get_destdir_option(self, *args):
        return _conf.ConfigMain_get_destdir_option(self, *args)

    def get_comment_option(self, *args):
        return _conf.ConfigMain_get_comment_option(self, *args)

    def get_downloadonly_option(self, *args):
        return _conf.ConfigMain_get_downloadonly_option(self, *args)

    def get_ignorearch_option(self, *args):
        return _conf.ConfigMain_get_ignorearch_option(self, *args)

    def get_module_platform_id_option(self, *args):
        return _conf.ConfigMain_get_module_platform_id_option(self, *args)

    def get_module_stream_switch_option(self, *args):
        return _conf.ConfigMain_get_module_stream_switch_option(self, *args)

    def get_module_obsoletes_option(self, *args):
        return _conf.ConfigMain_get_module_obsoletes_option(self, *args)

    def get_user_agent_option(self, *args):
        return _conf.ConfigMain_get_user_agent_option(self, *args)

    def get_countme_option(self, *args):
        return _conf.ConfigMain_get_countme_option(self, *args)

    def get_protect_running_kernel_option(self, *args):
        return _conf.ConfigMain_get_protect_running_kernel_option(self, *args)

    def get_build_cache_option(self, *args):
        return _conf.ConfigMain_get_build_cache_option(self, *args)

    def get_retries_option(self, *args):
        r"""
        *Overload 1:*
        Deprecated: The option does nothing

        |

        *Overload 2:*
        Deprecated: The option does nothing
        """
        return _conf.ConfigMain_get_retries_option(self, *args)

    def get_cachedir_option(self, *args):
        return _conf.ConfigMain_get_cachedir_option(self, *args)

    def get_fastestmirror_option(self, *args):
        return _conf.ConfigMain_get_fastestmirror_option(self, *args)

    def get_excludeenvs_option(self, *args):
        return _conf.ConfigMain_get_excludeenvs_option(self, *args)

    def get_excludegroups_option(self, *args):
        return _conf.ConfigMain_get_excludegroups_option(self, *args)

    def get_excludepkgs_option(self, *args):
        return _conf.ConfigMain_get_excludepkgs_option(self, *args)

    def get_includepkgs_option(self, *args):
        return _conf.ConfigMain_get_includepkgs_option(self, *args)

    def get_exclude_from_weak_option(self, *args):
        return _conf.ConfigMain_get_exclude_from_weak_option(self, *args)

    def get_exclude_from_weak_autodetect_option(self, *args):
        return _conf.ConfigMain_get_exclude_from_weak_autodetect_option(self, *args)

    def get_proxy_option(self, *args):
        return _conf.ConfigMain_get_proxy_option(self, *args)

    def get_proxy_username_option(self, *args):
        return _conf.ConfigMain_get_proxy_username_option(self, *args)

    def get_proxy_password_option(self, *args):
        return _conf.ConfigMain_get_proxy_password_option(self, *args)

    def get_proxy_auth_method_option(self, *args):
        return _conf.ConfigMain_get_proxy_auth_method_option(self, *args)

    def get_protected_packages_option(self, *args):
        return _conf.ConfigMain_get_protected_packages_option(self, *args)

    def get_username_option(self, *args):
        return _conf.ConfigMain_get_username_option(self, *args)

    def get_password_option(self, *args):
        return _conf.ConfigMain_get_password_option(self, *args)

    def get_gpgcheck_option(self, *args):
        r"""
        *Overload 1:*
        Deprecated: Use get_pkg_gpgcheck_option()

        |

        *Overload 2:*
        Deprecated: Use get_pkg_gpgcheck_option() const
        """
        return _conf.ConfigMain_get_gpgcheck_option(self, *args)

    def get_pkg_gpgcheck_option(self, *args):
        return _conf.ConfigMain_get_pkg_gpgcheck_option(self, *args)

    def get_repo_gpgcheck_option(self, *args):
        return _conf.ConfigMain_get_repo_gpgcheck_option(self, *args)

    def get_enabled_option(self, *args):
        return _conf.ConfigMain_get_enabled_option(self, *args)

    def get_enablegroups_option(self, *args):
        return _conf.ConfigMain_get_enablegroups_option(self, *args)

    def get_bandwidth_option(self, *args):
        return _conf.ConfigMain_get_bandwidth_option(self, *args)

    def get_minrate_option(self, *args):
        return _conf.ConfigMain_get_minrate_option(self, *args)

    def get_ip_resolve_option(self, *args):
        return _conf.ConfigMain_get_ip_resolve_option(self, *args)

    def get_throttle_option(self, *args):
        return _conf.ConfigMain_get_throttle_option(self, *args)

    def get_timeout_option(self, *args):
        return _conf.ConfigMain_get_timeout_option(self, *args)

    def get_max_parallel_downloads_option(self, *args):
        return _conf.ConfigMain_get_max_parallel_downloads_option(self, *args)

    def get_metadata_expire_option(self, *args):
        return _conf.ConfigMain_get_metadata_expire_option(self, *args)

    def get_sslcacert_option(self, *args):
        return _conf.ConfigMain_get_sslcacert_option(self, *args)

    def get_sslverify_option(self, *args):
        return _conf.ConfigMain_get_sslverify_option(self, *args)

    def get_sslclientcert_option(self, *args):
        return _conf.ConfigMain_get_sslclientcert_option(self, *args)

    def get_sslclientkey_option(self, *args):
        return _conf.ConfigMain_get_sslclientkey_option(self, *args)

    def get_proxy_sslcacert_option(self, *args):
        return _conf.ConfigMain_get_proxy_sslcacert_option(self, *args)

    def get_proxy_sslverify_option(self, *args):
        return _conf.ConfigMain_get_proxy_sslverify_option(self, *args)

    def get_proxy_sslclientcert_option(self, *args):
        return _conf.ConfigMain_get_proxy_sslclientcert_option(self, *args)

    def get_proxy_sslclientkey_option(self, *args):
        return _conf.ConfigMain_get_proxy_sslclientkey_option(self, *args)

    def get_deltarpm_option(self, *args):
        r"""
        *Overload 1:*
        Deprecated: The option does nothing

        |

        *Overload 2:*
        Deprecated: The option does nothing
        """
        return _conf.ConfigMain_get_deltarpm_option(self, *args)

    def get_deltarpm_percentage_option(self, *args):
        r"""
        *Overload 1:*
        Deprecated: The option does nothing

        |

        *Overload 2:*
        Deprecated: The option does nothing
        """
        return _conf.ConfigMain_get_deltarpm_percentage_option(self, *args)

    def get_skip_if_unavailable_option(self, *args):
        return _conf.ConfigMain_get_skip_if_unavailable_option(self, *args)

    def load_from_parser(self, *args):
        return _conf.ConfigMain_load_from_parser(self, *args)

# Register ConfigMain in _conf:
_conf.ConfigMain_swigregister(ConfigMain)

import re

def _config_option_getter(config_object, option_name):
    try:
        return getattr(config_object, option_name)().get_value()
    except Exception:
        return None

def _config_option_setter(config_object, option_name, value):
    getattr(config_object, option_name)().set(value)

def create_config_option_attributes(cls):
    for attr in dir(cls):
        option_getter_match = re.search(r'get_(\w+)_option', attr)
        if option_getter_match:
            option_name = option_getter_match.group(1)
            setattr(cls, option_name, property(
                lambda self, attr=attr: _config_option_getter(self, attr),
                lambda self, value, attr=attr: _config_option_setter(self, attr, value)
            ))

create_config_option_attributes(ConfigMain)


