def test_save_persister(): paths.build('_dev') dvc = DVC(bind=False) dvc.db.connect() per = DVCPersister(dvc=dvc) run_spec = AutomatedRunSpec() run_spec.labnumber = '10001' run_spec.project = 'Test' arar = ArArAge() arar.isotopes['Ar40'] = Isotope(xs=[1, 2, 3], ys=[1, 2, 3], name='Ar40', detector='H1') sd = {} dd = {'H1': 100} gd = {'H1': 1.021} per_spec = PersistenceSpec(run_spec=run_spec, arar_age=arar, spec_dict=sd, defl_dict=dd, gains=gd, positions=[1, ], experiment_queue_name='testexp.txt', measurement_name='jan_unknown.py', extraction_name='foo.py') per.per_spec_save(per_spec)
def gen_mock_runspec(): for p, l, _ in runs: rs = AutomatedRunSpec() rs.project = p rs.labnumber = l yield rs
def get_analysis_import_spec(self, p, delimiter=None): pspec = PersistenceSpec() rspec = AutomatedRunSpec() pspec.run_spec = rspec # spec = ImportSpec # analysis = Analysis() # spec.analysis = analysis # position = Position() # analysis.position = position if delimiter is None: delim = self._delimiter def gen(): with open(p, 'r') as rfile: for line in rfile: yield line.strip().split(delim) f = gen() row = f.next() # analysis.runid = row[0] rspec.runid = row[0] # irrad = Irradiation() rspec.irradiation = row[1] row = f.next() rspec.irradiation_level = row[1] row = f.next() rspec.sample = row[1] row = f.next() rspec.material = row[1] row = f.next() rspec.project = row[1] row = f.next() j = float(row[1]) row = f.next() j_err = float(row[1]) pspec.j, pspec.j_err = j, j_err row = f.next() d = row[1] row = f.next() t = row[1] rspec.analysis_timestamp = datetime.strptime('{} {}'.format(d, t), '%m/%d/%Y %H:%M:%S') row = f.next() abundance_sens = float(row[0]) row = f.next() abundance_sens_err = float(row[0]) row = f.next() air = float(row[0]) disc = 295.5 / air pspec.discrimination = disc row = f.next() # MD errpr row = f.next() # peakhop cycles n40 = int(f.next()[0]) n39 = int(f.next()[0]) n38 = int(f.next()[0]) n37 = int(f.next()[0]) n36 = int(f.next()[0]) n35 = int(f.next()[0]) n355 = int(f.next()[0]) f.next() row = f.next() b40 = map(float, row) b39 = map(float, row) b38 = map(float, row) b37 = map(float, row) b36 = map(float, row) b35 = map(float, row) for i, row in enumerate(f): if i > 36: break isotopes = {} isotopes['Ar40'] = self._get_isotope(f, 'Ar40', n40, b40) isotopes['Ar39'] = self._get_isotope(f, 'Ar39', n39, b39) isotopes['Ar38'] = self._get_isotope(f, 'Ar38', n38, b38) isotopes['Ar37'] = self._get_isotope(f, 'Ar37', n37, b37) isotopes['Ar36'] = self._get_isotope(f, 'Ar36', n36, b36) isotopes['Ar35'] = self._get_isotope(f, 'Ar35', n35, b35) isotopes['Ar35.5'] = self._get_isotope(f, 'Ar35.5', n355, b355) try: f.next() self.warning('Extra data in file') except StopIteration: pass pspec.isotope_group = IsotopeGroup(isotopes=isotopes) return pspec