:param contexts: list of context file specs
    :param schema: JSON schema file in any formats anyconfig supports, to
        validate given context files
    :param werr: Exit immediately if True and any errors occurrs
        while loading context files

def parse_and_load_contexts(contexts, schema=None, werr=False):
    """
    :param contexts: list of context file specs
    :param schema: JSON schema file in any formats anyconfig supports, to
        validate given context files
    :param werr: Exit immediately if True and any errors occurrs
        while loading context files
    """
    ctx = dict()
    diff = None

    if contexts:
        for ctx_path, ctx_type in concat(parse_filespec(c) for c in contexts):
            try:
                diff = load_context(ctx_path, ctx_type, scm=schema)
                if diff is not None:
                    merge(ctx, diff)
            except (IOError, OSError, AttributeError):
                if werr:
                    raise
    return ctx