diff options
Diffstat (limited to '')
-rw-r--r-- | lib/ansible/module_utils/compat/typing.py | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/lib/ansible/module_utils/compat/typing.py b/lib/ansible/module_utils/compat/typing.py new file mode 100644 index 0000000..27b25f7 --- /dev/null +++ b/lib/ansible/module_utils/compat/typing.py @@ -0,0 +1,25 @@ +"""Compatibility layer for the `typing` module, providing all Python versions access to the newest type-hinting features.""" +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +# pylint: disable=wildcard-import,unused-wildcard-import + +# catch *all* exceptions to prevent type annotation support module bugs causing runtime failures +# (eg, https://github.com/ansible/ansible/issues/77857) + +try: + from typing_extensions import * +except Exception: # pylint: disable=broad-except + pass + +try: + from typing import * # type: ignore[misc] +except Exception: # pylint: disable=broad-except + pass + + +try: + cast +except NameError: + def cast(typ, val): # type: ignore[no-redef] + return val |