Preview:
import itertools
import threading
import time
import sys

def animate_loading(method):
    
    def animated():
        
        done = False
        #here is the animation
        def animate():
            time.sleep(0.000001)
            for c in itertools.cycle(['|', '/', '-', '\\']):
                if done:
                    break
                sys.stdout.write('\rloading ' + c)
                sys.stdout.flush()
                time.sleep(0.1)
            sys.stdout.write('\rDone!     ')
            
        t = threading.Thread(target=animate)
        t.start()

        #process method here
        method()
        done = True
    
    return animated
downloadDownload PNG downloadDownload JPEG downloadDownload SVG

Tip: You can change the style, width & colours of the snippet with the inspect tool before clicking Download!

Click to optimize width for Twitter