def report_summary_servo_theta(context, combinations, explogs_test):
    context = context.child('servo_theta')
    rp = ReportProxy(context)
    for id_robot, id_agent in combinations:
        context.needs(RM_AGENT_LEARN, id_robot=id_robot, id_agent=id_agent)
        
        f = rp.figure('%s-%s-servo_theta' % (id_robot, id_agent), cols=8,
                      caption='%s, %s' % (id_robot, id_agent))

        for e in explogs_test:

            key = dict(report_type='servo1', id_robot=id_robot,
                       id_agent=id_agent,
                       id_episode=e.id_episode)
        
            s = 'servo-%s-' % basename_from_key(dict(id_agent=id_agent,
                                                     id_robot=id_robot,
                                                     id_episode=e.id_episode))
            
            def add(url, nid, strict):
                r = rp.add_child_from_other(url, s + nid, strict=strict, ** key)
                f.sub(r, caption=nid)
        
            add('u/figure2/tw', 'u-tw', True)
            add('descent/figure2/tw', 'descent-tw', False)
        
    return rp.get_job()
def job_report_learn(context, combs):
    context = context.child('report_learn')
    rp = ReportProxy(context)
    for id_robot, id_agent in combs:
        context.needs(RM_AGENT_LEARN, id_robot=id_robot, id_agent=id_agent)
        
        f = rp.figure('%s-%s-model' % (id_robot, id_agent), cols=8,
                      caption='%s, %s' % (id_robot, id_agent))
        
        key = dict(report_type='agent_report', id_robot=id_robot, id_agent=id_agent)
        
        s = 'bds-%s-' % basename_from_key(dict(id_agent=id_agent, id_robot=id_robot))
        add = lambda n, nid: f.sub(rp.add_child_from_other(n, s + nid, **key), caption=nid)
        addif = lambda n, nid: f.sub(rp.add_child_from_other(n, s + nid, strict=False, **key), caption=nid)
        
        add('estimator/model/M/slices/0/normalized/png', 'M0')
        add('estimator/model/M/slices/1/normalized/png', 'M1')
        addif('estimator/model/M/slices/2/normalized/png', 'M2')
        add('estimator/model/N/slices/0/figure1/plot_scaled', 'N0')
        add('estimator/model/N/slices/1/figure1/plot_scaled', 'N1')
        addif('estimator/model/N/slices/2/figure1/plot_scaled', 'N2')
        
        f = rp.figure('%s-%s-learn' % (id_robot, id_agent), cols=8,
                      caption='%s, %s' % (id_robot, id_agent))
        
        add('estimator/tensors/T/slices/0/normalized/png', 'T0')
        add('estimator/tensors/T/slices/1/normalized/png', 'T1')
        addif('estimator/tensors/T/slices/2/normalized/png', 'T2')
        add('estimator/tensors/U/slices/0/figure1/plot_scaled', 'U0')
        add('estimator/tensors/U/slices/1/figure1/plot_scaled', 'U1')
        addif('estimator/tensors/U/slices/2/figure1/plot_scaled', 'U2')
                
        add('estimator/tensors/P/posneg', 'P')
        
    return rp.get_job()