Skip to content

Commit 07c8a49

Browse files
author
Evan Roman
committed
Add
1 parent 733cc4e commit 07c8a49

File tree

1 file changed

+21
-6
lines changed
  • azure_functions_worker/bindings

1 file changed

+21
-6
lines changed

azure_functions_worker/bindings/meta.py

+21-6
Original file line numberDiff line numberDiff line change
@@ -299,16 +299,31 @@ def deferred_bindings_decode(binding: typing.Any,
299299
If cache is empty or key doesn't exist, deferred_binding_type is None
300300
"""
301301
global deferred_bindings_cache
302-
303-
cache_key = (pb.name, pytype, datum.value if datum.type == "collection_model_binding_data" else datum.value.content)
304-
if deferred_bindings_cache.get(cache_key, None) is not None:
305-
return deferred_bindings_cache.get(cache_key)
302+
303+
if datum.type == "collection_model_binding_data":
304+
# Accumulates each model_binding_data content in collection_model_binding_data
305+
content = b"".join(mbd.content for mbd in datum.value.model_binding_data)
306+
else:
307+
content = datum.value.content
308+
309+
if deferred_bindings_cache.get((pb.name,
310+
pytype,
311+
content,
312+
function_name), None) is not None:
313+
return deferred_bindings_cache.get((pb.name,
314+
pytype,
315+
content,
316+
function_name))
306317
else:
307318
deferred_binding_type = binding.decode(datum,
308319
trigger_metadata=metadata,
309320
pytype=pytype)
310-
deferred_bindings_cache[cache_key] = deferred_binding_type
311-
return deferred_binding_type
321+
322+
deferred_bindings_cache[(pb.name,
323+
pytype,
324+
content,
325+
function_name)] = deferred_binding_type
326+
return deferred_binding_type
312327

313328

314329
def check_deferred_bindings_enabled(param_anno: type,

0 commit comments

Comments
 (0)