You already know the problem: Some sections in your Python script run fast, but others (like importing dependencies) take a few seconds. If you’re only half as impacient as me, you don’t want to sit in front of a black console, wondering if your script got stuck.
Usually you would put a print(“…”) before each section:
#=================== import dependencies print("importing dependencies") import numpy import matplotlib ...
But obviously this brings redundancy and is a lot of extra typing.
Instead of all these prints, we define a function printprev():
def printprev(n=1): import linecache, inspect for l in range(-n, 0): print(linecache.getline(__file__,inspect.currentframe().f_back.f_lineno+l).strip())
Calling this function prints your code structure, and even the code itself to the output:
#=================== import dependencies printprev() import numpy import matplotlib #=================== define variables m = 100 n = 100000 numbers = numpy.zeros(m) #=================== running calculations for i in range(n): numbers[numpy.random.randint(0,m)]+=1 printprev(3) #=================== reporting the results printprev() print(numbers)
That’s it. Let me know if you have some interesting ideas what to do with this!