unitelabs.labware.tubes
Packages
Attributes
- Name
__all__
- Type
- Value
= [ "Tube", "TubeSpot", "TubeRack", "Cap" ]
- Description
Classes
Cap
Cap for tubes.
Methods
__init__(self) -> None
__post_init__(self, *_kwargs) -> None
Parameters
- Name
self
- Type
- Default
- Description
- Name
*_kwargs
- Type
- Default
- = ()
- Description
__init_subclass__(cls) -> None
Parameters
- Name
cls
- Type
- Default
- Description
@deprecation.deprecated(deprecated_in='0.1.20', removed_in='0.2.0', current_version=__version__, details='Use `rotate_by` instead.')
rotate(self, angle : int) -> NoneParameters
- Name
self
- Type
- Default
- Description
- Name
angle
- Type
- int
- Default
- Description
rotate_by(self, angle : int) -> None
Rotate clockwise by the given angle in degrees. Use negative numbers for counter clockwise rotation.
Parameters
- Name
self
- Type
- Default
- Description
- Name
angle
- Type
- int
- Default
- Description
The angle in degrees to rotate the resource. Must be a multiple of 90°.
rotate_to(self, angle : int) -> None
Rotate to the given absolute angle in degrees.
Parameters
- Name
self
- Type
- Default
- Description
- Name
angle
- Type
- int
- Default
- Description
The angle in degrees to rotate the resource. Must be a multiple of 90°.
find(self, identifier : str) -> Resource
Find a resource by its identifier.
Parameters
- Name
self
- Type
- Default
- Description
- Name
identifier
- Type
- str
- Default
- Description
The resource's identifier to search for.
Response
- Type
- Resource
- Description
The resource with the corresponding identifier.
Exceptions
- Type
- TypeError
- Description
- If the identifier is a non string value.
- Type
- MissingResourceError
- Description
- If the resource could not be found.
__contains__(self, item : typing.Any) -> bool
Check whether a resource is assigned to this resource.
Parameters
- Name
self
- Type
- Default
- Description
- Name
item
- Type
- typing.Any
- Default
- Description
The resource to search for.
Response
- Type
- bool
- Description
True if the resource could be found, False otherwise.
copy(self, **changes) -> typing_extensions.Self
Return a copy of this resource.
Parameters
- Name
self
- Type
- Default
- Description
- Name
**changes
- Type
- Default
- = {}
- Description
Replace fields with values from `changes`.
Response
- Type
- typing_extensions.Self
- Description
A copy of this resource.
serialize(self) -> JsonSchema
Serialize this resource as a JSON-like dictionary.
Response
- Type
- JsonSchema
- Description
The JSON-like dictionary with the resource's data.
@classmethod
deserialize(cls, identifier : str, schema : JsonSchema) -> typing_extensions.SelfDeserialize a JSON-like dictionary to a resource.
Parameters
- Name
cls
- Type
- Default
- Description
- Name
identifier
- Type
- str
- Default
- Description
The identifier of the resource to deserialize.
- Name
schema
- Type
- JsonSchema
- Default
- Description
The JSON-like dictionary with the resource's data.
Response
- Type
- typing_extensions.Self
- Description
The newly created resource.
@classmethod
subclass_by_name(cls, name : str) -> typing.Optional[type[Resource]]Recursively find a resource subclass with the given name.
Parameters
- Name
cls
- Type
- Default
- Description
- Name
name
- Type
- str
- Default
- Description
The name of the class to find.
Response
- Type
- typing.Optional[type[Resource]]
- Description
The class with the given name, or `None` if no such class exists.
Exceptions
- Type
- TypeError
- Description
- If the name is not a valid class name.
Attributes
- Name
identifier
- Type
- str
- Value
= dataclasses.field(default_factory=lambda: str(uuid.uuid4().hex[:8]))
- Description
- Name
rotation
- Type
- int
- Value
= 0
- Description
- Name
dimensions
- Type
- Vector
- Value
= dataclasses.field(default_factory=Vector)
- Description
- Name
location
- Type
- typing.Optional[Vector]
- Value
= None
- Description
- Name
Schema
- Type
- type[marshmallow.Schema]
- Value
= marshmallow.Schema
- Description
- Name
name
- Type
- str
- Value
= None
- Description
A human readable name to identify resources.
- Name
absolute_location
- Type
- Vector
- Value
= None
- Description
The absolute location of this resource.
- Name
width
- Type
- decimal.Decimal
- Value
= None
- Description
The size of the resource along the x-axis.
- Name
depth
- Type
- decimal.Decimal
- Value
= None
- Description
The size of the resource along the y-axis.
- Name
height
- Type
- decimal.Decimal
- Value
= None
- Description
The size of the resource along the z-axis.
- Name
center
- Type
- Vector
- Value
= None
- Description
The center base of this resource.
Tube
Methods
__post_init__(self, *kwargs) -> None
Parameters
- Name
self
- Type
- Default
- Description
- Name
*kwargs
- Type
- Default
- = ()
- Description
__init_subclass__(cls) -> None
Parameters
- Name
cls
- Type
- Default
- Description
@typing_extensions.override
rotate_by(self, angle : int) -> NoneParameters
- Name
self
- Type
- Default
- Description
- Name
angle
- Type
- int
- Default
- Description
find(self, identifier) -> None
Parameters
- Name
self
- Type
- Default
- Description
- Name
identifier
- Type
- Default
- Description
__contains__(self, item : typing.Any) -> bool
Parameters
- Name
self
- Type
- Default
- Description
- Name
item
- Type
- typing.Any
- Default
- Description
Response
- Type
- bool
- Description
__len__(self) -> int
The number of children in this group.
Response
- Type
- int
- Description
The number of children in this group.
_index(self, key : typing.Union[int, str, slice]) -> typing.Union[int, slice]
Parameters
- Name
self
- Type
- Default
- Description
- Name
key
- Type
- typing.Union[int, str, slice]
- Default
- Description
Response
- Type
- typing.Union[int, slice]
- Description
copy(self, **changes) -> None
Parameters
- Name
self
- Type
- Default
- Description
- Name
**changes
- Type
- Default
- = {}
- Description
@deprecation.deprecated(deprecated_in='0.1.20', removed_in='0.2.0', current_version=__version__, details='Use `rotate_by` instead.')
rotate(self, angle : int) -> NoneParameters
- Name
self
- Type
- Default
- Description
- Name
angle
- Type
- int
- Default
- Description
rotate_to(self, angle : int) -> None
Rotate to the given absolute angle in degrees.
Parameters
- Name
self
- Type
- Default
- Description
- Name
angle
- Type
- int
- Default
- Description
The angle in degrees to rotate the resource. Must be a multiple of 90°.
@classmethod
deserialize(cls, identifier : str, schema : JsonSchema) -> typing_extensions.SelfDeserialize a JSON-like dictionary to a resource.
Parameters
- Name
cls
- Type
- Default
- Description
- Name
identifier
- Type
- str
- Default
- Description
The identifier of the resource to deserialize.
- Name
schema
- Type
- JsonSchema
- Default
- Description
The JSON-like dictionary with the resource's data.
Response
- Type
- typing_extensions.Self
- Description
The newly created resource.
@classmethod
subclass_by_name(cls, name : str) -> typing.Optional[type[Resource]]Recursively find a resource subclass with the given name.
Parameters
- Name
cls
- Type
- Default
- Description
- Name
name
- Type
- str
- Default
- Description
The name of the class to find.
Response
- Type
- typing.Optional[type[Resource]]
- Description
The class with the given name, or `None` if no such class exists.
Exceptions
- Type
- TypeError
- Description
- If the name is not a valid class name.
Attributes
- Name
cap
- Type
- typing.Optional[Cap]
- Value
= dataclasses.field(repr=False, default=None)
- Description
- Name
has_cap
- Type
- bool
- Value
= None
- Description
- Name
container
- Type
- Container
- Value
= dataclasses.field(default_factory=Container)
- Description
- Name
children
- Type
- collections.abc.Sequence[T]
- Value
= dataclasses.field(metadata={'marshmallow_field': marshmallow.fields.List(ChildrenField(Resource.Schema(), 'identifier'))}, repr=False, default_factory=list)
- Description
- Name
tags
- Type
- dict
- Value
= dataclasses.field(default_factory=dict)
- Description
- Name
identifier
- Type
- str
- Value
= dataclasses.field(default_factory=lambda: str(uuid.uuid4().hex[:8]))
- Description
- Name
rotation
- Type
- int
- Value
= 0
- Description
- Name
dimensions
- Type
- Vector
- Value
= dataclasses.field(default_factory=Vector)
- Description
- Name
location
- Type
- typing.Optional[Vector]
- Value
= None
- Description
- Name
Schema
- Type
- type[marshmallow.Schema]
- Value
= marshmallow.Schema
- Description
- Name
name
- Type
- str
- Value
= None
- Description
A human readable name to identify resources.
- Name
absolute_location
- Type
- Vector
- Value
= None
- Description
The absolute location of this resource.
- Name
width
- Type
- decimal.Decimal
- Value
= None
- Description
The size of the resource along the x-axis.
- Name
depth
- Type
- decimal.Decimal
- Value
= None
- Description
The size of the resource along the y-axis.
- Name
height
- Type
- decimal.Decimal
- Value
= None
- Description
The size of the resource along the z-axis.
- Name
center
- Type
- Vector
- Value
= None
- Description
The center base of this resource.
TubeRack
Hold multiple tubes in a rack.
Methods
__init__(
- self,
- tags : dict,
- children : collections.abc.Sequence[S],
- filled_at : dataclasses.InitVar[typing.Optional[collections.abc.Sequence[typing.SupportsIndex]]],
- cols : int,
- rows : int
Parameters
- Name
self
- Type
- Default
- Description
- Name
tags
- Type
- dict
- Default
- Description
- Name
children
- Type
- collections.abc.Sequence[S]
- Default
- Description
- Name
filled_at
- Type
- dataclasses.InitVar[typing.Optional[collections.abc.Sequence[typing.SupportsIndex]]]
- Default
- = None
- Description
Indices in which spots to fill the labware. Defaults to all spots.
- Name
cols
- Type
- int
- Default
- = 6
- Description
The number of tips in the x direction.
- Name
rows
- Type
- int
- Default
- = 4
- Description
The number of tips in the y direction.
@typing_extensions.override
_index(self, key : typing.Union[int, str, slice]) -> typing.Union[int, slice]Parameters
- Name
self
- Type
- Default
- Description
- Name
key
- Type
- typing.Union[int, str, slice]
- Default
- Description
Response
- Type
- typing.Union[int, slice]
- Description
__post_init__(
- self,
- filled_at : typing.Optional[collections.abc.Sequence[typing.SupportsIndex]],
- *kwargs
Parameters
@log()
add(self, labware : T, key : typing.Union[int, str]) -> NoneAdd labware to the spot at the given key.
Parameters
- Name
self
- Type
- Default
- Description
- Name
labware
- Type
- T
- Default
- Description
The labware to add to the spot.
- Name
key
- Type
- typing.Union[int, str]
- Default
- Description
The key of the spot where to add the labware.
@log()
remove(self, key : typing.Union[int, str]) -> typing.Optional[T]Remove labware from the spot at the given key.
Parameters
- Name
self
- Type
- Default
- Description
- Name
key
- Type
- typing.Union[int, str]
- Default
- Description
The key of the spot from where to remove the labware.
Response
- Type
- typing.Optional[T]
- Description
The labware that was removed, if any.
@log()
clear(self, spots : typing.Optional[collections.abc.Sequence[Spot[T]]]) -> collections.abc.Sequence[typing.Optional[T]]Clear the spots of the rack.
Parameters
- Name
self
- Type
- Default
- Description
Response
- Type
- collections.abc.Sequence[typing.Optional[T]]
- Description
The list of labware that was removed, if any.
__delitem__(self, key : typing.Union[int, str, slice]) -> None
Parameters
- Name
self
- Type
- Default
- Description
- Name
key
- Type
- typing.Union[int, str, slice]
- Default
- Description
__init_subclass__(cls) -> None
Parameters
- Name
cls
- Type
- Default
- Description
@typing_extensions.override
rotate_by(self, angle : int) -> NoneParameters
- Name
self
- Type
- Default
- Description
- Name
angle
- Type
- int
- Default
- Description
find(self, identifier) -> None
Parameters
- Name
self
- Type
- Default
- Description
- Name
identifier
- Type
- Default
- Description
__contains__(self, item : typing.Any) -> bool
Parameters
- Name
self
- Type
- Default
- Description
- Name
item
- Type
- typing.Any
- Default
- Description
Response
- Type
- bool
- Description
__len__(self) -> int
The number of children in this group.
Response
- Type
- int
- Description
The number of children in this group.
copy(self, **changes) -> None
Parameters
- Name
self
- Type
- Default
- Description
- Name
**changes
- Type
- Default
- = {}
- Description
@deprecation.deprecated(deprecated_in='0.1.20', removed_in='0.2.0', current_version=__version__, details='Use `rotate_by` instead.')
rotate(self, angle : int) -> NoneParameters
- Name
self
- Type
- Default
- Description
- Name
angle
- Type
- int
- Default
- Description
rotate_to(self, angle : int) -> None
Rotate to the given absolute angle in degrees.
Parameters
- Name
self
- Type
- Default
- Description
- Name
angle
- Type
- int
- Default
- Description
The angle in degrees to rotate the resource. Must be a multiple of 90°.
@classmethod
deserialize(cls, identifier : str, schema : JsonSchema) -> typing_extensions.SelfDeserialize a JSON-like dictionary to a resource.
Parameters
- Name
cls
- Type
- Default
- Description
- Name
identifier
- Type
- str
- Default
- Description
The identifier of the resource to deserialize.
- Name
schema
- Type
- JsonSchema
- Default
- Description
The JSON-like dictionary with the resource's data.
Response
- Type
- typing_extensions.Self
- Description
The newly created resource.
@classmethod
subclass_by_name(cls, name : str) -> typing.Optional[type[Resource]]Recursively find a resource subclass with the given name.
Parameters
- Name
cls
- Type
- Default
- Description
- Name
name
- Type
- str
- Default
- Description
The name of the class to find.
Response
- Type
- typing.Optional[type[Resource]]
- Description
The class with the given name, or `None` if no such class exists.
Exceptions
- Type
- TypeError
- Description
- If the name is not a valid class name.
Attributes
- Name
cols
- Type
- int
- Value
= 6
- Description
- Name
rows
- Type
- int
- Value
= 4
- Description
- Name
children
- Type
- collections.abc.Sequence[S]
- Value
= dataclasses.field(repr=False, default_factory=list)
- Description
- Name
logger
- Type
- logging.Logger
- Value
= None
- Description
- Name
tags
- Type
- dict
- Value
= dataclasses.field(default_factory=dict)
- Description
- Name
identifier
- Type
- str
- Value
= dataclasses.field(default_factory=lambda: str(uuid.uuid4().hex[:8]))
- Description
- Name
rotation
- Type
- int
- Value
= 0
- Description
- Name
dimensions
- Type
- Vector
- Value
= dataclasses.field(default_factory=Vector)
- Description
- Name
location
- Type
- typing.Optional[Vector]
- Value
= None
- Description
- Name
Schema
- Type
- type[marshmallow.Schema]
- Value
= marshmallow.Schema
- Description
- Name
name
- Type
- str
- Value
= None
- Description
A human readable name to identify resources.
- Name
absolute_location
- Type
- Vector
- Value
= None
- Description
The absolute location of this resource.
- Name
width
- Type
- decimal.Decimal
- Value
= None
- Description
The size of the resource along the x-axis.
- Name
depth
- Type
- decimal.Decimal
- Value
= None
- Description
The size of the resource along the y-axis.
- Name
height
- Type
- decimal.Decimal
- Value
= None
- Description
The size of the resource along the z-axis.
- Name
center
- Type
- Vector
- Value
= None
- Description
The center base of this resource.
TubeSpot
Optionally hold a tube at a predefined location on a tube rack.
Methods
can_unassign(
- self,
- resource : typing.Optional[Resource],
- **kwargs
Verify whether the given resource can be unassigned from this group.
Parameters
- Name
self
- Type
- Default
- Description
- Name
resource
- Type
- typing.Optional[Resource]
- Default
- = None
- Description
The resource to unassign from this group.
- Name
**kwargs
- Type
- Default
- = {}
- Description
Additional arguments for the group.
Response
- Type
- typing_extensions.TypeGuard[T]
- Description
True if the resource can be unassigned, otherwise raise an error.
unassign(
- self,
- resource : typing.Optional[Resource],
- **kwargs
Unassign the given resource from this group.
Parameters
- Name
self
- Type
- Default
- Description
- Name
resource
- Type
- typing.Optional[Resource]
- Default
- = None
- Description
The resource to unassign from this group.
- Name
**kwargs
- Type
- Default
- = {}
- Description
Additional arguments for the group.
reassign(
- self,
- to : Spot,
- resource : typing.Optional[Resource],
- **kwargs
Unassign the given resource from this group and assign it another one.
Parameters
- Name
self
- Type
- Default
- Description
- Name
to
- Type
- Spot
- Default
- Description
The target group to which to assign the resource to.
- Name
resource
- Type
- typing.Optional[Resource]
- Default
- = None
- Description
The resource to reassign from this group to the other one.
- Name
**kwargs
- Type
- Default
- = {}
- Description
Additional arguments for the group.
__post_init__(self, *kwargs) -> None
Parameters
- Name
self
- Type
- Default
- Description
- Name
*kwargs
- Type
- Default
- = ()
- Description
__init_subclass__(cls) -> None
Parameters
- Name
cls
- Type
- Default
- Description
@typing_extensions.override
rotate_by(self, angle : int) -> NoneParameters
- Name
self
- Type
- Default
- Description
- Name
angle
- Type
- int
- Default
- Description
find(self, identifier) -> None
Parameters
- Name
self
- Type
- Default
- Description
- Name
identifier
- Type
- Default
- Description
__contains__(self, item : typing.Any) -> bool
Parameters
- Name
self
- Type
- Default
- Description
- Name
item
- Type
- typing.Any
- Default
- Description
Response
- Type
- bool
- Description
__len__(self) -> int
The number of children in this group.
Response
- Type
- int
- Description
The number of children in this group.
_index(self, key : typing.Union[int, str, slice]) -> typing.Union[int, slice]
Parameters
- Name
self
- Type
- Default
- Description
- Name
key
- Type
- typing.Union[int, str, slice]
- Default
- Description
Response
- Type
- typing.Union[int, slice]
- Description
copy(self, **changes) -> None
Parameters
- Name
self
- Type
- Default
- Description
- Name
**changes
- Type
- Default
- = {}
- Description
@deprecation.deprecated(deprecated_in='0.1.20', removed_in='0.2.0', current_version=__version__, details='Use `rotate_by` instead.')
rotate(self, angle : int) -> NoneParameters
- Name
self
- Type
- Default
- Description
- Name
angle
- Type
- int
- Default
- Description
rotate_to(self, angle : int) -> None
Rotate to the given absolute angle in degrees.
Parameters
- Name
self
- Type
- Default
- Description
- Name
angle
- Type
- int
- Default
- Description
The angle in degrees to rotate the resource. Must be a multiple of 90°.
@classmethod
deserialize(cls, identifier : str, schema : JsonSchema) -> typing_extensions.SelfDeserialize a JSON-like dictionary to a resource.
Parameters
- Name
cls
- Type
- Default
- Description
- Name
identifier
- Type
- str
- Default
- Description
The identifier of the resource to deserialize.
- Name
schema
- Type
- JsonSchema
- Default
- Description
The JSON-like dictionary with the resource's data.
Response
- Type
- typing_extensions.Self
- Description
The newly created resource.
@classmethod
subclass_by_name(cls, name : str) -> typing.Optional[type[Resource]]Recursively find a resource subclass with the given name.
Parameters
- Name
cls
- Type
- Default
- Description
- Name
name
- Type
- str
- Default
- Description
The name of the class to find.
Response
- Type
- typing.Optional[type[Resource]]
- Description
The class with the given name, or `None` if no such class exists.
Exceptions
- Type
- TypeError
- Description
- If the name is not a valid class name.
Attributes
- Name
children
- Type
- collections.abc.Sequence[typing.Optional[T]]
- Value
= dataclasses.field(init=False, repr=False, default_factory=lambda: [None])
- Description
- Name
child
- Type
- typing.Optional[T]
- Value
= None
- Description
Request the resource in this spot or `None` if the spot is empty.
- Name
identifier
- Type
- str
- Value
= dataclasses.field(default_factory=lambda: str(uuid.uuid4().hex[:8]))
- Description
- Name
rotation
- Type
- int
- Value
= 0
- Description
- Name
dimensions
- Type
- Vector
- Value
= dataclasses.field(default_factory=Vector)
- Description
- Name
location
- Type
- typing.Optional[Vector]
- Value
= None
- Description
- Name
Schema
- Type
- type[marshmallow.Schema]
- Value
= marshmallow.Schema
- Description
- Name
name
- Type
- str
- Value
= None
- Description
A human readable name to identify resources.
- Name
absolute_location
- Type
- Vector
- Value
= None
- Description
The absolute location of this resource.
- Name
width
- Type
- decimal.Decimal
- Value
= None
- Description
The size of the resource along the x-axis.
- Name
depth
- Type
- decimal.Decimal
- Value
= None
- Description
The size of the resource along the y-axis.
- Name
height
- Type
- decimal.Decimal
- Value
= None
- Description
The size of the resource along the z-axis.
- Name
center
- Type
- Vector
- Value
= None
- Description
The center base of this resource.