# Path: configmanager/base.py
# class BaseItem(object):
#     is_item = True
#     is_section = False
#     is_config = False
# 
# 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


import collections.abc
import inspect
import six
from .base import BaseItem, BaseSection




def parse_config_schema(schema, parent_section=None, root=None):
    if root:
        parent_section = root

        is_valid_config_root_schema = (
            inspect.ismodule(schema)
            or
            (

# Path: configmanager/base.py
# class BaseItem(object):
#     is_item = True
#     is_section = False
#     is_config = False
# 
# 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


# Path: configmanager/schema_parser.py
import collections.abc
import inspect
import six
from .base import BaseItem, BaseSection





def parse_config_schema(schema, parent_section=None, root=None):
    if root:
        parent_section = root

        is_valid_config_root_schema = (
            inspect.ismodule(schema)
            or
            (

                isinstance(schema, collections.abc.Sequence)