コード例 #1
0
ファイル: core.py プロジェクト: NSLS-II/databroker
    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)
コード例 #2
0
ファイル: test_document.py プロジェクト: tacaswell/doct
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)