def get_infoprop_list(testres, key, qaids=None):
    "\n        key = 'qx2_gt_rank'\n        key = 'qx2_gt_rank'\n        qaids = testres.get_test_qaids()\n        "
    if (key == 'participant'):
        cfgx2_infoprop = [np.in1d(qaids, aids_) for aids_ in testres.cfgx2_qaids]
    else:
        _tmp1_cfgx2_infoprop = ut.get_list_column(testres.cfgx2_cmsinfo, key)
        _tmp2_cfgx2_infoprop = list(map(np.array, ut.util_list.replace_nones(_tmp1_cfgx2_infoprop, np.nan)))
        if (qaids is None):
            cfgx2_infoprop = _tmp2_cfgx2_infoprop
        else:
            cfgx2_qaid2_qx = [dict(zip(aids_, range(len(aids_)))) for aids_ in testres.cfgx2_qaids]
            qxs_list = [ut.dict_take(qaid2_qx, qaids, None) for qaid2_qx in cfgx2_qaid2_qx]
            cfgx2_infoprop = [[(np.nan if (x is None) else props[x]) for x in qxs] for (props, qxs) in zip(_tmp2_cfgx2_infoprop, qxs_list)]
        if ((key == 'qx2_gt_rank') or key.endswith('_rank')):
            wpr = testres.get_worst_possible_rank()
            cfgx2_infoprop = [np.array([(wpr if (rank == (- 1)) else rank) for rank in infoprop]) for infoprop in cfgx2_infoprop]
    return cfgx2_infoprop
key = 'qx2_gt_rank'
key = 'qx2_gt_rank'
qaids = testres.get_test_qaids()
def get_infoprop_list(testres, key, qaids=None):
    "\n        key = 'qx2_gt_rank'\n        key = 'qx2_gt_rank'\n        qaids = testres.get_test_qaids()\n        "
    if (key == 'participant'):
        cfgx2_infoprop = [np.in1d(qaids, aids_) for aids_ in testres.cfgx2_qaids]
    else:
        _tmp1_cfgx2_infoprop = ut.get_list_column(testres.cfgx2_cmsinfo, key)
        _tmp2_cfgx2_infoprop = list(map(np.array, ut.util_list.replace_nones(_tmp1_cfgx2_infoprop, np.nan)))
        if (qaids is None):
            cfgx2_infoprop = _tmp2_cfgx2_infoprop
        else:
            cfgx2_qaid2_qx = [dict(zip(aids_, range(len(aids_)))) for aids_ in testres.cfgx2_qaids]
            qxs_list = [ut.dict_take(qaid2_qx, qaids, None) for qaid2_qx in cfgx2_qaid2_qx]
            cfgx2_infoprop = [[(np.nan if (x is None) else props[x]) for x in qxs] for (props, qxs) in zip(_tmp2_cfgx2_infoprop, qxs_list)]
        if ((key == 'qx2_gt_rank') or key.endswith('_rank')):
            wpr = testres.get_worst_possible_rank()
            cfgx2_infoprop = [np.array([(wpr if (rank == (- 1)) else rank) for rank in infoprop]) for infoprop in cfgx2_infoprop]
    return cfgx2_infoprop