Here are the Python code files and documentation for IPFP solvers for more variants of the Choo and Siow model (with or without singles, homoskedastic and heteroskedastic). I also wrote a Streamlit interactive app to demonstrate the basic model (homoskedastic, with singles).
My coauthor Alfred Galichon (NYU) and Keith O’Hara (Amazon) have developed the TraME library: a set of procedures for Transportation Methods for Econometrics. It allows the user to estimate a much broader class of models. TraME is available on Github. Here are some more specific links: