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
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
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
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
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
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
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
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
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
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()
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
def _get_entity_from_aggregate(cls, entity_identifier): """ Retrieves the entity for the given identifier from the aggregate. """ cls._initialize_aggregate() if cls._CONVERT_TO_SLUG: slug = as_slug_expression(entity_identifier) else: slug = entity_identifier return cls._aggregate.get_by_slug(slug)
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
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
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
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()
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
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
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
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
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
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
def create_mapper(refseq_gene_tbl, molecule_design_gene_tbl, molecule_design_set_gene_tbl, molecule_design_tbl, molecule_design_pool_tbl): "Mapper factory." rsg = refseq_gene_tbl mdg = molecule_design_gene_tbl mdsg = molecule_design_set_gene_tbl md = molecule_design_tbl mdp = molecule_design_pool_tbl m = mapper(Gene, rsg, id_attribute='gene_id', slug_expression=lambda cls: as_slug_expression(cls.accession), properties=dict( accession=column_property( rsg.c.accession, comparator_factory=CaseInsensitiveComparator ), locus_name=column_property( rsg.c.locus_name, comparator_factory=CaseInsensitiveComparator ), molecule_designs= relationship( MoleculeDesign, viewonly=True, secondary=mdg, primaryjoin=(mdg.c.gene_id == rsg.c.gene_id), secondaryjoin=(md.c.molecule_design_id == mdg.c.molecule_design_id), foreign_keys=(mdg.c.molecule_design_id, mdg.c.gene_id), back_populates='genes', ), molecule_design_pools= relationship( MoleculeDesignPool, viewonly=True, secondary=mdsg, primaryjoin=(mdsg.c.gene_id == rsg.c.gene_id), secondaryjoin=(mdsg.c.molecule_design_set_id == mdp.c.molecule_design_set_id), foreign_keys=(mdsg.c.molecule_design_set_id, mdsg.c.gene_id), ), species=relationship(Species, uselist=False, back_populates='genes', # lazy='joined' ), ), ) Gene.name = synonym('locus_name') return m
def create_mapper(planned_liquid_transfer_tbl): "Mapper factory." m = mapper( PlannedLiquidTransfer, planned_liquid_transfer_tbl, id_attribute='planned_liquid_transfer_id', properties=dict( _transfer_type=planned_liquid_transfer_tbl.c.transfer_type, _volume=planned_liquid_transfer_tbl.c.volume, _hash_value=planned_liquid_transfer_tbl.c.hash_value), slug_expression=lambda cls: as_slug_expression(cls._hash_value), # pylint: disable=W0212 polymorphic_on=planned_liquid_transfer_tbl.c.transfer_type, polymorphic_identity=TRANSFER_TYPES.LIQUID_TRANSFER) return m
def create_mapper(planned_liquid_transfer_tbl): "Mapper factory." m = mapper(PlannedLiquidTransfer, planned_liquid_transfer_tbl, id_attribute='planned_liquid_transfer_id', properties=dict( _transfer_type=planned_liquid_transfer_tbl.c.transfer_type, _volume=planned_liquid_transfer_tbl.c.volume, _hash_value=planned_liquid_transfer_tbl.c.hash_value ), slug_expression=lambda cls: as_slug_expression(cls._hash_value), # pylint: disable=W0212 polymorphic_on=planned_liquid_transfer_tbl.c.transfer_type, polymorphic_identity=TRANSFER_TYPES.LIQUID_TRANSFER ) return m
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
def create_mapper(project_tbl): "Mapper factory." m = mapper(Project, project_tbl, id_attribute='project_id', slug_expression=lambda cls: as_slug_expression(cls.label), properties=dict( customer=relationship(Organization, uselist=False), subprojects=relationship(Subproject, back_populates='project', cascade='all, delete-orphan' ), leader=relationship(User, uselist=False), ), ) return m
def create_mapper(pipetting_specs_tbl): "Mapper factory." tbl = pipetting_specs_tbl m = mapper( PipettingSpecs, pipetting_specs_tbl, id_attribute='pipetting_specs_id', slug_expression=lambda cls: as_slug_expression(cls._name), # pylint: disable=W0212 properties=dict(_name=tbl.c.name, _min_transfer_volume=tbl.c.min_transfer_volume, _max_transfer_volume=tbl.c.max_transfer_volume, _max_dilution_factor=tbl.c.max_dilution_factor, _has_dynamic_dead_volume=tbl.c.has_dynamic_dead_volume, _is_sector_bound=tbl.c.is_sector_bound)) return m
def create_mapper(pipetting_specs_tbl): "Mapper factory." tbl = pipetting_specs_tbl m = mapper(PipettingSpecs, pipetting_specs_tbl, id_attribute='pipetting_specs_id', slug_expression=lambda cls: as_slug_expression(cls._name), # pylint: disable=W0212 properties=dict( _name=tbl.c.name, _min_transfer_volume=tbl.c.min_transfer_volume, _max_transfer_volume=tbl.c.max_transfer_volume, _max_dilution_factor=tbl.c.max_dilution_factor, _has_dynamic_dead_volume=tbl.c.has_dynamic_dead_volume, _is_sector_bound=tbl.c.is_sector_bound) ) return m
def create_mapper(project_tbl): "Mapper factory." m = mapper( Project, project_tbl, id_attribute='project_id', slug_expression=lambda cls: as_slug_expression(cls.label), properties=dict( customer=relationship(Organization, uselist=False), subprojects=relationship(Subproject, back_populates='project', cascade='all, delete-orphan'), leader=relationship(User, uselist=False), ), ) return m
def create_mapper(rack_barcoded_location_tbl): "Mapper factory." # FIXME: The table should be renamed to barcoded_location_rack. m = mapper(BarcodedLocationRack, rack_barcoded_location_tbl, id_attribute='barcoded_location_id', slug_expression=lambda cls: as_slug_expression(cls.name), properties=dict( rack=relationship(Rack, uselist=False, # lazy='joined' ), location=relationship(BarcodedLocation, uselist=False) ), ) return m
def create_mapper(reservoir_specs_tbl): "Mapper factory." tbl = reservoir_specs_tbl m = mapper(ReservoirSpecs, reservoir_specs_tbl, id_attribute='reservoir_specs_id', slug_expression=lambda cls: as_slug_expression(cls._name), # pylint: disable=W0212 properties=dict( _rack_shape=relationship(RackShape, uselist=False, # lazy='joined' ), _name=tbl.c.name, _description=tbl.c.description, _max_volume=tbl.c.max_volume, _min_dead_volume=tbl.c.min_dead_volume, _max_dead_volume=tbl.c.max_dead_volume) ) return m
def create_mapper(dbuser_tbl): "Mapper factory." m = mapper( User, dbuser_tbl, id_attribute='db_user_id', slug_expression=lambda cls: as_slug_expression(cls.directory_user_id), properties=dict( username=column_property( dbuser_tbl.c.username, comparator_factory=CaseInsensitiveComparator), user_preferenceses=relationship(UserPreferences, back_populates='user', cascade='all, delete-orphan'), ), ) return m
def create_mapper(iso_tbl, job_tbl, iso_job_member_tbl, iso_pool_set_tbl): "Mapper factory." j = job_tbl ijm = iso_job_member_tbl m = mapper( Iso, iso_tbl, id_attribute='iso_id', slug_expression=lambda cls: as_slug_expression(cls.label), properties=dict( iso_request=relationship(IsoRequest, uselist=False, back_populates='isos'), molecule_design_pool_set=relationship(MoleculeDesignPoolSet, uselist=False, secondary=iso_pool_set_tbl), rack_layout=relationship(RackLayout, uselist=False, cascade='all,delete,delete-orphan', single_parent=True), iso_stock_racks=relationship(IsoStockRack, back_populates='iso', cascade='all,delete,delete-orphan'), iso_sector_stock_racks=relationship( IsoSectorStockRack, back_populates='iso', cascade='all,delete,delete-orphan'), iso_aliquot_plates=relationship(IsoAliquotPlate, back_populates='iso', cascade='all,delete-orphan'), iso_preparation_plates=relationship(IsoPreparationPlate, back_populates='iso'), iso_job=relationship( IsoJob, uselist=False, primaryjoin=(iso_tbl.c.iso_id == ijm.c.iso_id), secondaryjoin=(ijm.c.job_id == j.c.job_id), secondary=ijm, back_populates='isos', cascade='all'), ), polymorphic_on=iso_tbl.c.iso_type, polymorphic_identity=ISO_TYPES.BASE, ) return m
def create_mapper(dbuser_tbl): "Mapper factory." m = mapper(User, dbuser_tbl, id_attribute='db_user_id', slug_expression= lambda cls: as_slug_expression(cls.directory_user_id), properties=dict( username=column_property( dbuser_tbl.c.username, comparator_factory=CaseInsensitiveComparator ), user_preferenceses=relationship(UserPreferences, back_populates='user', cascade='all, delete-orphan' ), ), ) return m
def create_mapper(container_specs_tbl): "Mapper factory." cs = container_specs_tbl.alias('cs') polymorphic_select = select([ cs, (case([(cs.c.has_barcode, literal(CONTAINER_SPECS_TYPES.TUBE))], else_=literal(CONTAINER_SPECS_TYPES.WELL))).label( 'containerspecs_type') ], ).alias('containerspecs') m = mapper(ContainerSpecs, polymorphic_select, id_attribute='container_specs_id', slug_expression=lambda cls: as_slug_expression(cls.name), properties=dict(manufacturer=relationship(Organization), ), polymorphic_on=polymorphic_select.c.containerspecs_type, polymorphic_identity=CONTAINER_SPECS_TYPES.CONTAINER, ) return m
def create_mapper(molecule_type_tbl, molecule_type_modification_vw, chemical_structure_tbl): "Mapper factory." mt = molecule_type_tbl mtmv = molecule_type_modification_vw cs = chemical_structure_tbl m = mapper( MoleculeType, mt, id_attribute='molecule_type_id', slug_expression=lambda cls: as_slug_expression(cls.name), properties=dict(modifications=relationship( ChemicalStructure, secondary=mtmv, primaryjoin=mtmv.c.molecule_type_id == mt.c.molecule_type_id, secondaryjoin=cs.c.chemical_structure_id == mtmv.c.chemical_structure_id, viewonly=True), ), ) return m
def create_mapper(reservoir_specs_tbl): "Mapper factory." tbl = reservoir_specs_tbl m = mapper( ReservoirSpecs, reservoir_specs_tbl, id_attribute='reservoir_specs_id', slug_expression=lambda cls: as_slug_expression(cls._name), # pylint: disable=W0212 properties=dict( _rack_shape=relationship( RackShape, uselist=False, # lazy='joined' ), _name=tbl.c.name, _description=tbl.c.description, _max_volume=tbl.c.max_volume, _min_dead_volume=tbl.c.min_dead_volume, _max_dead_volume=tbl.c.max_dead_volume)) return m
def create_mapper(molecule_type_tbl, molecule_type_modification_vw, chemical_structure_tbl): "Mapper factory." mt = molecule_type_tbl mtmv = molecule_type_modification_vw cs = chemical_structure_tbl m = mapper( MoleculeType, mt, id_attribute="molecule_type_id", slug_expression=lambda cls: as_slug_expression(cls.name), properties=dict( modifications=relationship( ChemicalStructure, secondary=mtmv, primaryjoin=mtmv.c.molecule_type_id == mt.c.molecule_type_id, secondaryjoin=cs.c.chemical_structure_id == mtmv.c.chemical_structure_id, viewonly=True, ) ), ) return m
def create_mapper(iso_tbl, job_tbl, iso_job_member_tbl, iso_pool_set_tbl): "Mapper factory." j = job_tbl ijm = iso_job_member_tbl m = mapper(Iso, iso_tbl, id_attribute='iso_id', slug_expression=lambda cls: as_slug_expression(cls.label), properties= dict(iso_request=relationship(IsoRequest, uselist=False, back_populates='isos'), molecule_design_pool_set= relationship(MoleculeDesignPoolSet, uselist=False, secondary=iso_pool_set_tbl), rack_layout=relationship(RackLayout, uselist=False, cascade='all,delete,delete-orphan', single_parent=True), iso_stock_racks=relationship(IsoStockRack, back_populates='iso', cascade='all,delete,delete-orphan'), iso_sector_stock_racks=relationship(IsoSectorStockRack, back_populates='iso', cascade='all,delete,delete-orphan'), iso_aliquot_plates=relationship(IsoAliquotPlate, back_populates='iso', cascade='all,delete-orphan'), iso_preparation_plates=relationship(IsoPreparationPlate, back_populates='iso'), iso_job=relationship(IsoJob, uselist=False, primaryjoin=(iso_tbl.c.iso_id == ijm.c.iso_id), secondaryjoin=(ijm.c.job_id == j.c.job_id), secondary=ijm, back_populates='isos', cascade='all'), ), polymorphic_on=iso_tbl.c.iso_type, polymorphic_identity=ISO_TYPES.BASE, ) return m
def create_mapper(stock_info_vw, molecule_design_set_tbl, molecule_design_set_gene_tbl, refseq_gene_tbl): "Mapper factory." siv = stock_info_vw mds = molecule_design_set_tbl mdsg = molecule_design_set_gene_tbl rsg = refseq_gene_tbl m = mapper(StockInfo, stock_info_vw, id_attribute='stock_info_id', slug_expression=lambda cls: as_slug_expression(cls.stock_info_id), primary_key=[stock_info_vw.c.molecule_design_set_id, stock_info_vw.c.concentration], properties=dict( molecule_design_pool= relationship(MoleculeDesignPool, primaryjoin=(mds.c.molecule_design_set_id == siv.c.molecule_design_set_id), foreign_keys=[siv.c.molecule_design_set_id], uselist=False, # lazy='joined' ), molecule_type=relationship(MoleculeType, uselist=False, # lazy='joined' ), genes=relationship(Gene, viewonly=True, primaryjoin=(mdsg.c.molecule_design_set_id == siv.c.molecule_design_set_id), secondaryjoin=(rsg.c.gene_id == mdsg.c.gene_id), foreign_keys=(mdsg.c.molecule_design_set_id, mdsg.c.gene_id), secondary=molecule_design_set_gene_tbl, # lazy='joined' ), ), ) return m
def create_mapper(molecule_design_library_tbl, stock_sample_creation_iso_request_tbl, molecule_design_library_creation_iso_request_tbl): "Mapper factory." mdl = molecule_design_library_tbl sscir = stock_sample_creation_iso_request_tbl mdlcir = molecule_design_library_creation_iso_request_tbl m = mapper(MoleculeDesignLibrary, molecule_design_library_tbl, id_attribute='molecule_design_library_id', slug_expression=lambda cls: as_slug_expression(cls.label), properties=dict( molecule_design_pool_set= relationship(MoleculeDesignPoolSet, uselist=False, cascade='all,delete-orphan', single_parent=True), rack_layout=relationship(RackLayout, uselist=False, cascade='all,delete,delete-orphan', single_parent=True), creation_iso_request=relationship( StockSampleCreationIsoRequest, uselist=False, back_populates='molecule_design_library', primaryjoin=(mdl.c.molecule_design_library_id == \ mdlcir.c.molecule_design_library_id), secondaryjoin=(mdlcir.c.iso_request_id == \ sscir.c.iso_request_id), secondary=mdlcir, cascade='all,delete-orphan', single_parent=True), library_plates=relationship(LibraryPlate, back_populates='molecule_design_library', cascade='all,delete-orphan') ) ) return m
def customer_slug(cls): return as_slug_expression(cls.last_name + literal('-') + cls.first_name)
def project_slug(cls): return as_slug_expression(cls.name)
def species_slug(cls): return as_slug_expression(cls.genus_name + literal('-') + cls.species_name + literal('-') + cls.cultivar + literal('-') + cls.author)
def site_slug(cls): return as_slug_expression(cls.name)