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

14 statements  

« prev     ^ index     » next       coverage.py v7.16.2, created at 2026-10-02 20:26 +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 

16 

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

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

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

20 

21 

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

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

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

25 

26 

27YAMLError = yaml.YAMLError