Example #1
0
    def test_mapper(self):
        class MyDerivedEntity(MyEntity):
            pass

        @implementer(IEntity)
        class MyEntityWithCustomId(object):

            def __init__(self, id=None): # redefining id pylint: disable=W0622
                self.__id = id
                self.__slug = str(id)

            @property
            def id(self):
                return str(self.__id)

            @property
            def slug(self):
                return str(self.__id)

        class MyPolymorphicEntity1(MyEntityWithCustomId):
            pass

        class MyPolymorphicEntity2(MyEntityWithCustomId):
            pass

        t1 = self._make_table(True)
        with self.assert_raises(ValueError) as cm:
            mpr = mapper(MyDerivedEntity, t1, id_attribute='my_id')
        msg_str = 'Attempting to overwrite the mapped'
        self.assert_true(str(cm.exception).startswith(msg_str))
        t2 = self._make_table(False)
        with self.assert_raises(ValueError) as cm:
            mpr = mapper(MyEntityWithCustomId, t2, id_attribute='my_id')
        msg_str = 'Attempting to overwrite the custom data'
        self.assert_true(str(cm.exception).startswith(msg_str))
        #
        slug_expr = lambda cls: as_slug_expression(cast(cls.id, String))
        mpr = mapper(MyDerivedEntity, t2,
                     id_attribute='my_id', slug_expression=slug_expr)
        self.assert_true(MyDerivedEntity.__dict__['slug'].expr
                         is slug_expr)
        self.assert_true(isinstance(MyDerivedEntity.slug, Function))
        mpr.dispose()
        # Test mapping polymorphic class with custom slug in the base class.
        base_mpr = mapper(MyEntityWithCustomId, t2,
                          polymorphic_on='my_type',
                          polymorphic_identity='base')
        poly_mpr1 = mapper(MyPolymorphicEntity1, inherits=base_mpr,
                           polymorphic_identity='derived')
        self.assert_true(isinstance(MyPolymorphicEntity1.__dict__['slug'],
                                    hybrid_descriptor))
        # We should not override the slug expression if we are inheriting
        # a hybrid descriptor from the base class.
        self.assert_raises(ValueError,
                           mapper, MyPolymorphicEntity2, inherits=base_mpr,
                           polymorphic_identity='derived',
                           slug_expression=slug_expr)
        base_mpr.dispose()
        poly_mpr1.dispose()
Example #2
0
    def test_mapper(self):
        class MyDerivedEntity(MyEntity):
            pass

        class MyEntityWithCustomId(object):
            implements(IEntity)

            def __init__(self, id=None):  # redefining id pylint: disable=W0622
                self.__id = id
                self.__slug = str(id)

            @property
            def id(self):
                return str(self.__id)

            @property
            def slug(self):
                return str(self.__id)

        class MyPolymorphicEntity(MyEntityWithCustomId):
            pass

        t1 = self._make_table(True)
        with self.assert_raises(ValueError) as cm:
            mpr = mapper(MyDerivedEntity, t1, id_attribute='my_id')
        msg_str = 'Attempting to overwrite the mapped'
        self.assert_true(cm.exception.message.startswith(msg_str))
        t2 = self._make_table(False)
        with self.assert_raises(ValueError) as cm:
            mpr = mapper(MyEntityWithCustomId, t2, id_attribute='my_id')
        msg_str = 'Attempting to overwrite the custom data'
        self.assert_true(cm.exception.message.startswith(msg_str))
        #
        slug_expr = lambda cls: as_slug_expression(cast(cls.id, String))
        mpr = mapper(MyDerivedEntity,
                     t2,
                     id_attribute='my_id',
                     slug_expression=slug_expr)
        self.assert_true(MyDerivedEntity.__dict__['slug'].expr is slug_expr)
        self.assert_true(isinstance(MyDerivedEntity.slug, Function))
        mpr.dispose()
        # Test mapping polymorphic class with custom slug in the base class.
        base_mpr = mapper(MyEntityWithCustomId,
                          t2,
                          polymorphic_on='my_type',
                          polymorphic_identity='base')
        mpr = mapper(MyPolymorphicEntity,
                     inherits=base_mpr,
                     polymorphic_identity='derived')
        self.assert_true(
            isinstance(MyPolymorphicEntity.__dict__['slug'],
                       hybrid_descriptor))
        base_mpr.dispose()
        mpr.dispose()
Example #3
0
File: tag.py Project: papagr/TheLMA
def create_mapper(tag_tbl, tag_domain_tbl, tag_predicate_tbl, tag_value_tbl,
                  tagging_tbl):
    "Mapper factory."
    m = mapper(Tag,
               tag_tbl,
               id_attribute='tag_id',
               slug_expression=lambda cls: as_slug_expression(
                                        func.concatenate(cls.domain, ':',
                                                         cls.predicate, '=',
                                                         cls.value)),
               extension=TagMapperExtension(tag_domain_tbl,
                                            tag_predicate_tbl, tag_value_tbl),
               properties=
                    dict(tagged=relationship(Tagged,
                                             secondary=tagging_tbl,
                                             back_populates='tags'),
                         domain=column_property(
                                    select([tag_domain_tbl.c.domain]) \
                                    .where(tag_tbl.c.tag_domain_id ==
                                        tag_domain_tbl.c.tag_domain_id)
                                    ),
                         predicate=column_property(
                                    select([tag_predicate_tbl.c.predicate]) \
                                    .where(tag_tbl.c.tag_predicate_id ==
                                        tag_predicate_tbl.c.tag_predicate_id)
                                    ),
                         value=column_property(
                                    select([tag_value_tbl.c.value]) \
                                    .where(tag_tbl.c.tag_value_id ==
                                        tag_value_tbl.c.tag_value_id)
                                    ),
                         )
               )
    return m
Example #4
0
def create_mapper(barcoded_location_tbl, rack_barcoded_location_tbl):
    "Mapper factory."
    bl = barcoded_location_tbl
    rbl = rack_barcoded_location_tbl.alias()
    m = mapper(BarcodedLocation, barcoded_location_tbl,
               id_attribute='barcoded_location_id',
               slug_expression=lambda cls: as_slug_expression(cls.name),
               properties=dict(
                label=column_property(
                    barcoded_location_tbl.c.label,
                    comparator_factory=CaseInsensitiveComparator
                    ),
                device=relationship(Device, uselist=False,
                                    back_populates='locations'),
                location_rack=relationship(BarcodedLocationRack,
                    uselist=False,
                    back_populates='location',
#                    lazy='joined',
                    cascade='all,delete,delete-orphan',
                    single_parent=True
                    ),
                empty=
                  column_property(~exists(# the symbol "~" negates the clause
                    select([rbl.c.barcoded_location_id],
                      bl.c.barcoded_location_id == rbl.c.barcoded_location_id
                      )),
                    deferred=True
                    ),
                )
               )
    return m
Example #5
0
def create_mapper(rack_specs_tbl):
    "Mapper factory."
    rs = rack_specs_tbl
    polymorphic_select = select([
        rs,
        (case([(rs.c.has_movable_subitems,
                literal(RACK_SPECS_TYPES.TUBE_RACK_SPECS))],
              else_=literal(RACK_SPECS_TYPES.PLATE_SPECS))).label(
                                                            'rackspecs_type')
        ],
        ).alias('rackspecs')
    m = mapper(RackSpecs, polymorphic_select,
            id_attribute='rack_specs_id',
            slug_expression=lambda cls: as_slug_expression(cls.name),
            properties=dict(
                manufacturer=relationship(Organization),
                shape=relationship(RackShape, uselist=False,
                                   back_populates='specs'),
                rack_specs_type=
                        column_property(polymorphic_select.c.rackspecs_type),
                ),
            polymorphic_on=polymorphic_select.c.rackspecs_type,
            polymorphic_identity=RACK_SPECS_TYPES.RACK_SPECS,
            )
    RackSpecs.has_tubes = synonym('has_movable_subitems')
    return m
Example #6
0
def create_mapper(job_mapper, iso_job_tbl, iso_job_member_tbl,
                  worklist_series_iso_request_tbl):
    "Mapper factory."
    m = mapper(IsoJob, iso_job_tbl,
               inherits=job_mapper,
               polymorphic_identity=JOB_TYPES.ISO,
               properties=dict(
                    iso_job_stock_racks=relationship(IsoJobStockRack,
                                    back_populates='iso_job',
                                    cascade='all, delete-orphan'),
                    iso_job_preparation_plates=relationship(
                                    IsoJobPreparationPlate,
                                    back_populates='iso_job',
                                    cascade='all, delete-orphan'),
                    isos=relationship(Iso, secondary=iso_job_member_tbl,
                                    back_populates='iso_job',
                                    cascade='all, delete-orphan',
                                    single_parent=True),
                    worklist_series=relationship(WorklistSeries,
                                    cascade='all, delete-orphan',
                                    uselist=False, single_parent=True,
                                    secondary=worklist_series_iso_request_tbl)
                    )
               )
    return m
Example #7
0
def create_mapper(job_mapper, iso_job_tbl, iso_job_member_tbl,
                  worklist_series_iso_request_tbl):
    "Mapper factory."
    m = mapper(IsoJob,
               iso_job_tbl,
               inherits=job_mapper,
               polymorphic_identity=JOB_TYPES.ISO,
               properties=dict(iso_job_stock_racks=relationship(
                   IsoJobStockRack,
                   back_populates='iso_job',
                   cascade='all, delete-orphan'),
                               iso_job_preparation_plates=relationship(
                                   IsoJobPreparationPlate,
                                   back_populates='iso_job',
                                   cascade='all, delete-orphan'),
                               isos=relationship(Iso,
                                                 secondary=iso_job_member_tbl,
                                                 back_populates='iso_job',
                                                 cascade='all, delete-orphan',
                                                 single_parent=True),
                               worklist_series=relationship(
                                   WorklistSeries,
                                   cascade='all, delete-orphan',
                                   uselist=False,
                                   single_parent=True,
                                   secondary=worklist_series_iso_request_tbl)))
    return m
Example #8
0
def create_mapper(experiment_metadata_tbl,
                  experiment_metadata_iso_request_tbl):
    "Mapper factory."
    m = mapper(
        ExperimentMetadata,
        experiment_metadata_tbl,
        id_attribute='experiment_metadata_id',
        slug_expression=lambda cls: as_slug_expression(cls.label),
        properties=dict(
            label=column_property(
                experiment_metadata_tbl.c.label,
                comparator_factory=CaseInsensitiveComparator),
            experiment_design=relationship(
                ExperimentDesign,
                uselist=False,
                cascade='all,delete,delete-orphan',
                back_populates='experiment_metadata'),
            subproject=relationship(Subproject, uselist=False),
            lab_iso_request=relationship(
                LabIsoRequest,
                uselist=False,
                secondary=experiment_metadata_iso_request_tbl,
                back_populates='experiment_metadata',
                cascade='all,delete,delete-orphan',
                single_parent=True),
            experiment_metadata_type=relationship(ExperimentMetadataType,
                                                  uselist=False),
        ),
    )
    return m
Example #9
0
def create_mapper(supplier_molecule_design_tbl,
                  single_supplier_molecule_design_tbl,
                  pooled_supplier_molecule_design_tbl):
    "Mapper factory."
    ssmd = single_supplier_molecule_design_tbl
    psmd = pooled_supplier_molecule_design_tbl
    m = mapper(SupplierMoleculeDesign, supplier_molecule_design_tbl,
               id_attribute='supplier_molecule_design_id',
               properties=dict(
                   supplier=
                       relationship(Organization,
                                    uselist=False),
                   supplier_structure_annotations=
                       relationship(SupplierStructureAnnotation,
                                    back_populates=
                                           'supplier_molecule_design'),
                   molecule_design=\
                     relationship(MoleculeDesign,
                                  uselist=False,
                                  secondary=ssmd,
                                  back_populates='supplier_molecule_designs'),
                   molecule_design_pool=\
                     relationship(MoleculeDesignPool,
                                  uselist=False,
                                  secondary=psmd,
                                  back_populates='supplier_molecule_designs')
                   ),
               )
    return m
Example #10
0
def create_mapper(molecule_design_tbl, molecule_design_structure_tbl,
                  single_supplier_molecule_design_tbl,
                  molecule_design_gene_tbl, refseq_gene_tbl):
    "Mapper factory."
    md = molecule_design_tbl
    ssmd = single_supplier_molecule_design_tbl
    mdg = molecule_design_gene_tbl
    rsg = refseq_gene_tbl
    m = mapper(MoleculeDesign, molecule_design_tbl,
          id_attribute='molecule_design_id',
          properties=dict(
            molecule_type=relationship(MoleculeType), #, lazy='joined'),
            chemical_structures=relationship(
                                    ChemicalStructure,
                                    secondary=molecule_design_structure_tbl,
                                    back_populates='molecule_designs'),
            supplier_molecule_designs=
                        relationship(SupplierMoleculeDesign,
                                     secondary=ssmd,
                                     back_populates='molecule_design'),
            genes=relationship(Gene, viewonly=True, secondary=mdg,
                primaryjoin=(mdg.c.molecule_design_id ==
                                                    md.c.molecule_design_id),
                secondaryjoin=(mdg.c.gene_id == rsg.c.gene_id),
                foreign_keys=(mdg.c.molecule_design_id, mdg.c.gene_id),
                back_populates='molecule_designs',
                ),
            ),
          polymorphic_on=molecule_design_tbl.c.molecule_type_id,
          polymorphic_identity=MOLECULE_TYPE,
          )
    return m
Example #11
0
def create_mapper(experiment_metadata_type_tbl):
    "Mapper factory."
    m = mapper(ExperimentMetadataType,
               experiment_metadata_type_tbl,
               id_attribute='experiment_metadata_type_id',
               slug_expression=lambda cls: func.lower(cls.id))
    return m
Example #12
0
def create_mapper(rack_tbl, rack_barcoded_location_tbl):
    "Mapper factory."
    rbl = rack_barcoded_location_tbl
    m = mapper(Rack, rack_tbl,
        id_attribute='rack_id',
        slug_expression=lambda cls: as_slug_expression(cls.barcode),
        properties=dict(
            label=column_property(
                rack_tbl.c.label,
                comparator_factory=CaseInsensitiveComparator
                ),
            specs=relationship(RackSpecs,
                               innerjoin=True, uselist=False),
            status=relationship(ItemStatus,
                                innerjoin=True, uselist=False),
            location_rack=relationship(BarcodedLocationRack,
                                         uselist=False,
                                         back_populates='rack',
                                         cascade='all,delete,delete-orphan'),
            _location=relationship(BarcodedLocation, viewonly=True,
                uselist=False,
                secondary=rbl,
                foreign_keys=(rbl.c.rack_id, rbl.c.barcoded_location_id),
                ),
            ),
        polymorphic_on=rack_tbl.c.rack_type,
        polymorphic_identity=RACK_TYPES.RACK,
        )
    return m
Example #13
0
def create_mapper(barcoded_location_tbl, rack_barcoded_location_tbl):
    "Mapper factory."
    bl = barcoded_location_tbl
    rbl = rack_barcoded_location_tbl.alias()
    m = mapper(
        BarcodedLocation,
        barcoded_location_tbl,
        id_attribute='barcoded_location_id',
        slug_expression=lambda cls: as_slug_expression(cls.name),
        properties=dict(
            label=column_property(
                barcoded_location_tbl.c.label,
                comparator_factory=CaseInsensitiveComparator),
            device=relationship(Device,
                                uselist=False,
                                back_populates='locations'),
            location_rack=relationship(
                BarcodedLocationRack,
                uselist=False,
                back_populates='location',
                #                    lazy='joined',
                cascade='all,delete,delete-orphan',
                single_parent=True),
            empty=column_property(
                ~exists(  # the symbol "~" negates the clause
                    select([rbl.c.barcoded_location_id],
                           bl.c.barcoded_location_id
                           == rbl.c.barcoded_location_id)),
                deferred=True),
        ))
    return m
Example #14
0
def create_mapper(rack_specs_tbl):
    "Mapper factory."
    rs = rack_specs_tbl
    polymorphic_select = select([
        rs,
        (case([(rs.c.has_movable_subitems,
                literal(RACK_SPECS_TYPES.TUBE_RACK_SPECS))],
              else_=literal(
                  RACK_SPECS_TYPES.PLATE_SPECS))).label('rackspecs_type')
    ], ).alias('rackspecs')
    m = mapper(
        RackSpecs,
        polymorphic_select,
        id_attribute='rack_specs_id',
        slug_expression=lambda cls: as_slug_expression(cls.name),
        properties=dict(
            manufacturer=relationship(Organization),
            shape=relationship(RackShape,
                               uselist=False,
                               back_populates='specs'),
            rack_specs_type=column_property(
                polymorphic_select.c.rackspecs_type),
        ),
        polymorphic_on=polymorphic_select.c.rackspecs_type,
        polymorphic_identity=RACK_SPECS_TYPES.RACK_SPECS,
    )
    RackSpecs.has_tubes = synonym('has_movable_subitems')
    return m
Example #15
0
def create_mapper(experiment_design_tbl,
                  worklist_series_experiment_design_tbl):
    "Mapper factory."
    m = mapper(
        ExperimentDesign,
        experiment_design_tbl,
        id_attribute='experiment_design_id',
        properties=dict(rack_shape=relationship(RackShape, uselist=False),
                        experiment_design_racks=relationship(
                            ExperimentDesignRack,
                            back_populates='experiment_design',
                            cascade="all, delete, delete-orphan"),
                        experiments=relationship(
                            Experiment,
                            back_populates='experiment_design',
                            cascade_backrefs=False),
                        experiment_metadata=relationship(
                            ExperimentMetadata,
                            back_populates='experiment_design',
                            uselist=False),
                        worklist_series=relationship(
                            WorklistSeries,
                            uselist=False,
                            cascade='all, delete, delete-orphan',
                            secondary=worklist_series_experiment_design_tbl,
                            single_parent=True)),
    )
    return m
Example #16
0
def create_mapper(tag_tbl, tag_domain_tbl, tag_predicate_tbl, tag_value_tbl,
                  tagging_tbl):
    "Mapper factory."
    m = mapper(Tag,
               tag_tbl,
               id_attribute='tag_id',
               slug_expression=lambda cls: as_slug_expression(
                                        func.concatenate(cls.domain, ':',
                                                         cls.predicate, '=',
                                                         cls.value)),
               extension=TagMapperExtension(tag_domain_tbl,
                                            tag_predicate_tbl, tag_value_tbl),
               properties=
                    dict(tagged=relationship(Tagged,
                                             secondary=tagging_tbl,
                                             back_populates='tags'),
                         domain=column_property(
                                    select([tag_domain_tbl.c.domain]) \
                                    .where(tag_tbl.c.tag_domain_id ==
                                        tag_domain_tbl.c.tag_domain_id)
                                    ),
                         predicate=column_property(
                                    select([tag_predicate_tbl.c.predicate]) \
                                    .where(tag_tbl.c.tag_predicate_id ==
                                        tag_predicate_tbl.c.tag_predicate_id)
                                    ),
                         value=column_property(
                                    select([tag_value_tbl.c.value]) \
                                    .where(tag_tbl.c.tag_value_id ==
                                        tag_value_tbl.c.tag_value_id)
                                    ),
                         )
               )
    return m
Example #17
0
def create_mapper(experiment_metadata_tbl,
                  experiment_metadata_iso_request_tbl):
    "Mapper factory."
    m = mapper(
           ExperimentMetadata, experiment_metadata_tbl,
           id_attribute='experiment_metadata_id',
           slug_expression=lambda cls: as_slug_expression(cls.label),
           properties=
             dict(label=column_property(
                      experiment_metadata_tbl.c.label,
                      comparator_factory=CaseInsensitiveComparator
                      ),
                  experiment_design=relationship(ExperimentDesign,
                                    uselist=False,
                                    cascade='all,delete,delete-orphan',
                                    back_populates='experiment_metadata'),
                  subproject=relationship(Subproject, uselist=False),
                  lab_iso_request=relationship(LabIsoRequest, uselist=False,
                            secondary=experiment_metadata_iso_request_tbl,
                            back_populates='experiment_metadata',
                            cascade='all,delete,delete-orphan',
                            single_parent=True),

                  experiment_metadata_type=relationship(ExperimentMetadataType,
                                                        uselist=False),
                  ),
           )
    return m
Example #18
0
def create_mapper(molecule_design_set_mapper, molecule_design_pool_tbl,
                  pooled_supplier_molecule_design_tbl,
                  supplier_molecule_design_tbl, molecule_design_set_gene_tbl):
    "Mapper factory."
    mdp = molecule_design_pool_tbl
    psmd = pooled_supplier_molecule_design_tbl
    smd = supplier_molecule_design_tbl
    mdsg = molecule_design_set_gene_tbl
    m = mapper(MoleculeDesignPool,
               molecule_design_pool_tbl,
               inherits=molecule_design_set_mapper,
               properties=dict(
                    molecule_type=relationship(MoleculeType,
#                                               lazy='joined'
                                               ),
                    supplier_molecule_designs=
                        relationship(
                            SupplierMoleculeDesign,
                            secondary=psmd,
                            primaryjoin=psmd.c.molecule_design_set_id ==
                                                mdp.c.molecule_design_set_id,
                            secondaryjoin=smd.c.supplier_molecule_design_id ==
                                           psmd.c.supplier_molecule_design_id,
                            foreign_keys=[psmd.c.molecule_design_set_id,
                                          psmd.c.supplier_molecule_design_id],
                            back_populates='molecule_design_pool'),
                    genes=relationship(Gene,
                                       viewonly=True,
                                       secondary=mdsg),
                    ),
               polymorphic_identity=MOLECULE_DESIGN_SET_TYPES.POOL)
    event.listen(MoleculeDesignPool, 'init', check_init)
    return m
Example #19
0
def create_mapper(iso_request_mapper, lab_iso_request_tbl,
                  experiment_metadata_iso_request_tbl, reservoir_specs_tbl,
                  molecule_design_library_lab_iso_request_tbl):
    "Mapper factory."
    lir = lab_iso_request_tbl
    emir = experiment_metadata_iso_request_tbl
    rs = reservoir_specs_tbl
    m = mapper(LabIsoRequest, lab_iso_request_tbl,
               inherits=iso_request_mapper,
               properties=dict(
                    requester=relationship(User, uselist=False),
                    rack_layout=relationship(RackLayout, uselist=False,
                                cascade='all,delete,delete-orphan',
                                single_parent=True),
                    experiment_metadata=relationship(ExperimentMetadata,
                                             secondary=emir, uselist=False,
                                             back_populates='lab_iso_request'),
                    molecule_design_library=relationship(
                         MoleculeDesignLibrary, uselist=False,
                         secondary=molecule_design_library_lab_iso_request_tbl),
                    iso_plate_reservoir_specs=relationship(ReservoirSpecs,
                           uselist=False,
                           primaryjoin=lir.c.iso_plate_reservoir_specs_id == \
                            rs.c.reservoir_specs_id)
                               ),
               polymorphic_identity=ISO_TYPES.LAB,
               )
    return m
Example #20
0
def create_mapper(item_status_tbl):
    "Mapper factory."
    m = mapper(ItemStatus,
               item_status_tbl,
               id_attribute='item_status_id',
               slug_expression=lambda cls: as_slug_expression(cls.name))
    return m
Example #21
0
def create_mapper(iso_request_mapper, lab_iso_request_tbl,
                  experiment_metadata_iso_request_tbl, reservoir_specs_tbl,
                  molecule_design_library_lab_iso_request_tbl):
    "Mapper factory."
    lir = lab_iso_request_tbl
    emir = experiment_metadata_iso_request_tbl
    rs = reservoir_specs_tbl
    m = mapper(LabIsoRequest, lab_iso_request_tbl,
               inherits=iso_request_mapper,
               properties=dict(
                    requester=relationship(User, uselist=False),
                    rack_layout=relationship(RackLayout, uselist=False,
                                cascade='all,delete,delete-orphan',
                                single_parent=True),
                    experiment_metadata=relationship(ExperimentMetadata,
                                             secondary=emir, uselist=False,
                                             back_populates='lab_iso_request'),
                    molecule_design_library=relationship(
                         MoleculeDesignLibrary, uselist=False,
                         secondary=molecule_design_library_lab_iso_request_tbl),
                    iso_plate_reservoir_specs=relationship(ReservoirSpecs,
                           uselist=False,
                           primaryjoin=lir.c.iso_plate_reservoir_specs_id == \
                            rs.c.reservoir_specs_id)
                               ),
               polymorphic_identity=ISO_TYPES.LAB,
               )
    return m
Example #22
0
def create_mapper(iso_request_tbl, worklist_series_iso_request_tbl,
                  iso_request_pool_set_tbl):
    "Mapper factory."
    wsir = worklist_series_iso_request_tbl
    m = mapper(IsoRequest, iso_request_tbl,
               id_attribute='iso_request_id',
               properties=
                    dict(owner=column_property(iso_request_tbl.c.owner,
                                comparator_factory=CaseInsensitiveComparator
                                ),
                         isos=relationship(Iso, back_populates='iso_request'),
                         worklist_series=relationship(WorklistSeries,
                                uselist=False, secondary=wsir,
                                cascade='all,delete,delete-orphan',
                                single_parent=True),
                         molecule_design_pool_set=relationship(
                                MoleculeDesignPoolSet,
                                secondary=iso_request_pool_set_tbl,
                                uselist=False, single_parent=True,
                                cascade='all,delete,delete-orphan')
                    ),
               polymorphic_on=iso_request_tbl.c.iso_type,
               polymorphic_identity=ISO_TYPES.BASE,
               )
    return m
Example #23
0
def create_mapper(molecule_design_set_mapper, molecule_design_pool_tbl,
                  pooled_supplier_molecule_design_tbl,
                  supplier_molecule_design_tbl, molecule_design_set_gene_tbl):
    "Mapper factory."
    mdp = molecule_design_pool_tbl
    psmd = pooled_supplier_molecule_design_tbl
    smd = supplier_molecule_design_tbl
    mdsg = molecule_design_set_gene_tbl
    m = mapper(
        MoleculeDesignPool,
        molecule_design_pool_tbl,
        inherits=molecule_design_set_mapper,
        properties=dict(
            molecule_type=relationship(
                MoleculeType,
                #                                               lazy='joined'
            ),
            supplier_molecule_designs=relationship(
                SupplierMoleculeDesign,
                secondary=psmd,
                primaryjoin=psmd.c.molecule_design_set_id ==
                mdp.c.molecule_design_set_id,
                secondaryjoin=smd.c.supplier_molecule_design_id ==
                psmd.c.supplier_molecule_design_id,
                foreign_keys=[
                    psmd.c.molecule_design_set_id,
                    psmd.c.supplier_molecule_design_id
                ],
                back_populates='molecule_design_pool'),
            genes=relationship(Gene, viewonly=True, secondary=mdsg),
        ),
        polymorphic_identity=MOLECULE_DESIGN_SET_TYPES.POOL)
    event.listen(MoleculeDesignPool, 'init', check_init)
    return m
Example #24
0
def create_mapper(iso_plate_tbl):
    "Mapper factory."
    m = mapper(IsoPlate,
               iso_plate_tbl,
               id_attribute='iso_plate_id',
               polymorphic_on=iso_plate_tbl.c.iso_plate_type,
               polymorphic_identity=ISO_PLATE_TYPES.ISO_PLATE,
               properties=dict(rack=relationship(Rack, uselist=False), ))
    return m
Example #25
0
def create_mapper(barcoded_location_tbl):
    "Mapper factory."
    bl = barcoded_location_tbl.alias('bl')
    location_select = select([bl.c.type.label('name')]
                             ).distinct().alias('loctypes')
    m = mapper(BarcodedLocationType, location_select,
               slug_expression=lambda cls: as_slug_expression(cls.name),
               primary_key=[location_select.c.name],
               )
    return m
Example #26
0
def create_mapper(species_tbl):
    "Mapper factory."
    m = mapper(
        Species,
        species_tbl,
        id_attribute='species_id',
        slug_expression=lambda cls: as_slug_expression(cls.common_name),
        properties=dict(genes=relationship(Gene, back_populates='species'), ),
    )
    return m
Example #27
0
def create_mapper(device_type_tbl):
    "Mapper factory."
    m = mapper(DeviceType, device_type_tbl,
               id_attribute='device_type_id',
               slug_expression=lambda cls: as_slug_expression(cls.name),
               properties=dict(
                    devices=relationship(Device, back_populates='type'),
                    ),
               )
    return m
Example #28
0
def create_mapper(molecule_tbl, molecule_supplier_molecule_design_tbl):
    "Mapper factory."
    #    ssmd = single_supplier_molecule_design_tbl
    #    smd = supplier_molecule_design_tbl
    #    mcl = molecule_tbl.alias()
    #    prd_sel = \
    #        select([distinct(smd.c.product_id)],
    #               and_(mcl.c.molecule_design_id ==
    #                                        molecule_tbl.c.molecule_design_id,
    #                    smd.c.supplier_id == molecule_tbl.c.supplier_id,
    #                    smd.c.is_current
    #                    ),
    #               from_obj=[mcl.join(ssmd,
    #                                  ssmd.c.molecule_design_id ==
    #                                            mcl.c.molecule_design_id)
    #                            .join(smd,
    #                                  smd.c.supplier_molecule_design_id ==
    #                                         ssmd.c.supplier_molecule_design_id)]
    #               )
    #    msmd = molecule_supplier_molecule_design_vw
    msmd = molecule_supplier_molecule_design_tbl
    m = mapper(
        Molecule,
        molecule_tbl,
        id_attribute='molecule_id',
        properties=dict(
            supplier=relationship(Organization),
            molecule_design=relationship(
                MoleculeDesign,
                uselist=False,
                #                                         lazy='joined'
            ),
            # Loading the product ID like this is faster than loading it
            # through the supplier molecule design.
            #            product_id=column_property(prd_sel.as_scalar(), deferred=True),
            supplier_molecule_design=relationship(
                SupplierMoleculeDesign,
                uselist=False,
                secondary=msmd,
                #                              primaryjoin=ssmd.c.molecule_design_id ==
                #                                             molecule_tbl.c.molecule_design_id,
                #                              secondaryjoin=and_(smd.c.supplier_molecule_design_id ==
                #                                                    ssmd.c.supplier_molecule_design_id,
                #                                                 smd.c.is_current,
                #                                                 smd.c.supplier_id == molecule_tbl.c.supplier_id),
                #                              foreign_keys=(ssmd.c.molecule_design_id,
                #                                            ssmd.c.supplier_molecule_design_id),
                ##                              remote_side=msmd.c.molecule_id,
                viewonly=True),
            sample_molecules=relationship(SampleMolecule,
                                          back_populates='molecule'),
        ),
    )
    return m
Example #29
0
def create_mapper(stock_rack_mapper, iso_job_stock_rack_tbl):
    "Mapper factory."
    m = mapper(
        IsoJobStockRack,
        iso_job_stock_rack_tbl,
        inherits=stock_rack_mapper,
        properties=dict(iso_job=relationship(
            IsoJob, uselist=False, back_populates='iso_job_stock_racks'), ),
        polymorphic_identity=STOCK_RACK_TYPES.ISO_JOB,
    )
    return m
Example #30
0
def create_mapper(user_preferences_tbl):
    "Mapper factory."
    m = mapper(UserPreferences,
               user_preferences_tbl,
               id_attribute='user_preferences_id',
               properties=dict(user=relationship(
                   User,
                   uselist=False,
                   back_populates='user_preferenceses',
                   cascade='save-update'), ))
    return m
Example #31
0
def create_mapper(iso_plate_mapper, iso_aliquot_plate_tbl):
    "Mapper factory."
    m = mapper(IsoAliquotPlate, iso_aliquot_plate_tbl,
               inherits=iso_plate_mapper,
               properties=dict(
                    iso=relationship(Iso, uselist=False,
                                     back_populates='iso_aliquot_plates'),
                    ),
               polymorphic_identity=ISO_PLATE_TYPES.ALIQUOT,
               )
    return m
Example #32
0
def create_mapper(iso_plate_mapper, iso_aliquot_plate_tbl):
    "Mapper factory."
    m = mapper(
        IsoAliquotPlate,
        iso_aliquot_plate_tbl,
        inherits=iso_plate_mapper,
        properties=dict(iso=relationship(
            Iso, uselist=False, back_populates='iso_aliquot_plates'), ),
        polymorphic_identity=ISO_PLATE_TYPES.ALIQUOT,
    )
    return m
Example #33
0
def create_mapper(stock_rack_mapper, iso_sector_stock_rack_tbl):
    "Mapper factory."
    m = mapper(
        IsoSectorStockRack,
        iso_sector_stock_rack_tbl,
        inherits=stock_rack_mapper,
        properties=dict(iso=relationship(
            Iso, uselist=False, back_populates='iso_sector_stock_racks'), ),
        polymorphic_identity=STOCK_RACK_TYPES.SECTOR,
    )
    return m
Example #34
0
def create_mapper(iso_plate_tbl):
    "Mapper factory."
    m = mapper(IsoPlate, iso_plate_tbl,
               id_attribute='iso_plate_id',
               polymorphic_on=iso_plate_tbl.c.iso_plate_type,
               polymorphic_identity=ISO_PLATE_TYPES.ISO_PLATE,
               properties=dict(
                    rack=relationship(Rack, uselist=False),
                               )
               )
    return m
Example #35
0
def create_mapper(iso_mapper, stock_sample_creation_iso_tbl):
    "Mapper factory."
    m = mapper(StockSampleCreationIso, stock_sample_creation_iso_tbl,
               inherits=iso_mapper,
               properties=dict(
                    iso_sector_preparation_plates=relationship(
                        IsoSectorPreparationPlate,
                        back_populates='iso',
                        cascade='all,delete,delete-orphan')),
               polymorphic_identity=ISO_TYPES.STOCK_SAMPLE_GENERATION)
    return m
Example #36
0
def create_mapper(species_tbl):
    "Mapper factory."
    m = mapper(Species, species_tbl,
               id_attribute='species_id',
               slug_expression=lambda cls: as_slug_expression(cls.common_name),
               properties=dict(
                      genes=relationship(Gene,
                                         back_populates='species'),
                      ),
                  )
    return m
Example #37
0
def create_mapper(iso_mapper, stock_sample_creation_iso_tbl):
    "Mapper factory."
    m = mapper(StockSampleCreationIso,
               stock_sample_creation_iso_tbl,
               inherits=iso_mapper,
               properties=dict(iso_sector_preparation_plates=relationship(
                   IsoSectorPreparationPlate,
                   back_populates='iso',
                   cascade='all,delete,delete-orphan')),
               polymorphic_identity=ISO_TYPES.STOCK_SAMPLE_GENERATION)
    return m
Example #38
0
def create_mapper(user_preferences_tbl):
    "Mapper factory."
    m = mapper(UserPreferences, user_preferences_tbl,
               id_attribute='user_preferences_id',
               properties=dict(
                    user=relationship(User, uselist=False,
                                        back_populates='user_preferenceses',
                                        cascade='save-update'),
                    )
               )
    return m
Example #39
0
def create_mapper(stock_rack_mapper, iso_stock_rack_tbl):
    "Mapper factory."
    m = mapper(IsoStockRack, iso_stock_rack_tbl,
               inherits=stock_rack_mapper,
               properties=dict(
                    iso=relationship(Iso, uselist=False,
                        back_populates='iso_stock_racks'),
                    ),
               polymorphic_identity=STOCK_RACK_TYPES.ISO,
               )
    return m
Example #40
0
def create_mapper(rack_shape_tbl):
    "Mapper factory."
    m = mapper(RackShape, rack_shape_tbl,
        id_attribute='rack_shape_name',
        slug_expression=lambda cls: as_slug_expression(cls.rack_shape_name),
        properties=dict(
            specs=relationship(RackSpecs, back_populates='shape'),
            ),
        )
    RackShape.name = synonym('rack_shape_name')
    return m
Example #41
0
def create_mapper(worklist_series_tbl):
    "Mapper factory."
    m = mapper(WorklistSeries,
               worklist_series_tbl,
               id_attribute='worklist_series_id',
               properties=dict(worklist_series_members=relationship(
                   WorklistSeriesMember,
                   uselist=True,
                   collection_class=list,
                   back_populates='worklist_series',
                   cascade='all,delete,delete-orphan')))
    return m
Example #42
0
def create_mapper(rack_shape_tbl):
    "Mapper factory."
    m = mapper(
        RackShape,
        rack_shape_tbl,
        id_attribute='rack_shape_name',
        slug_expression=lambda cls: as_slug_expression(cls.rack_shape_name),
        properties=dict(specs=relationship(RackSpecs,
                                           back_populates='shape'), ),
    )
    RackShape.name = synonym('rack_shape_name')
    return m
Example #43
0
def create_mapper(barcoded_location_tbl):
    "Mapper factory."
    bl = barcoded_location_tbl.alias('bl')
    location_select = select([bl.c.type.label('name')
                              ]).distinct().alias('loctypes')
    m = mapper(
        BarcodedLocationType,
        location_select,
        slug_expression=lambda cls: as_slug_expression(cls.name),
        primary_key=[location_select.c.name],
    )
    return m
Example #44
0
def create_mapper(worklist_series_tbl):
    "Mapper factory."
    m = mapper(WorklistSeries, worklist_series_tbl,
               id_attribute='worklist_series_id',
               properties=dict(
                    worklist_series_members=relationship(WorklistSeriesMember,
                        uselist=True, collection_class=list,
                        back_populates='worklist_series',
                        cascade='all,delete,delete-orphan')
                               )
               )
    return m
Example #45
0
def create_mapper(iso_job_preparation_plate_tbl):
    "Mapper factory."
    m = mapper(IsoJobPreparationPlate, iso_job_preparation_plate_tbl,
               id_attribute='iso_job_preparation_plate_id',
               properties=dict(
                    rack=relationship(Rack, uselist=False),
                    rack_layout=relationship(RackLayout, uselist=False),
                    iso_job=relationship(IsoJob, uselist=False,
                        back_populates='iso_job_preparation_plates'),
                    ),
               )
    return m
Example #46
0
def create_mapper(organization_tbl):
    "Mapper factory."
    m = mapper(
        Organization,
        organization_tbl,
        id_attribute='organization_id',
        slug_expression=lambda cls: as_slug_expression(cls.name),
        properties=dict(name=column_property(
            organization_tbl.c.name,
            comparator_factory=CaseInsensitiveComparator), ),
    )
    return m
Example #47
0
def create_mapper(job_tbl):
    "Mapper factory."
    m = mapper(Job, job_tbl,
            id_attribute='job_id',
            properties=dict(
                user=relationship(User, uselist=False),
            ),
            polymorphic_on=job_tbl.c.job_type,
            polymorphic_identity=JOB_TYPES.BASE,
        )

    return m
Example #48
0
def create_mapper(rack_position_tbl):
    "Mapper factory."
    m = mapper(RackPosition, rack_position_tbl,
               id_attribute='rack_position_id',
               slug_expression=lambda cls: func.lower(cls._label), # pylint: disable=W0212
               properties=
                 dict(_label=rack_position_tbl.c.label,
                      _row_index=rack_position_tbl.c.row_index,
                      _column_index=rack_position_tbl.c.column_index
                      ),
               )
    return m
Example #49
0
def create_mapper(job_tbl):
    "Mapper factory."
    m = mapper(
        Job,
        job_tbl,
        id_attribute='job_id',
        properties=dict(user=relationship(User, uselist=False), ),
        polymorphic_on=job_tbl.c.job_type,
        polymorphic_identity=JOB_TYPES.BASE,
    )

    return m
Example #50
0
def create_mapper(device_tbl):
    "Mapper factory."
    m = mapper(Device, device_tbl,
        id_attribute='device_id',
        slug_expression=lambda cls: as_slug_expression(cls.name),
        properties=dict(
            type=relationship(DeviceType),
            locations=relationship(BarcodedLocation, back_populates='device'),
            manufacturer=relationship(Organization, uselist=False),
            ),
        )
    return m
Example #51
0
def create_mapper(iso_mapper, iso_tbl, iso_library_plate_tbl):
    "Mapper factory."
    m = mapper(LabIso,
               iso_tbl,
               inherits=iso_mapper,
               polymorphic_identity=ISO_TYPES.LAB,
               properties=dict(
                   library_plates=relationship(LibraryPlate,
                                               secondary=iso_library_plate_tbl,
                                               back_populates='lab_iso',
                                               cascade='all')))
    return m
Example #52
0
def create_mapper(iso_mapper, iso_tbl, iso_library_plate_tbl):
    "Mapper factory."
    m = mapper(LabIso, iso_tbl,
               inherits=iso_mapper,
               polymorphic_identity=ISO_TYPES.LAB,
               properties=dict(
                        library_plates=relationship(LibraryPlate,
                                        secondary=iso_library_plate_tbl,
                                        back_populates='lab_iso',
                                        cascade='all')
                               )
               )
    return m
Example #53
0
def create_mapper(rack_position_set_tbl, rack_position_set_member_tbl):
    "Mapper factory."
    m = mapper(
        RackPositionSet,
        rack_position_set_tbl,
        id_attribute="rack_position_set_id",
        slug_expression=lambda cls: cls._hash_value,  # pylint: disable=W0212
        properties=dict(
            _positions=relationship(RackPosition, collection_class=set, secondary=rack_position_set_member_tbl),
            _hash_value=rack_position_set_tbl.c.hash_value,
        ),
    )
    return m
Example #54
0
def create_mapper(organization_tbl):
    "Mapper factory."
    m = mapper(Organization, organization_tbl,
               id_attribute='organization_id',
               slug_expression=lambda cls: as_slug_expression(cls.name),
               properties=dict(
                      name=column_property(
                          organization_tbl.c.name,
                          comparator_factory=CaseInsensitiveComparator
                          ),
                      ),
                  )
    return m
Example #55
0
def create_mapper(job_mapper, job_tbl, experiment_tbl):
    "Mapper factory."
    m = mapper(
        ExperimentJob,
        job_tbl,
        inherits=job_mapper,
        properties=dict(
            experiments=relationship(Experiment,
                                     order_by=experiment_tbl.c.experiment_id,
                                     back_populates='job',
                                     cascade='save-update, merge, delete')),
        polymorphic_identity=JOB_TYPES.EXPERIMENT)
    return m
Example #56
0
def create_mapper(executed_liquid_transfer_tbl):
    "Mapper factory."
    m = mapper(ExecutedLiquidTransfer, executed_liquid_transfer_tbl,
               id_attribute='executed_liquid_transfer_id',
               properties=dict(
                    user=relationship(User, uselist=False),
                    planned_liquid_transfer=relationship(PlannedLiquidTransfer,
                                                         uselist=False),
                    ),
               polymorphic_on=executed_liquid_transfer_tbl.c.transfer_type,
               polymorphic_identity=TRANSFER_TYPES.LIQUID_TRANSFER
               )
    return m