MCPcopy Index your code
hub / github.com/Sangarshanan/jazzit

github.com/Sangarshanan/jazzit @v0.3.1

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.3.1 ↗ · + Follow
42 symbols 137 edges 11 files 17 documented · 40% updated 5y agov0.3.1 · 2020-09-22★ 6839 open issues
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

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)

Core symbols most depended-on inside this repo

_stop_music
called by 6
src/jazzit/utils.py
_get_track_path
called by 4
src/jazzit/utils.py
_in_notebook
called by 3
src/jazzit/utils.py
_start_music
called by 3
src/jazzit/utils.py
_stop_music
called by 3
src/jazzit/jupyter/player.py
_track_length
called by 2
src/jazzit/utils.py
_start_music
called by 2
src/jazzit/jupyter/player.py
_play_music
called by 2
src/jazzit/jupyter/magic.py

Shape

Function 19
Method 16
Class 7

Languages

Python100%

Modules by API surface

src/jazzit/jazz.py12 symbols
src/jazzit/jupyter/player.py8 symbols
src/jazzit/utils.py7 symbols
src/jazzit/jupyter/magic.py5 symbols
bin/profiler.py3 symbols
examples/loooong_running.py2 symbols
examples/custom_track.py2 symbols
src/jazzit/__init__.py1 symbols
setup.py1 symbols
examples/oh_nooooo.py1 symbols

For agents

$ claude mcp add jazzit \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact