def get_project(project_id, include_deleted_networks=False, **kwargs):
    """
        get a project complexmodel
    """
    user_id = kwargs.get('user_id')
    proj_i = _get_project(project_id)

    #lazy load owners
    proj_i.owners

    proj_i.check_read_permission(user_id)

    proj_j = JSONObject(proj_i)

    proj_j.networks = []
    for net_i in proj_i.networks:
        #lazy load owners
        net_i.owners
        net_i.scenarios

        if include_deleted_networks==False and net_i.status.lower() == 'x':
            continue

        can_read_network = net_i.check_read_permission(user_id, do_raise=False)
        if can_read_network is False:
            continue

        net_j = JSONObject(net_i)
        proj_j.networks.append(net_j)

    return proj_j