Sweeter debugging and benchmarking with ycecream

With ycecream it is so easy to print variables and expressions, plus their name, location, etc.

Ruud van der Ham

Debugging General Performance Python general Tooling

See in schedule

Even if you use a debugger, it is often required to print some variables or expressions, preferably with their name and sometimes even the location.
The normal way to do that is with a print statement, like
| print("hello= ", hello)
or with Python >= 3.8:
| print(f"hello=")
Ycecream makes this easier with a simple call to y:
| y(hello)
and then you will get
| y| hello: "world"
But you can also add the location in the program where this debug call is coming and get something like
| y| #6 in testproc() hello: "world"

But ycecream can do much more to help to debug and benchmark Python programs.
In this presentation, I will live code to demonstrate ycecream,

There are some similar packages out there, like IceCream and show. In this talk I will point out some of the main differences.

More information can be found here:

Type: Talk (30 mins); Python level: Beginner; Domain level: Beginner

Ruud van der Ham


I am a logistics expert, with a long history in simulation engineering, particularly in the field of container terminal (robotization).
Nowadays I am an independent simulation and IT consultant.
Besides that, I have always been a software developer, being one of the pioneers of Prestel emulators, a kind of predecessor of browsers. I have programmed in all kinds of languages ranging from Algol to Z80 assembler. Python is my favorite language for a couple of years.
I am the core developer of an open-source discrete event simulation and animation package, called salabim, which is used for a wide range of applications, ranging from warehouses, supply chains, ports, hospital logistics, and network optimization to material handling.
I am also the author of several open source packages including ycecream, MySimpleGUI and easy_property.