Exemplo n.º 1
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
Exemplo n.º 2
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
Exemplo n.º 3
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
Exemplo n.º 4
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
Exemplo n.º 5
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
Exemplo n.º 6
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
Exemplo n.º 7
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
Exemplo n.º 8
0
Arquivo: tag.py Projeto: 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
Exemplo n.º 9
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
Exemplo n.º 10
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
Exemplo n.º 11
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()
Exemplo n.º 12
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
Exemplo n.º 13
0
 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)
Exemplo n.º 14
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
Exemplo n.º 15
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
Exemplo n.º 16
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
Exemplo n.º 17
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()
Exemplo n.º 18
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
Exemplo n.º 19
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
Exemplo n.º 20
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
Exemplo n.º 21
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
Exemplo n.º 22
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
Exemplo n.º 23
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
Exemplo n.º 24
0
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
Exemplo n.º 25
0
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
Exemplo n.º 26
0
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
Exemplo n.º 27
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
Exemplo n.º 28
0
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
Exemplo n.º 29
0
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
Exemplo n.º 30
0
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
Exemplo n.º 31
0
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
Exemplo n.º 32
0
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
Exemplo n.º 33
0
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
Exemplo n.º 34
0
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
Exemplo n.º 35
0
Arquivo: iso.py Projeto: papagr/TheLMA
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
Exemplo n.º 36
0
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
Exemplo n.º 37
0
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
Exemplo n.º 38
0
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
Exemplo n.º 39
0
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
Exemplo n.º 40
0
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
Exemplo n.º 41
0
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
Exemplo n.º 42
0
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
Exemplo n.º 43
0
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
Exemplo n.º 44
0
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
Exemplo n.º 45
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
Exemplo n.º 46
0
def customer_slug(cls):
    return as_slug_expression(cls.last_name + literal('-') + cls.first_name)
Exemplo n.º 47
0
def project_slug(cls):
    return as_slug_expression(cls.name)
Exemplo n.º 48
0
def species_slug(cls):
    return as_slug_expression(cls.genus_name + literal('-') +
                              cls.species_name + literal('-') +
                              cls.cultivar + literal('-') +
                              cls.author)
Exemplo n.º 49
0
def site_slug(cls):
    return as_slug_expression(cls.name)