| # Copyright (c) 2024 Microsoft Corporation. | |
| # Licensed under the MIT License | |
| import re | |
| from typing import Any, cast | |
| import yaml | |
| from graphrag.config import ( | |
| GraphRagConfig, | |
| create_graphrag_config, | |
| ) | |
| from graphrag.index.init_content import INIT_YAML | |
| def test_init_yaml(): | |
| data = yaml.load(INIT_YAML, Loader=yaml.FullLoader) | |
| config = create_graphrag_config(data) | |
| GraphRagConfig.model_validate(config, strict=True) | |
| def test_init_yaml_uncommented(): | |
| lines = INIT_YAML.splitlines() | |
| lines = [line for line in lines if "##" not in line] | |
| def uncomment_line(line: str) -> str: | |
| leading_whitespace = cast(Any, re.search(r"^(\s*)", line)).group(1) | |
| return re.sub(r"^\s*# ", leading_whitespace, line, count=1) | |
| content = "\n".join([uncomment_line(line) for line in lines]) | |
| data = yaml.load(content, Loader=yaml.FullLoader) | |
| config = create_graphrag_config(data) | |
| GraphRagConfig.model_validate(config, strict=True) | |