# Path: gpyconf/mvc.py
# class MVCComponent(events.GSignals):
#     """
#     Base class for all MVC components (frontend, backend, controller).
#     Implements the :class:`gpyconf.events.GSignals` class, so signal emitting
#     and connecting can be used for inheriting classes.
#     """
#     def __init__(self):
#         events.GSignals.__init__(self)
#         self.add_event('log')
# 
#     def log(self, message, level='debug'):
#         self.emit('log', message, level=level)
# 
#     def warn(self, message):
#         self.log(message, 'warning')
# 
#     @classmethod
#     def with_arguments(cls, *args, **kwargs):
#         """
#         Returns a :class:`ComponentFactory` instance. That factory is a wrapper
#         to this class that returns an instance of this class when calling it
#         passing ``args`` and ``kwargs`` as additional arguments. For example, ::
# 
#             wrapper = MyMVCComponentSubclass.with_arguments(42, foo='bar')
#             wrapper(a, b)
# 
#         is equal to ::
# 
#             MyMVCComponentSubclass(a, b, 42, foo='bar')
#         """
#         return ComponentFactory(cls, *args, **kwargs)
# 
#     @property
#     def _class_name(self):
#         """ Wrapper to :attr:`self.__class__.__name__` """
#         return self.__class__.__name__
# 
# Path: gpyconf/_internal/exceptions.py
# class InvalidOptionError(GPyConfException):
#     """ Raised if the option of a field is invalid or blank """
#     def __init__(self, field, message):
#         GPyConfException.__init__(self, message)


from ..mvc import MVCComponent
from .._internal.exceptions import InvalidOptionError
    :param kwargs:
        Any other arguments passed to the :meth:`on_initialized` method of
        field subclasses.

    .. note::

        All additional arguments passed to the field constructor have to be
        processed by that field. If there are remaining (unused)
        arguments after that call, a :exc:`TypeError` is raised.

    """
    class __metaclass__(type):
        def __new__(cls, name, bases, dct):
            dct.setdefault('abstract', False)
            return type.__new__(cls, name, bases, dct)
    abstract = True
    creation_counter = 0
    default = None
    __events__ = (
        'initialized',
        'init-widget',
        'value-changed',
        'reset-value',
        'set-editable'
    )

    is_initialized = False

    def __init__(self, label=None, section=None, default=None, blank=None,
                 editable=True, hidden=False, group=None, label2=None, **kwargs):

# Path: gpyconf/mvc.py
# class MVCComponent(events.GSignals):
#     """
#     Base class for all MVC components (frontend, backend, controller).
#     Implements the :class:`gpyconf.events.GSignals` class, so signal emitting
#     and connecting can be used for inheriting classes.
#     """
#     def __init__(self):
#         events.GSignals.__init__(self)
#         self.add_event('log')
# 
#     def log(self, message, level='debug'):
#         self.emit('log', message, level=level)
# 
#     def warn(self, message):
#         self.log(message, 'warning')
# 
#     @classmethod
#     def with_arguments(cls, *args, **kwargs):
#         """
#         Returns a :class:`ComponentFactory` instance. That factory is a wrapper
#         to this class that returns an instance of this class when calling it
#         passing ``args`` and ``kwargs`` as additional arguments. For example, ::
# 
#             wrapper = MyMVCComponentSubclass.with_arguments(42, foo='bar')
#             wrapper(a, b)
# 
#         is equal to ::
# 
#             MyMVCComponentSubclass(a, b, 42, foo='bar')
#         """
#         return ComponentFactory(cls, *args, **kwargs)
# 
#     @property
#     def _class_name(self):
#         """ Wrapper to :attr:`self.__class__.__name__` """
#         return self.__class__.__name__
# 
# Path: gpyconf/_internal/exceptions.py
# class InvalidOptionError(GPyConfException):
#     """ Raised if the option of a field is invalid or blank """
#     def __init__(self, field, message):
#         GPyConfException.__init__(self, message)


# Path: gpyconf/fields/base.py
from ..mvc import MVCComponent
from .._internal.exceptions import InvalidOptionError

    :param kwargs:
        Any other arguments passed to the :meth:`on_initialized` method of
        field subclasses.

    .. note::

        All additional arguments passed to the field constructor have to be
        processed by that field. If there are remaining (unused)
        arguments after that call, a :exc:`TypeError` is raised.

    """
    class __metaclass__(type):
        def __new__(cls, name, bases, dct):
            dct.setdefault('abstract', False)
            return type.__new__(cls, name, bases, dct)
    abstract = True
    creation_counter = 0
    default = None
    __events__ = (
        'initialized',
        'init-widget',
        'value-changed',
        'reset-value',
        'set-editable'
    )

    is_initialized = False

    def __init__(self, label=None, section=None, default=None, blank=None,
                 editable=True, hidden=False, group=None, label2=None, **kwargs):

        MVCComponent.__init__(self)