def from_run_start(cls, mds, run_start, verify_integrity=False): """ Build a Header from a RunStart Document. Parameters ---------- run_start : dict or string RunStart document or uid of one Returns ------- header : databroker.broker.Header """ if isinstance(run_start, six.string_types): run_start = mds.run_start_given_uid(run_start) run_start_uid = run_start['uid'] try: run_stop = doc.ref_doc_to_uid(mds.stop_by_start(run_start_uid), 'run_start') except mds.NoRunStop: run_stop = None try: ev_descs = [doc.ref_doc_to_uid(ev_desc, 'run_start') for ev_desc in mds.descriptors_by_start(run_start_uid)] except mds.NoEventDescriptors: ev_descs = [] d = {'start': run_start, 'descriptors': ev_descs} if run_stop is not None: d['stop'] = run_stop return cls('header', d)
def test_ref_to_uid(): a = Document('animal', {'uid': str(uuid.uuid4()), 'animal': 'arrdvark'}) b = Document('zoo', {'name': 'BNL Zoo', 'prime_attraction': a}) b2 = ref_doc_to_uid(b, 'prime_attraction') assert_equal(b2['prime_attraction'], a['uid']) assert_equal(b['prime_attraction'], a)