Rack

A framework for holding or storing labware in pre-defined spots.

MRO
Bases
Group[S], typing.Generic[S, T]
Decorators
dataclasses.dataclass

Methods

  • __init__(
      self,
      children : collections.abc.Sequence[S],
      filled_with : dataclasses.InitVar[typing.Union[None, T, type[T]]],
      filled_at : dataclasses.InitVar[typing.Optional[collections.abc.Sequence[typing.SupportsIndex]]]
    ) -> None

    Parameters

    • Name
      self
      Type
      Default
      Description

    • Name
      children
      Type
      collections.abc.Sequence[S]
      Default
      Description

    • Name
      filled_with
      Type
      dataclasses.InitVar[typing.Union[None, T, type[T]]]
      Default
      = None
      Description

      The type of labware this rack is filled with.

    • 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.

  • __post_init__(
      self,
      filled_with : typing.Union[None, T, type[T]],
      filled_at : typing.Optional[collections.abc.Sequence[typing.SupportsIndex]],
      *kwargs
    ) -> None

    Parameters

    • Name
      self
      Type
      Default
      Description

    • Name
      filled_with
      Type
      typing.Union[None, T, type[T]]
      Default
      Description

    • Name
      filled_at
      Type
      typing.Optional[collections.abc.Sequence[typing.SupportsIndex]]
      Default
      Description

    • Name
      *kwargs
      Type
      Default
      = ()
      Description

  • get(self, key : typing.Union[int, str]) -> typing.Optional[T]

    Access the labware in 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 which to access the labware.

    Response

    Type
    typing.Optional[T]
    Description

  • @log()

    add(self, labware : T, key : typing.Union[int, str]) -> None

    Add 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()

    fill(self, labware : typing.Union[T, type[T], collections.abc.Sequence[T]], spots : typing.Optional[collections.abc.Sequence[Spot[T]]]) -> None

    Fill the spots of the rack with the given labware.

    Parameters

    • Name
      self
      Type
      Default
      Description

    • Name
      labware
      Type
      typing.Union[T, type[T], collections.abc.Sequence[T]]
      Default
      Description

      The labware to assign to the spots. Pass either a class or instance of labware that is copied or a list with the labware instance for each spot.

    • Name
      spots
      Type
      typing.Optional[collections.abc.Sequence[Spot[T]]]
      Default
      = None
      Description

      The spots in which to assign 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

    • Name
      spots
      Type
      typing.Optional[collections.abc.Sequence[Spot[T]]]
      Default
      = None
      Description

      The spots from which to unassign the labware.

    Response

    Type
    collections.abc.Sequence[typing.Optional[T]]
    Description

    The list of labware that was removed, if any.

  • __setitem__(self, key : typing.Union[int, str, slice], value : typing.Union[typing.Optional[T], collections.abc.Sequence[typing.Optional[T]]]) -> None

    Parameters

    • Name
      self
      Type
      Default
      Description

    • Name
      key
      Type
      typing.Union[int, str, slice]
      Default
      Description

    • Name
      value
      Type
      typing.Union[typing.Optional[T], collections.abc.Sequence[typing.Optional[T]]]
      Default
      Description

  • __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) -> None

    Parameters

    • 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

  • __getitem__(self, key : typing.Union[int, str, slice]) -> typing.Union[T, collections.abc.Sequence[T]]

    Parameters

    • Name
      self
      Type
      Default
      Description

    • Name
      key
      Type
      typing.Union[int, str, slice]
      Default
      Description

    Response

    Type
    typing.Union[T, collections.abc.Sequence[T]]
    Description

  • __len__(self) -> int

    The number of children in this group.

    Response

    Type
    int
    Description

    The number of children in this group.

  • __iter__(self) -> collections.abc.Iterator[T]

    Iterate over the children of this group.

    Response

    Type
    collections.abc.Iterator[T]
    Description

    An iterator to iterate over all 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

  • serialize(self) -> JsonSchema

    Response

    Type
    JsonSchema
    Description

  • assign_to(self, parent : Group) -> None

    Set the parent of this resource to the given group.

    Parameters

    • Name
      self
      Type
      Default
      Description

    • Name
      parent
      Type
      Group
      Default
      Description

      The group to which this resource is assigned to.

  • @deprecation.deprecated(deprecated_in='0.1.20', removed_in='0.2.0', current_version=__version__, details='Use `rotate_by` instead.')

    rotate(self, angle : int) -> None

    Parameters

    • 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.Self

    Deserialize 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[S]
    Value

    = dataclasses.field(repr=False, default_factory=list)

    Description

  • Name
    logger
    Type
    logging.Logger
    Value

    = None

    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.

Copyright © 2024