diff --git a/azure/functions/durable_functions.py b/azure/functions/durable_functions.py index 16c4fc4c..a9cb88bf 100644 --- a/azure/functions/durable_functions.py +++ b/azure/functions/durable_functions.py @@ -124,3 +124,12 @@ def encode(cls, obj: typing.Any, *, @classmethod def has_implicit_output(cls) -> bool: return True + + +# Durable Functions Durable Client Bindings +class DurableClientConverter(meta.InConverter, + meta.OutConverter, + binding='durableClient'): + @classmethod + def has_implicit_output(cls) -> bool: + return False diff --git a/tests/test_durable_functions.py b/tests/test_durable_functions.py index 353492d8..f8382862 100644 --- a/tests/test_durable_functions.py +++ b/tests/test_durable_functions.py @@ -7,7 +7,8 @@ from azure.functions.durable_functions import ( OrchestrationTriggerConverter, EnitityTriggerConverter, - ActivityTriggerConverter + ActivityTriggerConverter, + DurableClientConverter ) from azure.functions._durable_functions import ( OrchestrationContext, @@ -213,6 +214,11 @@ def test_activity_trigger_has_implicit_return(self): ActivityTriggerConverter.has_implicit_output() ) + def test_durable_client_no_implicit_return(self): + self.assertFalse( + DurableClientConverter.has_implicit_output() + ) + def test_enitity_trigger_check_output_type_annotation(self): self.assertTrue( EnitityTriggerConverter.check_output_type_annotation(pytype=None)