def get_unique_analysis(self, ln, ai, step=None): # sess = self.get_session() with self.session_ctx() as sess: try: ai = int(ai) except ValueError, e: self.debug('get_unique_analysis aliquot={}. {}'.format(ai, e)) return dbln = self.get_identifier(ln) if not dbln: self.debug('get_unique_analysis, no labnumber {}'.format(ln)) return q = sess.query(AnalysisTbl) q = q.join(IrradiationPositionTbl) q = q.filter(IrradiationPositionTbl.identifier == ln) q = q.filter(AnalysisTbl.aliquot == int(ai)) if step: if not isinstance(step, int): step = alpha_to_int(step) q = q.filter(AnalysisTbl.increment == step) # q = q.limit(1) try: return q.one() except NoResultFound: return
def increment(self): """ return an int """ s = self.step if isinstance(s, (str, unicode)): s = alpha_to_int(s) return s