Create a method to return the values of all the options used to evaluate an Evaluatable, including default values. This will help with tracking parameters and showing users of an Evaluatable all of the parameters going into calculating the result.
@dataset
def foo(x = Option('X',1)):
return x
@dataset
def bar(
_foo = foo,
y = Option('Y',2),
z = Option('Z',3)
):
return _foo + y + z
#something like this:
>>> bar.get_all_options({'Y': 100})
{'X':1, 'Y':100, 'Z':3}