Use of ILP solver is interesting, so I tried to figure out where solver is called. It took me some time, so I may as well share it. It uses PuLP, which is called here (in call_solver_serialized_args function).
It’s somewhat mystifying at first, because the function in question doesn’t seem to be called from anywhere. The answer is that it is called from C++ here (in CallSolver function).