Source code for pythonlab.resources.services.incubation
from pythonlab.resource import ServiceResource, Position, LabwareResource
import logging
[docs]
class IncubatorServiceResource(ServiceResource):
"""
multi-cavity / single cavity ?
associated labwares, like lids, stacks
:param Resource: [description]
:type Resource: [type]
"""
def __init__(self,
proc,
name: str,
capacity: int = 1):
super().__init__(proc=proc, name=name)
self._capacity = capacity
self._transfer_positon = Position(self, 0)
@property
def capacity(self):
return self._capacity
@property
def transfer_position(self):
return self._transfer_positon
[docs]
def init(self):
logging.debug("init incubator")
[docs]
def incubate(self, labware: LabwareResource, duration, temperature, shaking_frequency=0, **kwargs):
logging.debug(
f"Incubator: incubate {labware.name} for {duration} at T={temperature}")
kwargs.update(dict(fct='incubate', duration=duration, temperature=temperature,
frequency=shaking_frequency))
self.proc.add_process_step(self, [labware], **kwargs)
[docs]
class IncubatorServiceResourcePool(IncubatorServiceResource):
def __init__(self,
proc,
name: str = "incubator_pool",
capacity: int = 32):
super().__init__(proc=proc, name=name)