Skip to content

Sticky functions for better interactive data exploration.

License

Notifications You must be signed in to change notification settings

arjunbazinga/lazier

Repository files navigation

lazier

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.

Installing

pip install lazier

or

pip3 install lazier

Demo

Me using it in real life

Mini demo

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

About

Sticky functions for better interactive data exploration.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published