Lazier allows you to move faster when you are exploring how functions change with their input, this module was written because I often felt that there had to be an easier way to work in a interactive enviroment with jupyter notebooks.
Lazier allow you to create functions which remeber what their last inputs were.
pip install lazier
or
pip3 install lazier
Me using it in real life
Without lazier:
def foo(a,b,c,d):
print(a)
print(b)
print(c)
print(d)
foo(a=1,b= 2, c=3, d=4)
1
2
3
4
foo(d=2)
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-3-9233fe4ac2c5> in <module>()
----> 1 foo(d=2)
TypeError: foo() missing 3 required positional arguments: 'a', 'b', and 'c'
with Lazier:
from lazier import lazier
@lazier
def foo(a,b,c,d):
print(a)
print(b)
print(c)
print(d)
foo(a=1,b= 2, c=3, d=4)
1
2
3
4
Now suppose you want to see how the output of the function changed if d was 7 in the above function call, with lazier it looks like:
foo(d=7)
1
2
3
7
and so on.
foo(a=9)
9
2
3
7
using reset you can forget all past values that it remebers
foo.reset()
foo()
foo() missing 4 required positional arguments: 'a', 'b', 'c', and 'd'
foo(a=1, b=11, c=3)
foo() missing 1 required positional argument: 'd'
foo(d=9)
1
11
3
9