inject
inject
Reference Documentation
class hamilton.function_modifiers.inject(**key_mapping: ParametrizedDependency)[source]
@inject allows you to replace parameters with values passed in. You can think of it as a @parameterize call that has only one parameterization, the result of which is the name of the function. See the following examples:
import pandas as pd
from function_modifiers import inject, source, value, group
@inject(nums=group(source('a'), value(10), source('b'), value(2)))
def a_plus_10_plus_b_plus_2(nums: List[int]) -> int:
return sum(nums)
This would be equivalent to:
@parameterize(
a_plus_10_plus_b_plus_2={
'nums': group(source('a'), value(10), source('b'), value(2))
})
def sum_numbers(nums: List[int]) -> int:
return sum(nums)Something to note – we currently do not support the case in which the same parameter is utilized multiple times as an injection. E.G. two lists, a list and a dict, two sources, etc…
This is considered undefined behavior, and should be avoided.
__init__(**key_mapping: ParametrizedDependency)[source]
Instantiates an @inject decorator with the given key_mapping.
Parameters:
key_mapping – A dictionary of string to dependency spec. This is the same as the input mapping in @parameterize.
评论
登录后参与评论
KnowForge