blob: 5965f1e72805ed5ab0d8ed9180bf6d88523c5fbf [file] [log] [blame]
from hamilton.function_modifiers import parameterize_sources, parametrized_input
def input_1() -> int:
return 1
def input_2() -> int:
return 2
def input_3() -> int:
return 3
@parametrized_input(
parameter="input_value_tbd",
variable_inputs={
"input_1": ("output_1", "function_with_multiple_inputs called using input_1"),
"input_2": ("output_2", "function_with_multiple_inputs called using input_2"),
},
)
def function_with_multiple_inputs(input_value_tbd: int, static_value: int) -> int:
return input_value_tbd + static_value
# We don't prefer this style of specifying the values. i.e. kwarg with {}.
@parameterize_sources(output_12={"input_value_tbd1": "input_1", "input_value_tbd2": "input_2"})
def function_with_two_parameters(
input_value_tbd1: int, input_value_tbd2: int, static_value: int
) -> int:
"""function_with_multiple_inputs called using {input_value_tbd1} and {input_value_tbd2}
:return: creates {output_name}
"""
return input_value_tbd1 + input_value_tbd2 + static_value
# We prefer this style of specifying the values. i.e. kwarg with dict().
@parameterize_sources(
output_123=dict(
input_value_tbd1="input_1", input_value_tbd2="input_2", input_value_tbd3="input_3"
)
)
def function_with_three_parameters(
input_value_tbd1: int, input_value_tbd2: int, input_value_tbd3: int, static_value: int
) -> int:
"""function_with_multiple_inputs called using {input_value_tbd1} and {input_value_tbd2} and {input_value_tbd3}
:param {input_value_tbd1}:
:param {input_value_tbd2}:
:param {input_value_tbd3}:
:param static_value:
:return: {output_name}
"""
return input_value_tbd1 + input_value_tbd2 + input_value_tbd3 + static_value