python CNJGL implementation complete