Use _wrap_native_text only for builtin STRING_TYPE_FILTERS (#71801) (#72915)

(cherry picked from commit 252685092c)
This commit is contained in:
Martin Krizek 2021-01-11 07:22:01 +01:00 committed by GitHub
parent 7006b62ff4
commit a5df30e2bf
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 4 additions and 1 deletions

View file

@ -0,0 +1,2 @@
bugfixes:
- Apply ``_wrap_native_text`` only for builtin filters specified in STRING_TYPE_FILTERS.

View file

@ -510,7 +510,8 @@ class JinjaPluginIntercept(MutableMapping):
for func_name, func in iteritems(method_map()): for func_name, func in iteritems(method_map()):
fq_name = '.'.join((parent_prefix, func_name)) fq_name = '.'.join((parent_prefix, func_name))
# FIXME: detect/warn on intra-collection function name collisions # FIXME: detect/warn on intra-collection function name collisions
if USE_JINJA2_NATIVE and func_name in C.STRING_TYPE_FILTERS: if USE_JINJA2_NATIVE and fq_name.startswith(('ansible.builtin.', 'ansible.legacy.')) and \
func_name in C.STRING_TYPE_FILTERS:
self._collection_jinja_func_cache[fq_name] = _wrap_native_text(func) self._collection_jinja_func_cache[fq_name] = _wrap_native_text(func)
else: else:
self._collection_jinja_func_cache[fq_name] = _unroll_iterator(func) self._collection_jinja_func_cache[fq_name] = _unroll_iterator(func)