Best practice to load cell magic

I agree that %load_ext extension might be a cleaner solution.
But in the day-to-day context, I like it when things are easy, and I don’t have to remember extra keywords like load_ext and my IDE can auto-complete the package name for me to avoid typos. That’s why I will stay with import extension right now in my project.
Thanks for the idea with nbconvert, in real life I very rarely convert a whole Jupyter notebook into a python script, but rather recycle only certain cells in my python packages.