Several years ago I used FEniCS mshr which wraps CGAL for Python, but I am unsure if is still maintained or if they went for a Gmsh wrapper instead, or abandoned the idea of constructive solid geometry from Python code completely. I have not followed FEniCS closely in the last few years.