The GSPo algorithm learns causal graphs, up to Markov equivalence, from observational data with latent confounders. GSPo is implemented as a part of the causaldag package. The source code for GSPo can be found in the package here. GSPo is described in our paper, Ordering-Based Causal Structure Learning in the Presence of Latent Variables .
To install the causaldag package:
$ pip3 install causaldag