pysoappy