From: Lee Garrett <debian@rocketjump.eu>
Date: Sun, 20 Apr 2025 11:03:32 -0400
Subject: Work around missing internal method

ansible 2.19 has removed the _strip_unsafe internal method, so work around this
for now. Replace this with the upstream solution once available.

Forwarded: https://github.com/mitogen-hq/mitogen/pull/1259
Bug-Upstream: https://github.com/mitogen-hq/mitogen/issues/1258
---
 ansible_mitogen/utils/unsafe.py | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/ansible_mitogen/utils/unsafe.py b/ansible_mitogen/utils/unsafe.py
index b2c3d53..c1bdaee 100644
--- a/ansible_mitogen/utils/unsafe.py
+++ b/ansible_mitogen/utils/unsafe.py
@@ -31,7 +31,12 @@ _CAST_DISPATCH = {
 }
 _CAST_DISPATCH.update({t: _passthrough for t in mitogen.utils.PASSTHROUGH})
 
-if hasattr(ansible.utils.unsafe_proxy.AnsibleUnsafeText, '_strip_unsafe'):
+if ansible_mitogen.utils.ansible_version[:2] >= (2, 19):
+    _CAST_DISPATCH.update({
+        ansible.utils.unsafe_proxy.AnsibleUnsafeBytes: bytes,
+        ansible.utils.unsafe_proxy.AnsibleUnsafeText: mitogen.core.UnicodeType,
+    })
+elif hasattr(ansible.utils.unsafe_proxy.AnsibleUnsafeText, '_strip_unsafe'):
     _CAST_DISPATCH.update({
         ansible.utils.unsafe_proxy.AnsibleUnsafeBytes: _cast_unsafe,
         ansible.utils.unsafe_proxy.AnsibleUnsafeText: _cast_unsafe,
