summaryrefslogtreecommitdiffstats
path: root/test/lib/ansible_test/_internal/compat/yaml.py
diff options
context:
space:
mode:
Diffstat (limited to 'test/lib/ansible_test/_internal/compat/yaml.py')
-rw-r--r--test/lib/ansible_test/_internal/compat/yaml.py22
1 files changed, 22 insertions, 0 deletions
diff --git a/test/lib/ansible_test/_internal/compat/yaml.py b/test/lib/ansible_test/_internal/compat/yaml.py
new file mode 100644
index 0000000..4b47136
--- /dev/null
+++ b/test/lib/ansible_test/_internal/compat/yaml.py
@@ -0,0 +1,22 @@
+"""PyYAML compatibility."""
+from __future__ import annotations
+
+import typing as t
+
+from functools import (
+ partial,
+)
+
+try:
+ import yaml as _yaml
+ YAML_IMPORT_ERROR = None
+except ImportError as ex:
+ yaml_load = None # pylint: disable=invalid-name
+ YAML_IMPORT_ERROR = ex
+else:
+ try:
+ _SafeLoader: t.Union[t.Type[_yaml.CSafeLoader], t.Type[_yaml.SafeLoader]] = _yaml.CSafeLoader
+ except AttributeError:
+ _SafeLoader = _yaml.SafeLoader
+
+ yaml_load = partial(_yaml.load, Loader=_SafeLoader)