summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorMatt Clay <matt@mystile.com>2022-03-07 09:55:00 -0800
committerMatt Clay <matt@mystile.com>2022-03-08 12:51:33 -0800
commit822fddd627af5fe5648466eb418f144409e6e402 (patch)
treeaeb956f0a2fe2c9cb54e8d0c96c69dc4b1c3f3be /lib
parentf43c54d8902cdc3f7b1844beb429fa8239f1d671 (diff)
downloadansible-822fddd627af5fe5648466eb418f144409e6e402.tar.gz
Fix yaml loader and compat.
Diffstat (limited to 'lib')
-rw-r--r--lib/ansible/module_utils/common/yaml.py34
-rw-r--r--lib/ansible/parsing/yaml/loader.py5
2 files changed, 21 insertions, 18 deletions
diff --git a/lib/ansible/module_utils/common/yaml.py b/lib/ansible/module_utils/common/yaml.py
index 68f837568a..f91bf1234d 100644
--- a/lib/ansible/module_utils/common/yaml.py
+++ b/lib/ansible/module_utils/common/yaml.py
@@ -11,34 +11,38 @@ __metaclass__ = type
from functools import partial as _partial
-import ansible.module_utils.compat.typing as t
-
HAS_LIBYAML = False
+
try:
import yaml as _yaml
except ImportError:
HAS_YAML = False
- SafeLoader = None
- SafeDumper = None
- Parser = None
- yaml_load = None
- yaml_load_all = None
- yaml_dump = None
- yaml_dump_all = None
else:
HAS_YAML = True
+
+if HAS_YAML:
try:
- SafeLoader = _yaml.CSafeLoader
- SafeDumper = _yaml.CSafeDumper
- Parser = _yaml.cyaml.CParser
+ from yaml import CSafeLoader as SafeLoader
+ from yaml import CSafeDumper as SafeDumper
+ from yaml.cyaml import CParser as Parser
+
HAS_LIBYAML = True
except AttributeError:
- SafeLoader = _yaml.SafeLoader # type: t.Type[_yaml.CSafeLoader] | t.Type[_yaml.SafeLoader] # type: ignore[no-redef]
- SafeDumper = _yaml.SafeDumper # type: t.Type[_yaml.CSafeDumper] | t.Type[_yaml.SafeDumper] # type: ignore[no-redef]
- Parser = _yaml.parser.Parser # type: t.Type[_yaml.cyaml.CParser] | t.Type[_yaml.parser.Parser] # type: ignore[no-redef]
+ from yaml import SafeLoader # type: ignore[misc]
+ from yaml import SafeDumper # type: ignore[misc]
+ from yaml.parser import Parser # type: ignore[misc]
yaml_load = _partial(_yaml.load, Loader=SafeLoader)
yaml_load_all = _partial(_yaml.load_all, Loader=SafeLoader)
yaml_dump = _partial(_yaml.dump, Dumper=SafeDumper)
yaml_dump_all = _partial(_yaml.dump_all, Dumper=SafeDumper)
+else:
+ SafeLoader = object # type: ignore[assignment,misc]
+ SafeDumper = object # type: ignore[assignment,misc]
+ Parser = object # type: ignore[assignment,misc]
+
+ yaml_load = None # type: ignore[assignment]
+ yaml_load_all = None # type: ignore[assignment]
+ yaml_dump = None # type: ignore[assignment]
+ yaml_dump_all = None # type: ignore[assignment]
diff --git a/lib/ansible/parsing/yaml/loader.py b/lib/ansible/parsing/yaml/loader.py
index e2989a49ed..15bde79aab 100644
--- a/lib/ansible/parsing/yaml/loader.py
+++ b/lib/ansible/parsing/yaml/loader.py
@@ -27,20 +27,19 @@ from ansible.module_utils.common.yaml import HAS_LIBYAML, Parser
if HAS_LIBYAML:
class AnsibleLoader(Parser, AnsibleConstructor, Resolver): # type: ignore[misc] # pylint: disable=inconsistent-mro
def __init__(self, stream, file_name=None, vault_secrets=None):
- Parser.__init__(self, stream) # pylint: disable=non-parent-init-called
+ Parser.__init__(self, stream)
AnsibleConstructor.__init__(self, file_name=file_name, vault_secrets=vault_secrets)
Resolver.__init__(self)
else:
from yaml.composer import Composer
from yaml.reader import Reader
from yaml.scanner import Scanner
- from yaml.parser import Parser
class AnsibleLoader(Reader, Scanner, Parser, Composer, AnsibleConstructor, Resolver): # type: ignore[misc,no-redef] # pylint: disable=inconsistent-mro
def __init__(self, stream, file_name=None, vault_secrets=None):
Reader.__init__(self, stream)
Scanner.__init__(self)
- Parser.__init__(self) # type: ignore[call-arg] # pylint: disable=non-parent-init-called
+ Parser.__init__(self)
Composer.__init__(self)
AnsibleConstructor.__init__(self, file_name=file_name, vault_secrets=vault_secrets)
Resolver.__init__(self)