Just something to keep in mind: From SciPy>=1.9 onwards, we can do, e.g.,
import scipy as sp
def myfunc():
sp.interpolate.xyz
sp.integrate.xyz
...
The submodules, e.g., interpolate, are lazy loaded within SciPy>=1.9. Before that, one had to do
from scipy import interpolate
from scipy import integrate
...
Using this throughout would save roughly 50% of the import time of discretize (crucial for the responsiveness of CLI tools that use discretize).
