11from importlib import resources
22from os import PathLike
33from typing import TextIO , Union
4-
5- from pydantic_yaml import parse_yaml_raw_as
4+ from pydantic import TypeAdapter
5+ import yaml
66
77from harp .model import Model , Registers
88
@@ -13,7 +13,8 @@ def _read_common_registers() -> Registers:
1313
1414 file = resources .files (__package__ ) / "common.yml"
1515 with file .open ("r" ) as fileIO :
16- return parse_yaml_raw_as (Registers , fileIO .read ())
16+ raw_reg = yaml .safe_load (fileIO .read ())
17+ return TypeAdapter (Registers ).validate_python (raw_reg )
1718
1819
1920def read_schema (file : Union [str , PathLike , TextIO ], include_common_registers : bool = True ) -> Model :
@@ -37,7 +38,8 @@ def read_schema(file: Union[str, PathLike, TextIO], include_common_registers: bo
3738 with open (file ) as fileIO :
3839 return read_schema (fileIO )
3940 else :
40- schema = parse_yaml_raw_as (Model , file .read ())
41+ raw_schema = yaml .safe_load (file .read ())
42+ schema = TypeAdapter (Model ).validate_python (raw_schema )
4143 if "WhoAmI" not in schema .registers and include_common_registers :
4244 common = _read_common_registers ()
4345 schema .registers = dict (common .registers , ** schema .registers )
0 commit comments