Coverage for src/keel/yaml_helper.py: 100%

13 statements  

« prev     ^ index     » next       coverage.py v7.15.4, created at 2026-08-18 12:05 +0000

1"""YAML parsing helpers with C-extension acceleration.""" 

2 

3from __future__ import annotations 

4 

5from typing import Any 

6 

7import yaml 

8 

9try: 

10 from yaml import CSafeDumper as _SafeDumper 

11 from yaml import CSafeLoader as _SafeLoader 

12except ImportError: 

13 from yaml import SafeDumper as _SafeDumper 

14 from yaml import SafeLoader as _SafeLoader 

15 

16def load(stream: str | bytes) -> Any: 

17 """Parse a YAML document using the C-extension if available.""" 

18 return yaml.load(stream, Loader=_SafeLoader) # nosec B506 

19 

20def dump(data: Any, **kwargs: Any) -> str: 

21 """Serialize a YAML document using the C-extension if available.""" 

22 return yaml.dump(data, Dumper=_SafeDumper, **kwargs)