# Path: configmanager/utils.py
# class _NotSet(object):
#     def __init__(self):
#     def __eq__(self, other):
#     def __nonzero__(self):
#     def __bool__(self):
#     def __str__(self):
#     def __repr__(self):
#     def __deepcopy__(self, memodict):
#     def __copy__(self):
# def _get_persistence_adapter_for(filename):


from .utils import not_set
class BaseItem(object):
    is_item = True
    is_section = False
    is_config = False


def is_config_item(obj):
    return isinstance(obj, BaseItem)


class BaseSection(object):
    """
    A base class to allow detection of section classes and instances.
    No other functionality to be added here.
    """

    is_item = False
    is_section = True
    is_config = False


def is_config_section(obj):
    return isinstance(obj, BaseSection)


class ItemAttribute(object):
    """
    Class used in :class:`.Item` class to declare attributes of config items.
    """


# Path: configmanager/utils.py
# class _NotSet(object):
#     def __init__(self):
#     def __eq__(self, other):
#     def __nonzero__(self):
#     def __bool__(self):
#     def __str__(self):
#     def __repr__(self):
#     def __deepcopy__(self, memodict):
#     def __copy__(self):
# def _get_persistence_adapter_for(filename):


# Path: configmanager/base.py
from .utils import not_set

class BaseItem(object):
    is_item = True
    is_section = False
    is_config = False


def is_config_item(obj):
    return isinstance(obj, BaseItem)


class BaseSection(object):
    """
    A base class to allow detection of section classes and instances.
    No other functionality to be added here.
    """

    is_item = False
    is_section = True
    is_config = False


def is_config_section(obj):
    return isinstance(obj, BaseSection)


class ItemAttribute(object):
    """
    Class used in :class:`.Item` class to declare attributes of config items.
    """


    def __init__(self, name, default=not_set, value=not_set, allow_dynamic_override=False):