def filter_keyed_by_status(keys, values_with_status, context=None, level=logbook.ERROR):
"""Filter `values_with_status` (a `list` of `(bool, value)`); return dict with corresponding keys.
>>> dict(filter_keyed_by_status(['one', 'two'], [(True, 'foo'), (False, 'bar')]))
{'one': 'foo'}
"""
values = collections.OrderedDict()
for key, (status, value_or_traceback) in zip(keys, values_with_status):
if not status:
logger.log(level, "[{!s}] failed to retrieve data for '{!s}':\n{!s}", context, key,
value_or_traceback)
else:
values[key] = value_or_traceback
return values
评论列表
文章目录