We currently control the number of implicit threads used by numpy/pandas etc by having custom C++ code in the base package that sets environment variables and tries to call the low-level APIs to force the number of implicit threads to 1.
What I would like to do is to drop our custom code and to instead use the threadpoolctl package.
threadpoolctl is already in the rubin-env since it is brought in by scikit-learn so this will not change the size of the env at all.
The thread pool control code in base is only used by ctrl_mpexec (and pipe_base for gen2). In DM-33622 I am moving the ability to disable implicit threading to utils and would like to do so without using ctypes or the base approach. I propose to be allowed to use threadpoolctl in this code.
Seems OK. Since this is forward and backward compatible, I think this would only be 2.0.1.