Skip to main content

JazzIt 🎷

Open All Collab License Say Thanks!

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

:warning: 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)

Release files for jazzit 0.3.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for jazzit 0.3.1
File Size Uploaded
jazzit-0.3.1.tar.gz 3.1 MB Details

Release files / jazzit-0.3.1.tar.gz

Download URL jazzit-0.3.1.tar.gz
Size 3.1 MB
Tags Source
SHA-256 checksum
How to use checksums
30c2743583b53fea16a2b8342767f2f4fdec837d59b88f3054289a73a36b92f7
BLAKE2b-256 checksum
How to use checksums
2d55ee07d34fd2e445432f1c80b65ca9f7406c8f149173ce0df29ac986f01394
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.8.0 tqdm/4.38.0 CPython/3.6.8

Release history Release notifications | RSS feed

This release

0.3.1 This release

1 release file

0.3.0

1 release file

0.2.0

1 release file

0.1.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page