Strategies¶
Authoring your own Strategy¶
Your function should take the arguments of (merger
, path
, base_value
, value_to_merge_in
).
Strategies are passed as a list, and the merge runs through each strategy in the order passed into the merger, stopping at the first one to return a value that is not the sentinel value deepmerge.STRATEGY_END.
For example, this function would not be considered valid for any base value besides the string “foo”:
from deepmerge import STRATEGY_END
def return_true_if_foo(config, path, base, nxt):
if base == "foo":
return True
return STRATEGY_END
Note that the merger does not copy values before passing them into mergers for performance reasons.
Builtin Strategies¶
These are the built in strategies provided by deepmerge.