Split off the slicer.util.pip_* out of slicer.util into a new package.
With the name slicer.packaging we run into a name conflict with the packaging module (a dependency of pip).
Landed on the name: slicer.pydeps. So slicer.pydeps.pip_ensure(...), etc.
py in the name of a python module is kind of annoying. Or is it? pydicom?
Maybe we should actually make slicer.util into an import package and make slicer.util.pydeps (with a better name than pydeps). Because we are importing all slicer.* things, and so if “sub-utilities” are all direclty under the slicer package then we prevent ourselves from using good package names due to this name shadowing issue. We may want to set the precedent now that “sub-utilities” should be slicer.util.*.
Review can proceed and when we finalize the naming and package organization we can do it at the end before merging.