🎷
JazzIt
Ever wanted your scripts to play music while running/ on erroring out?
Of course you didn't
But here it is anyway
Install
pip install jazzit
What it do?
With Jazzit
you can just add a decorator to your functions and jazz it up
- You can have a elevator music to go along with your long running script
- Play humiliating music when it errors out to put you in your place
There are default tracks you can use, or you can use your own custom tracks
How to do it?
Play Frolic from curb your enthusiasm to keep you in your place
from jazzit import error_track
@error_track("curb_your_enthusiasm.mp3", wait=7)
def run():
for num in reversed(range(10)):
print(10/num)
if __name__ == "__main__":
run()
Sip coffee to elevator music while your script is running
from jazzit import waiting_track
def fibonacci(n):
if n < 0:
raise Exception("BE POSITIVE!!!")
elif n == 1:
return 0
elif n == 2:
return 1
else:
return fibonacci(n - 1) + fibonacci(n - 2)
@waiting_track("elevator.mp3")
def run(limit):
for num in range(1, limit):
print(fibonacci(num))
if __name__ == "__main__":
run(1000)
To satisfy your WHAT !!! IT WORKED !!! moments
from jazzit import success_track
@success_track("anime-wow.mp3")
def add(a,b):
print(a+b)
if __name__ == "__main__":
add(12, 42)
The in-build tracks are bruh_moment, elevator and curb_your_enthusiasm but you can add your custom tracks and urls
Check out some of the examples
Jupyter Notebook
Check out the colab link above or the example notebook
Use Jupyter Magic:
Load inside a Jupyter notebook
%load_ext jazzit
Running away from the PEP8 police
%%waiting_track -t elevator.mp3
def fibonacci(n):
if n < 0:
raise Exception("BE POSITIVE!!!")
elif n == 1:
return 0
elif n == 2:
return 1
else:
return fibonacci(n - 1) + fibonacci(n - 2)
for num in range(1, 35):
print(fibonacci(num))
For those BRUH moments in your life
%%error_track -t bruh.mp3 -w 3
for num in reversed(range(10)):
print(10/num)
It worked !!!
%%success -t anime-wow.mp3 -w 3
for num in range(10):
print(num ** 2)
There are two arguments in play here
-t
or --track
that needs the sound track (Can be a file path, url, inbuilt tracks)
-w
or --wait
(Optional, default is 3 seconds) Wait for x seconds before cutting the music
Dependencies
Jazz added with playsound
If you getting hit with ModuleNotFound
errors while running jazzit
You might need to install Pygobject https://pygobject.readthedocs.io/en/latest/getting_started.html
⚠️ Use wisely: Best suited for scripts you run non-professionally!
Profiling
TL;DR It is definitely slower with music
I did a lil profiling on bin/profiler.py
Without Music
Time to run : 5.2486350536346436 secs
With Music
Time to run: 5.270173072814941 secs
Memory profiling python -m memory_profiler bin/profiler.py
Social
Hacker News: https://news.ycombinator.com/item?id=24485447
Twitter: https://twitter.com/sangarshanan/status/1305933704007573504
amrrs put together a video https://youtu.be/qkyQfIjvPmM :)
Disclaimer
Default tracks were pulled from royalty-free stock audio sites (They are mostly gaming and meme sound effects)