当前位置: 首页>>代码示例>>Python>>正文


Python model.Session类代码示例

本文整理汇总了Python中qtools.model.Session的典型用法代码示例。如果您正苦于以下问题:Python Session类的具体用法?Python Session怎么用?Python Session使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


在下文中一共展示了Session类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: tearDown

 def tearDown(self):
     from qtools.model import Session
     Session.delete(self.testUser)
     Session.delete(self.testProject)
     Session.delete(self.readQLP)
     Session.delete(self.unreadQLP)
     Session.commit()
开发者ID:v-makarenko,项目名称:vtoolsmq,代码行数:7,代码来源:__init__.py

示例2: runs

    def runs(self, id=None):
        c.dg = Session.query(DropletGenerator).get(int(id))
        if not c.dg:
            abort(404)
        
        reprocess_config_id = request.params.get('rp_id', None)
        if reprocess_config_id:
            reprocess_config_id = int(reprocess_config_id)
        
        runs = Session.query(DropletGeneratorRun).filter(
                    and_(DropletGeneratorRun.droplet_generator_id == c.dg.id,
                         DropletGeneratorRun.run_number != None)).all()
        
        run_dict = dict([(run.run_number, run) for run in runs])

        wells = Session.query(WellMetric,
                              QLBWell.id,
                              QLBWell.sample_name,
                              QLBWell.dg_run_number,
                              QLBWell.consumable_channel_num)\
                       .join(QLBWell)\
                       .join(PlateMetric)\
                       .filter(and_(QLBWell.droplet_generator_id == id,
                                    QLBWell.dg_run_number != None,
                                    PlateMetric.reprocess_config_id == reprocess_config_id))\
                       .order_by(QLBWell.dg_run_number, QLBWell.consumable_channel_num).all()
        
        sorted_runs = sorted(groupinto(wells, lambda tup: (tup[3])), key=operator.itemgetter(0))
        c.runs = [(run_id, run_dict[run_id], sorted(info, key=operator.itemgetter(4))) for run_id, info in sorted_runs if run_dict.get(run_id, None)]
        #raise Exception, c.runs
        return render('/product/dg/runs.html')
开发者ID:v-makarenko,项目名称:vtoolsmq,代码行数:31,代码来源:dg.py

示例3: apply_setup_to_plate

def apply_setup_to_plate(qlplate, dbplate):
    """
    Determine if a plate has an applicable template, either by
    explicit setting or by implicit naming.

    :param qlplate: The QLP file to read
    :param dbplate: The DB plate to update
    """
    if qlplate.plate_setup_id:
        setup = Session.query(PlateSetup).get(int(qlplate.plate_setup_id))
        if setup:
            inherit_setup_attributes(dbplate, setup)
            return True
    
    dirname = dbplate.qlbplate.file.dirname
    basename = dbplate.qlbplate.file.basename
    complete_name = basename[:-4] # -- .qlp

    setups = Session.query(PlateSetup).order_by('prefix desc').all()

    for setup in setups:
        if complete_name.startswith(setup.prefix):
            inherit_setup_attributes(dbplate, setup)
            return True
    
    return False
开发者ID:v-makarenko,项目名称:vtoolsmq,代码行数:26,代码来源:plate.py

示例4: __vendor_enzymes

 def __vendor_enzymes(self, name):
     vendor = Session.query(Vendor).filter_by(name=unicode(name)).first()
     # this might be better off with a regular SQL statement
     all_enzymes = Session.query(VendorEnzyme, Enzyme.name, Enzyme.cutseq, Enzyme.methylation_sensitivity,\
                                 func.sum(VendorEnzyme.stock_units).label('total_stock_units')
                                ).join(Enzyme).filter(VendorEnzyme.vendor_id == vendor.id).group_by(VendorEnzyme.enzyme_id).all()
     return all_enzymes
开发者ID:v-makarenko,项目名称:vtoolsmq,代码行数:7,代码来源:cutter.py

示例5: make_plate_name

def make_plate_name(plate, experiment_name=None):
    """
    Given a plate and assigned project, operator
    and experiment, generate a name that conforms
    to the QTools naming standard.

    Name will be project_operator_experiment.

    :param plate:
    :param experiment_name:
    :return:
    """
    # this is the hard way, before the relation is saved.
    if plate.project_id:
        project = Session.query(Project).get(plate.project_id)
        if project:
            if project.code:
                project_code = project.code
            else:
                project_code = project.name
        else:
            project_code = ''
    else:
        project_code = ''
    
    operator = Session.query(Person).get(plate.operator_id)
    if operator:
        user_code = operator.name_code
    else:
        user_code = ''
    
    
    fields = [project_code, user_code, experiment_name]
    return '_'.join([field for field in fields if field])
开发者ID:v-makarenko,项目名称:vtoolsmq,代码行数:34,代码来源:plate.py

示例6: apply_template_to_plate

def apply_template_to_plate(qlplate, dbplate):
    """
    Determine if a plate has an applicable template, either by
    explicit setting or by implicit naming.

    :param qlplate: The QLP file to read
    :param dbplate: The DB plate to update
    """
    # new-style: if plate file has plate_template_id in it,
    # just bind
    if qlplate.plate_template_id:
        template = Session.query(PlateTemplate).get(int(qlplate.plate_template_id))
        if template:
            inherit_template_attributes(dbplate, template)
            return True
    
    # otherwise, check the name
    dirname = dbplate.qlbplate.file.dirname
    basename = dbplate.qlbplate.file.basename
    complete_name = basename[:-4] # -- .qlp

    # duplicate prefixes are possible; use most recent
    templates = Session.query(PlateTemplate).order_by('prefix desc, id desc').all()
    
    for template in templates:
        if complete_name.startswith(template.prefix):
            inherit_template_attributes(dbplate, template)
            return True
    
    return False
开发者ID:v-makarenko,项目名称:vtoolsmq,代码行数:30,代码来源:plate.py

示例7: by_well_tag

 def by_well_tag(self):
     well_tag_field = fl.well_tag_field(str(self.form_result['well_tag']))
     c.group_by_plate = self.form_result['group_by_plate']
     c.tag_id = self.form_result['well_tag']
     c.tag_name = Session.query(WellTag).get(c.tag_id).name
     c.form = h.LiteralFormSelectPatch(
         value = {'well_tag': well_tag_field['value'],
                  'group_by_plate': [u'1' if c.group_by_plate else u'0']},
         option = {'well_tag': [('--','--')]+well_tag_field['options'],
                   'group_by_plate': [(u'1', '')]}
     )
     
     well_tags = Session.query(WellTag).\
                         filter_by(id=c.tag_id).\
                         options(joinedload_all(WellTag.tag_wells, QLBWell.plate, QLBPlate.file, innerjoin=True),
                                 joinedload_all(WellTag.tag_wells, QLBWell.plate, QLBPlate.plate, innerjoin=True)).\
                         all()
     
     c.label_names = []
     
     if not len(well_tags):
         c.wells = []
         c.well_groups = []
     elif c.group_by_plate:
         wells = sorted(well_tags[0].wells, key=lambda well: (well.plate_id, well.well_name))
         well_groups = [(plate, list(wells)) for plate, wells in itertools.groupby(wells, lambda well: well.plate)]
         c.well_groups = sorted(well_groups, key=lambda tup: tup[0].host_datetime)
         c.well_groups.reverse()
     else:
         c.wells = sorted(well_tags[0].wells, key=lambda well: well.host_datetime)
         c.wells.reverse()
     
     return render('/box2/by_well_tag.html')
开发者ID:v-makarenko,项目名称:vtoolsmq,代码行数:33,代码来源:box2.py

示例8: reader_history

 def reader_history(self, id=None, admin=True):
     box2 = self.__setup_box2_context_by_code(id)
     c.admin = admin != 'False'
     logs = Session.query(Box2Log).filter_by(box2_id=box2.id)\
                                  .order_by('time_effective desc')\
                                  .options(joinedload_all(Box2Log.circuit))\
                                  .all()
     
     statuses = Session.query(DRStatusLog).filter_by(box2_id=box2.id)\
                                          .order_by('time_effective desc')\
                                          .options(joinedload_all(DRStatusLog.reporter))\
                                          .all()
     
     fixes = Session.query(DRFixLog).filter_by(box2_id=box2.id)\
                                    .order_by('time_effective desc')\
                                    .all()
     
     log_pairs = [(logs[i].time_effective, [logs[i],(logs[i+1] if i < len(logs)-1 else None)]) for i in range(len(logs))]
     for pair in log_pairs:
         pair[1].append((sorted(box2log_mv.labeleditems(pair[1][0]).items()),
                         sorted(box2log_mv.labeleditems(pair[1][1]).items())))
     status_pairs = [(status.time_effective, status) for status in statuses]
     fix_pairs = [(fix.time_effective, fix) for fix in fixes]
     changes = log_pairs + status_pairs + fix_pairs
     c.changes = sorted(changes, key=operator.itemgetter(0))
     c.changes.reverse()
     
     return render('/admin/reader_history.html')             
开发者ID:v-makarenko,项目名称:vtoolsmq,代码行数:28,代码来源:admin.py

示例9: command

    def command(self):
        app = self.load_wsgi_app()
        min_id = 0
        if len(self.args) > 1:
            min_id = self.args[0]
        storage = QLStorageSource(app.config)

        qlbplates = Session.query(QLBPlate).filter(QLBPlate.id > min_id).order_by('id').all()
        for qlbplate in qlbplates:
            try:
                path = storage.qlbplate_path(qlbplate)
            except Exception:
                print "Could not find plate: %s (%s)" % (qlbplate.plate.name if qlbplate.plate else 'Name unknown', qlbplate.id)
                continue
            try:
                qlplate = get_plate(path)
            except Exception:
                print "Could not read plate: %s (%s)" % (qlbplate.plate.name if qlbplate.plate else 'Name Unknown', qlbplate.id)
                continue

            if qlplate.is_fam_vic:
                qlbplate.dyeset = QLBPlate.DYESET_FAM_VIC
            elif qlplate.is_fam_hex:
                qlbplate.dyeset = QLBPlate.DYESET_FAM_HEX
            elif qlplate.is_eva_green:
                qlbplate.dyeset = QLBPlate.DYESET_EVA
            else:
                qlbplate.dyeset = QLBPlate.DYESET_UNKNOWN

            print "Assigned dye %s - %s (%s)" % (qlbplate.dyeset, qlbplate.plate.name if qlbplate.plate else 'Name Unknown', qlbplate.id)
            Session.commit()
开发者ID:v-makarenko,项目名称:vtoolsmq,代码行数:31,代码来源:cron.py

示例10: register_algorithm

    def register_algorithm(self):
        storage = QSAlgorithmSource(config)
        existing_folders = [tup[0] for tup in Session.query(ReprocessConfig.original_folder).all()]

        errors = dict()
        src_dir = self.form_result['src_dir']
        if src_dir in existing_folders:
            errors['src_dir'] = 'This algorithm has already been registered.'

        elif not storage.source_path_exists(src_dir):
            errors['src_dir'] = 'This algorithm is not accessible in the file system.'

        if self.form_result['peak_detection_version'] == (0,0):
            # this is arbitrary
            peak_detection_version = (0, QUANTASOFT_DIR_VERSION_RE.search(src_dir).group(1).split('_')[-1])
        else:
            peak_detection_version = self.form_result['peak_detection_version']

        if self.form_result['peak_quantitation_version'] == (0,0):
            peak_quantitation_version = (0, QUANTASOFT_DIR_VERSION_RE.search(src_dir).group(1).split('_')[-1])
        else:
            peak_quantitation_version = self.form_result['peak_quantitation_version']

        if errors:
            resp = self._algorithms_base()
            defaults = AlgorithmRegisterForm.from_python(self.form_result)
            return h.render_bootstrap_form(resp,
                defaults=defaults,
                errors=errors,
                error_formatters=h.tw_bootstrap_error_formatters)

        try:
            rp = ReprocessConfig(name=src_dir.split(os.path.sep)[0],
                                 code=self.form_result['code'],
                                 peak_detection_major=peak_detection_version[0],
                                 peak_detection_minor=peak_detection_version[1],
                                 peak_quant_major=peak_quantitation_version[0],
                                 peak_quant_minor=peak_quantitation_version[1],
                                 trigger_fixed_width=100,
                                 active=True,
                                 cluster_mode=ReprocessConfig.CLUSTER_MODE_CLUSTER,
                                 original_folder=src_dir)

            storage.add_reprocessor(src_dir, self.form_result['code'])
            Session.add(rp)
            Session.commit()
            session['flash'] = 'New algorithm reprocessor created.'
            session.save()
            return redirect(url(controller='product', action='algorithms'))

        except shutil.Error:
            session['flash'] = 'Could not copy source algorithm to destination.'
            session['flash_class'] = 'error'
            session.save()
            return redirect(url(controller='product', action='algorithms'))
        except IOError:
            session['flash'] = "Could not access the algorithm's file system."
            session['flash_class'] = 'error'
            session.save()
            return redirect(url(controller='product', action='algorithms'))
开发者ID:v-makarenko,项目名称:vtoolsmq,代码行数:60,代码来源:product.py

示例11: batch_plate_template_download

    def batch_plate_template_download(self, id=None):
        plate = self.__load_batch_plate(id)
        box2 = Session.query(Box2).get(self.form_result['box2_id'])
        if not plate or not box2:
            abort(404)
            
        code = plate.batch.plate_type.code

        if self.form_result['qc_plate']:
            plate.qc_plate = self.form_result['qc_plate']
            Session.commit()

        # TODO FIXFIX or incorporate into model
        if plate.qc_plate:
            serial = 'QC'
        else:
            serial = box2.name.split(' ')[-1]
        # only mfgco supported right now
        if code == 'mfgco':
            qlt_file = "%s/carryover.qlt" % config['qlb.setup_template_store']
        elif code == 'fvtitr':
            qlt_file = "%s/fvbatch_QC.qlt" % config['qlb.setup_template_store']
        else:
            abort(404)
        
        response.headers['Content-Type'] = 'application/quantalife-template'
        h.set_download_response_header(request, response, "%s_%s.qlt" % (serial, plate.name))
        response.headers['Pragma'] = 'no-cache'
        response.headers['Cache-Control'] = 'no-cache'
        return forward(FileApp(qlt_file, response.headerlist))
开发者ID:v-makarenko,项目名称:vtoolsmq,代码行数:30,代码来源:product.py

示例12: batch_csfv_unhook

 def batch_csfv_unhook(self):
     plate = self.__load_batch_plate(self.form_result['batch_plate_id'])
     plate.plate_id = None
     Session.commit()
     session['flash'] = 'CSFV QC plate discarded.'
     session.save()
     return redirect(url(controller='product', action='batch_plates', id=plate.mfg_batch_id))
开发者ID:v-makarenko,项目名称:vtoolsmq,代码行数:7,代码来源:product.py

示例13: __update_batch_plate_record

 def __update_batch_plate_record(self, record):
     record.dg_method = self.form_result['dg_method']
     record.qc_plate = self.form_result['qc_plate'] and True or False
     record.plate_notes = self.form_result['plate_notes']
     record.thermal_cycler_id = self.form_result['thermal_cycler_id']
     Session.add(record)
     Session.commit()
开发者ID:v-makarenko,项目名称:vtoolsmq,代码行数:7,代码来源:product.py

示例14: plate_query

def plate_query():

    # writing it this way because the .join seems to muck up
    # filter_by statements downstream
    box2s = [tup[0] for tup in Session.query(Box2.id).all()]

    query = Session.query(Plate).filter(Plate.box2_id.in_(box2s))
    return query
开发者ID:v-makarenko,项目名称:vtoolsmq,代码行数:8,代码来源:beta.py

示例15: sensitivity

 def sensitivity(self):
     enz = Session.query(Enzyme).get(self.form_result['enzyme'])
     if not self.form_result['sensitivity']:
         enz.methylation_sensitivity = None
     else:
         enz.methylation_sensitivity = self.form_result['sensitivity']
     Session.commit()
     return "OK"
开发者ID:v-makarenko,项目名称:vtoolsmq,代码行数:8,代码来源:cutter.py


注:本文中的qtools.model.Session类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。