Descriptions

Descriptions are the data structures used to describe entities in the T-code fleet, including robots, tools, labware, and their component shapes.

For more information, see the following documents:

Documentation

TCode entity and labware description/descriptor schemas.

class tcode_api.schemas.descriptions.AxisAlignedRectangleDescription(**data)

Description of an axis-aligned rectangle.

Parameters:
  • schema_version (Literal[1])

  • type (Literal['AxisAlignedRectangle'])

  • x_length (Annotated[ValueWithUnits, FieldInfo(annotation=NoneType, required=True, description="The length of the rectangle along the X-axis of the parent object's coordinate system. expects length units.")])

  • y_length (Annotated[ValueWithUnits, FieldInfo(annotation=NoneType, required=True, description="The length of the rectangle along the Y-axis of the parent object's coordinate system. expects length units.")])

model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'strict': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class tcode_api.schemas.descriptions.AxisAlignedRectangleDescriptor(**data)

:class:AxisAlignedRectangleDescription with optional parameters.

Parameters:
  • schema_version (Literal[1])

  • type (Literal['AxisAlignedRectangle'])

  • x_length (Annotated[ValueWithUnits, FieldInfo(annotation=NoneType, required=True, description="The length of the rectangle along the X-axis of the parent object's coordinate system. expects length units.")] | None)

  • y_length (Annotated[ValueWithUnits, FieldInfo(annotation=NoneType, required=True, description="The length of the rectangle along the Y-axis of the parent object's coordinate system. expects length units.")] | None)

model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'strict': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class tcode_api.schemas.descriptions.CircleDescription(**data)

Description of a circle.

Parameters:
  • schema_version (Literal[1])

  • type (Literal['Circle'])

  • diameter (Annotated[ValueWithUnits, FieldInfo(annotation=NoneType, required=True, description='Maximum distance across the circle. expects length units')])

model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'strict': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class tcode_api.schemas.descriptions.CircleDescriptor(**data)

CircleDescription with optional parameters.

Parameters:
  • schema_version (Literal[1])

  • type (Literal['Circle'])

  • diameter (Annotated[ValueWithUnits, FieldInfo(annotation=NoneType, required=True, description='Maximum distance across the circle. expects length units')] | None)

model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'strict': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class tcode_api.schemas.descriptions.ConicalBottomDescription(**data)

Description of a conical bottom well.

Note:

It is assumed that the conical portion of the well comes to a point at the bottom of the well

Parameters:
  • schema_version (Literal[1])

  • type (Literal['Conical'])

  • offset (Annotated[ValueWithUnits, FieldInfo(annotation=NoneType, required=True, description='The distance from the base to tip of the conical portion of the well. expects length units')])

model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'strict': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class tcode_api.schemas.descriptions.ConicalBottomDescriptor(**data)

:class:ConicalBottomDescription with optional parameters.

Parameters:
  • schema_version (Literal[1])

  • type (Literal['Conical'])

  • offset (Annotated[ValueWithUnits, FieldInfo(annotation=NoneType, required=True, description='The distance from the base to tip of the conical portion of the well. expects length units')] | None)

model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'strict': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class tcode_api.schemas.descriptions.EightChannelPipetteDescriptor(**data)
Parameters:
model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'strict': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class tcode_api.schemas.descriptions.FlatBottomDescription(**data)

:class:FlatBottomDescription with optional paramters.

Parameters:
  • schema_version (Literal[1])

  • type (Literal['Flat'])

model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'strict': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class tcode_api.schemas.descriptions.FlatBottomDescriptor(**data)

Descriptor for a flat bottom well.

Parameters:
  • schema_version (Literal[1])

  • type (Literal['Flat'])

model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'strict': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class tcode_api.schemas.descriptions.GridDescription(**data)

Description of a grid layout.

Parameters:
  • schema_version (Literal[1])

  • type (Literal['Grid'])

  • row_count (Annotated[int, Gt(gt=0), FieldInfo(annotation=NoneType, required=True, description='The number of rows in the grid.')])

  • column_count (Annotated[int, Gt(gt=0), FieldInfo(annotation=NoneType, required=True, description='The number of columns in the grid.')])

  • row_pitch (Annotated[ValueWithUnits, FieldInfo(annotation=NoneType, required=True, description='The distance between the centers of adjacent rows in the grid. Expects length units.')])

  • column_pitch (Annotated[ValueWithUnits, FieldInfo(annotation=NoneType, required=True, description='The distance between the centers of adjacent columns in the grid. Expects length units.')])

  • row_offset (Annotated[ValueWithUnits, FieldInfo(annotation=NoneType, required=True, description="The offset distance from the grid's origin to the center of its parent, measured along the row axis. Modify this value when creating labware whose well grids aren't symmetric.Expects length units.")])

  • column_offset (Annotated[ValueWithUnits, FieldInfo(annotation=NoneType, required=True, description="The offset distance from the grid's origin to the center of its parent, measured along the column axis. Modify this value when creating labware whose well grids aren't symmetric.Expects length units.")])

model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'strict': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class tcode_api.schemas.descriptions.GridDescriptor(**data)

:class:GridDescription with optional parameters.

Parameters:
  • schema_version (Literal[1])

  • type (Literal['Grid'])

  • row_count (Annotated[int, Gt(gt=0), FieldInfo(annotation=NoneType, required=True, description='The number of rows in the grid.')] | None)

  • column_count (Annotated[int, Gt(gt=0), FieldInfo(annotation=NoneType, required=True, description='The number of columns in the grid.')] | None)

  • row_pitch (Annotated[ValueWithUnits, FieldInfo(annotation=NoneType, required=True, description='The distance between the centers of adjacent rows in the grid. Expects length units.')] | None)

  • column_pitch (Annotated[ValueWithUnits, FieldInfo(annotation=NoneType, required=True, description='The distance between the centers of adjacent columns in the grid. Expects length units.')] | None)

  • row_offset (Annotated[ValueWithUnits, FieldInfo(annotation=NoneType, required=True, description="The offset distance from the grid's origin to the center of its parent, measured along the row axis. Modify this value when creating labware whose well grids aren't symmetric.Expects length units.")] | None)

  • column_offset (Annotated[ValueWithUnits, FieldInfo(annotation=NoneType, required=True, description="The offset distance from the grid's origin to the center of its parent, measured along the column axis. Modify this value when creating labware whose well grids aren't symmetric.Expects length units.")] | None)

model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'strict': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class tcode_api.schemas.descriptions.GripperDescriptor(**data)
Parameters:
  • schema_version (Literal[1])

  • serial_number (str | None)

  • type (Literal['Gripper'])

model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'strict': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class tcode_api.schemas.descriptions.LabwareHolderDescriptor(**data)

Descriptor for an entity that can hold labware.

Parameters:
  • schema_version (Literal[1])

  • type (Literal['LabwareHolder'])

model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'strict': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class tcode_api.schemas.descriptions.LidDescription(**data)

Description of a plate lid.

Parameters:
  • schema_version (Literal[4])

  • tags (Annotated[list[str], FieldInfo(annotation=NoneType, required=False, default_factory=list, description='List of additional string tags attached to the entity.')])

  • named_tags (Annotated[dict[str, str | int | float | bool], FieldInfo(annotation=NoneType, required=False, default_factory=dict, description='Map of names and values of named tags attached to the entity. Values can be strings, numbers, or booleans.')])

  • x_length (Annotated[ValueWithUnits, FieldInfo(annotation=NoneType, required=True, description="The labware's extent along the x-axis of it's coordinate system. Expects length units.")])

  • y_length (Annotated[ValueWithUnits, FieldInfo(annotation=NoneType, required=True, description="The labware's extent along the y-axis of it's coordinate system. Expects length units.")])

  • z_length (Annotated[ValueWithUnits, FieldInfo(annotation=NoneType, required=True, description="The labware's extent along the z-axis of it's coordinate system. Expects length units.")])

  • pinchable (Annotated[bool, FieldInfo(annotation=NoneType, required=True, description='Whether the labware can be lifted by a Trilobot using a pinch grip.')])

  • pinch_offset_transform (Annotated[list[list[float]], FieldInfo(annotation=NoneType, required=True, description='A 3D 4x4 transformation matrix represented in row-major order. Used to represent the position and orientation in 3D space.'), FieldInfo(annotation=NoneType, required=True, description="Transform from the center of the labware's footprint to the center of the pinchable location on the labware. Must be provided if `pinchable` is `True`.")] | None)

  • type (Literal['Lid'])

  • stackable (Annotated[bool, FieldInfo(annotation=NoneType, required=True, description='Whether the lid supports stacking an ANSI-SLAS-compliant labware on top of it.')])

model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'strict': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class tcode_api.schemas.descriptions.LidDescriptor(**data)

LidDescription with optional parameters.

Parameters:
  • schema_version (Literal[4])

  • tags (Annotated[list[str], FieldInfo(annotation=NoneType, required=False, default_factory=list, description='List of additional string tags attached to the entity.')])

  • named_tags (Annotated[dict[str, str | int | float | bool], FieldInfo(annotation=NoneType, required=False, default_factory=dict, description='Map of names and values of named tags attached to the entity. Values can be strings, numbers, or booleans.')])

  • x_length (Annotated[ValueWithUnits, FieldInfo(annotation=NoneType, required=True, description="The labware's extent along the x-axis of it's coordinate system. Expects length units.")] | None)

  • y_length (Annotated[ValueWithUnits, FieldInfo(annotation=NoneType, required=True, description="The labware's extent along the y-axis of it's coordinate system. Expects length units.")] | None)

  • z_length (Annotated[ValueWithUnits, FieldInfo(annotation=NoneType, required=True, description="The labware's extent along the z-axis of it's coordinate system. Expects length units.")] | None)

  • pinchable (Annotated[bool, FieldInfo(annotation=NoneType, required=True, description='Whether the labware can be lifted by a Trilobot using a pinch grip.')] | None)

  • pinch_offset_transform (Annotated[list[list[float]], FieldInfo(annotation=NoneType, required=True, description='A 3D 4x4 transformation matrix represented in row-major order. Used to represent the position and orientation in 3D space.'), FieldInfo(annotation=NoneType, required=True, description="Transform from the center of the labware's footprint to the center of the pinchable location on the labware. Must be provided if `pinchable` is `True`.")] | None)

  • type (Literal['Lid'])

  • stackable (Annotated[bool, FieldInfo(annotation=NoneType, required=True, description='Whether the lid supports stacking an ANSI-SLAS-compliant labware on top of it.')] | None)

model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'strict': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class tcode_api.schemas.descriptions.PipetteTipBoxDescription(**data)

Description of a pipette tip box.

Parameters:
  • schema_version (Literal[4])

  • tags (Annotated[list[str], FieldInfo(annotation=NoneType, required=False, default_factory=list, description='List of additional string tags attached to the entity.')])

  • named_tags (Annotated[dict[str, str | int | float | bool], FieldInfo(annotation=NoneType, required=False, default_factory=dict, description='Map of names and values of named tags attached to the entity. Values can be strings, numbers, or booleans.')])

  • x_length (Annotated[ValueWithUnits, FieldInfo(annotation=NoneType, required=True, description="The labware's extent along the x-axis of it's coordinate system. Expects length units.")])

  • y_length (Annotated[ValueWithUnits, FieldInfo(annotation=NoneType, required=True, description="The labware's extent along the y-axis of it's coordinate system. Expects length units.")])

  • z_length (Annotated[ValueWithUnits, FieldInfo(annotation=NoneType, required=True, description="The labware's extent along the z-axis of it's coordinate system. Expects length units.")])

  • pinchable (Annotated[bool, FieldInfo(annotation=NoneType, required=True, description='Whether the labware can be lifted by a Trilobot using a pinch grip.')])

  • pinch_offset_transform (Annotated[list[list[float]], FieldInfo(annotation=NoneType, required=True, description='A 3D 4x4 transformation matrix represented in row-major order. Used to represent the position and orientation in 3D space.'), FieldInfo(annotation=NoneType, required=True, description="Transform from the center of the labware's footprint to the center of the pinchable location on the labware. Must be provided if `pinchable` is `True`.")] | None)

  • type (Literal['PipetteTipBox'])

  • grid (GridDescription)

  • pipette_tip (PipetteTipDescription)

  • pipette_tip_layout (PipetteTipLayout)

model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'strict': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class tcode_api.schemas.descriptions.PipetteTipBoxDescriptor(**data)

PipetteTipBoxDescription with optional parameters.

Parameters:
  • schema_version (Literal[4])

  • tags (Annotated[list[str], FieldInfo(annotation=NoneType, required=False, default_factory=list, description='List of additional string tags attached to the entity.')])

  • named_tags (Annotated[dict[str, str | int | float | bool], FieldInfo(annotation=NoneType, required=False, default_factory=dict, description='Map of names and values of named tags attached to the entity. Values can be strings, numbers, or booleans.')])

  • x_length (Annotated[ValueWithUnits, FieldInfo(annotation=NoneType, required=True, description="The labware's extent along the x-axis of it's coordinate system. Expects length units.")] | None)

  • y_length (Annotated[ValueWithUnits, FieldInfo(annotation=NoneType, required=True, description="The labware's extent along the y-axis of it's coordinate system. Expects length units.")] | None)

  • z_length (Annotated[ValueWithUnits, FieldInfo(annotation=NoneType, required=True, description="The labware's extent along the z-axis of it's coordinate system. Expects length units.")] | None)

  • pinchable (Annotated[bool, FieldInfo(annotation=NoneType, required=True, description='Whether the labware can be lifted by a Trilobot using a pinch grip.')] | None)

  • pinch_offset_transform (Annotated[list[list[float]], FieldInfo(annotation=NoneType, required=True, description='A 3D 4x4 transformation matrix represented in row-major order. Used to represent the position and orientation in 3D space.'), FieldInfo(annotation=NoneType, required=True, description="Transform from the center of the labware's footprint to the center of the pinchable location on the labware. Must be provided if `pinchable` is `True`.")] | None)

  • type (Literal['PipetteTipBox'])

  • grid (GridDescriptor | None)

  • pipette_tip (PipetteTipDescriptor | None)

  • pipette_tip_layout (PipetteTipLayout | None)

model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'strict': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class tcode_api.schemas.descriptions.PipetteTipDescription(**data)

Description of a pipette tip.

Parameters:
  • schema_version (Literal[1])

  • tags (Annotated[list[str], FieldInfo(annotation=NoneType, required=False, default_factory=list, description='List of additional string tags attached to the entity.')])

  • named_tags (Annotated[dict[str, str | int | float | bool], FieldInfo(annotation=NoneType, required=False, default_factory=dict, description='Map of names and values of named tags attached to the entity. Values can be strings, numbers, or booleans.')])

  • type (Literal['PipetteTip'])

  • has_filter (Annotated[bool, FieldInfo(annotation=NoneType, required=True, description='Whether the pipette tip has an internal filter.')])

  • height (Annotated[ValueWithUnits, FieldInfo(annotation=NoneType, required=True, description='total length of the pipette tip; expects length units')])

  • flange_height (Annotated[ValueWithUnits, FieldInfo(annotation=NoneType, required=True, description='The distance from the top of the pipette tip to the flange which rests against the tip rack when the tip is racked. Expects length units.')])

  • max_volume (Annotated[ValueWithUnits, FieldInfo(annotation=NoneType, required=True, description='The maximum working fluid volume, as recommended by the manufacturer. Expects volume units.')])

  • min_volume (Annotated[ValueWithUnits, FieldInfo(annotation=NoneType, required=True, description='The minimum working fluid volume, as recommended by the manufacturer. Expects volume units.')])

model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'strict': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class tcode_api.schemas.descriptions.PipetteTipDescriptor(**data)

:class:PipetteTipDescription with optional parameters.

Parameters:
  • schema_version (Literal[1])

  • tags (Annotated[list[str], FieldInfo(annotation=NoneType, required=False, default_factory=list, description='List of additional string tags attached to the entity.')])

  • named_tags (Annotated[dict[str, str | int | float | bool], FieldInfo(annotation=NoneType, required=False, default_factory=dict, description='Map of names and values of named tags attached to the entity. Values can be strings, numbers, or booleans.')])

  • type (Literal['PipetteTip'])

  • has_filter (Annotated[bool, FieldInfo(annotation=NoneType, required=True, description='Whether the pipette tip has an internal filter.')] | None)

  • height (Annotated[ValueWithUnits, FieldInfo(annotation=NoneType, required=True, description='total length of the pipette tip; expects length units')] | None)

  • flange_height (Annotated[ValueWithUnits, FieldInfo(annotation=NoneType, required=True, description='The distance from the top of the pipette tip to the flange which rests against the tip rack when the tip is racked. Expects length units.')] | None)

  • max_volume (Annotated[ValueWithUnits, FieldInfo(annotation=NoneType, required=True, description='The maximum working fluid volume, as recommended by the manufacturer. Expects volume units.')] | None)

  • min_volume (ValueWithUnits | None)

model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'strict': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class tcode_api.schemas.descriptions.PipetteTipGroupDescriptor(**data)

Grid layout of pipette tips.

Parameters:
  • schema_version (Literal[1])

  • type (Literal['PipetteTipGroup'])

  • row_count (Annotated[int, Gt(gt=0)])

  • column_count (Annotated[int, Gt(gt=0)])

  • pipette_tip_tags (Annotated[list[str], FieldInfo(annotation=NoneType, required=False, default_factory=list, description='List of additional string tags attached to the entity.')])

  • pipette_tip_named_tags (Annotated[dict[str, str | int | float | bool], FieldInfo(annotation=NoneType, required=False, default_factory=dict, description='Map of names and values of named tags attached to the entity. Values can be strings, numbers, or booleans.')])

model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'strict': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class tcode_api.schemas.descriptions.ProbeDescriptor(**data)
Parameters:
  • schema_version (Literal[1])

  • serial_number (str | None)

  • type (Literal['Probe'])

model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'strict': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class tcode_api.schemas.descriptions.RobotDescriptor(**data)

Descriptor for a robot in the fleet.

Parameters:
model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'strict': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class tcode_api.schemas.descriptions.RoundBottomDescription(**data)

Descriptor for a well with a spherical bottom.

Note:

The bottom of the well is assumed to be a hemisphere whose radius is inferred from the well’s diameter.

Parameters:
  • schema_version (Literal[1])

  • type (Literal['Round'])

model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'strict': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class tcode_api.schemas.descriptions.RoundBottomDescriptor(**data)

:class:RoundBottomDescription with optional parameters.

Parameters:
  • schema_version (Literal[1])

  • type (Literal['Round'])

model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'strict': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class tcode_api.schemas.descriptions.SingleChannelPipetteDescriptor(**data)
Parameters:
model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'strict': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class tcode_api.schemas.descriptions.ToolHolderDescriptor(**data)

Descriptor for an entity that can hold tools.

Parameters:
  • schema_version (Literal[1])

  • type (Literal['ToolHolder'])

model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'strict': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class tcode_api.schemas.descriptions.TrashDescription(**data)

Description of a waste disposal container.

Parameters:
  • schema_version (Literal[4])

  • tags (Annotated[list[str], FieldInfo(annotation=NoneType, required=False, default_factory=list, description='List of additional string tags attached to the entity.')])

  • named_tags (Annotated[dict[str, str | int | float | bool], FieldInfo(annotation=NoneType, required=False, default_factory=dict, description='Map of names and values of named tags attached to the entity. Values can be strings, numbers, or booleans.')])

  • x_length (Annotated[ValueWithUnits, FieldInfo(annotation=NoneType, required=True, description="The labware's extent along the x-axis of it's coordinate system. Expects length units.")])

  • y_length (Annotated[ValueWithUnits, FieldInfo(annotation=NoneType, required=True, description="The labware's extent along the y-axis of it's coordinate system. Expects length units.")])

  • z_length (Annotated[ValueWithUnits, FieldInfo(annotation=NoneType, required=True, description="The labware's extent along the z-axis of it's coordinate system. Expects length units.")])

  • pinchable (Annotated[bool, FieldInfo(annotation=NoneType, required=True, description='Whether the labware can be lifted by a Trilobot using a pinch grip.')])

  • pinch_offset_transform (Annotated[list[list[float]], FieldInfo(annotation=NoneType, required=True, description='A 3D 4x4 transformation matrix represented in row-major order. Used to represent the position and orientation in 3D space.'), FieldInfo(annotation=NoneType, required=True, description="Transform from the center of the labware's footprint to the center of the pinchable location on the labware. Must be provided if `pinchable` is `True`.")] | None)

  • type (Literal['Trash'])

  • well (WellDescription)

model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'strict': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class tcode_api.schemas.descriptions.TrashDescriptor(**data)

:class:TrashDescription with optional parameters.

Parameters:
  • schema_version (Literal[4])

  • tags (Annotated[list[str], FieldInfo(annotation=NoneType, required=False, default_factory=list, description='List of additional string tags attached to the entity.')])

  • named_tags (Annotated[dict[str, str | int | float | bool], FieldInfo(annotation=NoneType, required=False, default_factory=dict, description='Map of names and values of named tags attached to the entity. Values can be strings, numbers, or booleans.')])

  • x_length (Annotated[ValueWithUnits, FieldInfo(annotation=NoneType, required=True, description="The labware's extent along the x-axis of it's coordinate system. Expects length units.")] | None)

  • y_length (Annotated[ValueWithUnits, FieldInfo(annotation=NoneType, required=True, description="The labware's extent along the y-axis of it's coordinate system. Expects length units.")] | None)

  • z_length (Annotated[ValueWithUnits, FieldInfo(annotation=NoneType, required=True, description="The labware's extent along the z-axis of it's coordinate system. Expects length units.")] | None)

  • pinchable (Annotated[bool, FieldInfo(annotation=NoneType, required=True, description='Whether the labware can be lifted by a Trilobot using a pinch grip.')] | None)

  • pinch_offset_transform (Annotated[list[list[float]], FieldInfo(annotation=NoneType, required=True, description='A 3D 4x4 transformation matrix represented in row-major order. Used to represent the position and orientation in 3D space.'), FieldInfo(annotation=NoneType, required=True, description="Transform from the center of the labware's footprint to the center of the pinchable location on the labware. Must be provided if `pinchable` is `True`.")] | None)

  • type (Literal['Trash'])

  • well (WellDescriptor | None)

model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'strict': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class tcode_api.schemas.descriptions.TubeDescription(**data)

Description of a tube.

Parameters:
  • schema_version (Literal[1])

  • tags (Annotated[list[str], FieldInfo(annotation=NoneType, required=False, default_factory=list, description='List of additional string tags attached to the entity.')])

  • named_tags (Annotated[dict[str, str | int | float | bool], FieldInfo(annotation=NoneType, required=False, default_factory=dict, description='Map of names and values of named tags attached to the entity. Values can be strings, numbers, or booleans.')])

  • type (Literal['Tube'])

  • depth (Annotated[ValueWithUnits, FieldInfo(annotation=NoneType, required=True, description='Distance from the top of the tube to the centered bottom of the tube. Expects length units.')])

  • shape (Annotated[CircleDescription | AxisAlignedRectangleDescription, FieldInfo(annotation=NoneType, required=True, description='Union type of all valid well shape descriptions.', discriminator='type')])

  • bottom_shape (Annotated[ConicalBottomDescription | FlatBottomDescription | RoundBottomDescription | VBottomDescription, FieldInfo(annotation=NoneType, required=True, description='Union type of all valid well bottom shape descriptions.', discriminator='type')])

  • min_volume (Annotated[ValueWithUnits, FieldInfo(annotation=NoneType, required=True, description='The minimum working fluid volume, as recommended by the manufacturer. Expects volume units.')])

  • max_volume (Annotated[ValueWithUnits, FieldInfo(annotation=NoneType, required=True, description='The maximum working fluid volume, as recommended by the manufacturer. Expects volume units.')])

  • top_height (Annotated[ValueWithUnits, FieldInfo(annotation=NoneType, required=True, description='The height of the tube cap above the top of the tube. Expects length units.')])

model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'strict': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class tcode_api.schemas.descriptions.TubeDescriptor(**data)

:class:TubeDescription with optional parameters.

Parameters:
  • schema_version (Literal[1])

  • tags (Annotated[list[str], FieldInfo(annotation=NoneType, required=False, default_factory=list, description='List of additional string tags attached to the entity.')])

  • named_tags (Annotated[dict[str, str | int | float | bool], FieldInfo(annotation=NoneType, required=False, default_factory=dict, description='Map of names and values of named tags attached to the entity. Values can be strings, numbers, or booleans.')])

  • type (Literal['Tube'])

  • depth (Annotated[ValueWithUnits, FieldInfo(annotation=NoneType, required=True, description='Distance from the top of the tube to the centered bottom of the tube. Expects length units.')] | None)

  • shape (Annotated[CircleDescriptor | AxisAlignedRectangleDescriptor, FieldInfo(annotation=NoneType, required=True, description='Union type of all valid well shape descriptors.', discriminator='type')] | None)

  • bottom_shape (Annotated[ConicalBottomDescriptor | FlatBottomDescriptor | RoundBottomDescriptor | VBottomDescriptor, FieldInfo(annotation=NoneType, required=True, description='Union type of all valid well bottom shape descriptors.', discriminator='type')] | None)

  • min_volume (Annotated[ValueWithUnits, FieldInfo(annotation=NoneType, required=True, description='The minimum working fluid volume, as recommended by the manufacturer. Expects volume units.')] | None)

  • max_volume (Annotated[ValueWithUnits, FieldInfo(annotation=NoneType, required=True, description='The maximum working fluid volume, as recommended by the manufacturer. Expects volume units.')] | None)

  • top_height (Annotated[ValueWithUnits, FieldInfo(annotation=NoneType, required=True, description='The height of the tube cap above the top of the tube. Expects length units.')] | None)

model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'strict': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class tcode_api.schemas.descriptions.TubeHolderDescription(**data)

Description of a tube holder.

Parameters:
  • schema_version (Literal[4])

  • tags (Annotated[list[str], FieldInfo(annotation=NoneType, required=False, default_factory=list, description='List of additional string tags attached to the entity.')])

  • named_tags (Annotated[dict[str, str | int | float | bool], FieldInfo(annotation=NoneType, required=False, default_factory=dict, description='Map of names and values of named tags attached to the entity. Values can be strings, numbers, or booleans.')])

  • x_length (Annotated[ValueWithUnits, FieldInfo(annotation=NoneType, required=True, description="The labware's extent along the x-axis of it's coordinate system. Expects length units.")])

  • y_length (Annotated[ValueWithUnits, FieldInfo(annotation=NoneType, required=True, description="The labware's extent along the y-axis of it's coordinate system. Expects length units.")])

  • z_length (Annotated[ValueWithUnits, FieldInfo(annotation=NoneType, required=True, description="The labware's extent along the z-axis of it's coordinate system. Expects length units.")])

  • pinchable (Annotated[bool, FieldInfo(annotation=NoneType, required=True, description='Whether the labware can be lifted by a Trilobot using a pinch grip.')])

  • pinch_offset_transform (Annotated[list[list[float]], FieldInfo(annotation=NoneType, required=True, description='A 3D 4x4 transformation matrix represented in row-major order. Used to represent the position and orientation in 3D space.'), FieldInfo(annotation=NoneType, required=True, description="Transform from the center of the labware's footprint to the center of the pinchable location on the labware. Must be provided if `pinchable` is `True`.")] | None)

  • type (Literal['TubeHolder'])

  • grid (GridDescription)

  • tube (TubeDescription)

model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'strict': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class tcode_api.schemas.descriptions.TubeHolderDescriptor(**data)

:class:TubeHolderDescription with optional parameters.

Parameters:
  • schema_version (Literal[4])

  • tags (Annotated[list[str], FieldInfo(annotation=NoneType, required=False, default_factory=list, description='List of additional string tags attached to the entity.')])

  • named_tags (Annotated[dict[str, str | int | float | bool], FieldInfo(annotation=NoneType, required=False, default_factory=dict, description='Map of names and values of named tags attached to the entity. Values can be strings, numbers, or booleans.')])

  • x_length (Annotated[ValueWithUnits, FieldInfo(annotation=NoneType, required=True, description="The labware's extent along the x-axis of it's coordinate system. Expects length units.")] | None)

  • y_length (Annotated[ValueWithUnits, FieldInfo(annotation=NoneType, required=True, description="The labware's extent along the y-axis of it's coordinate system. Expects length units.")] | None)

  • z_length (Annotated[ValueWithUnits, FieldInfo(annotation=NoneType, required=True, description="The labware's extent along the z-axis of it's coordinate system. Expects length units.")] | None)

  • pinchable (Annotated[bool, FieldInfo(annotation=NoneType, required=True, description='Whether the labware can be lifted by a Trilobot using a pinch grip.')] | None)

  • pinch_offset_transform (Annotated[list[list[float]], FieldInfo(annotation=NoneType, required=True, description='A 3D 4x4 transformation matrix represented in row-major order. Used to represent the position and orientation in 3D space.'), FieldInfo(annotation=NoneType, required=True, description="Transform from the center of the labware's footprint to the center of the pinchable location on the labware. Must be provided if `pinchable` is `True`.")] | None)

  • type (Literal['TubeHolder'])

  • grid (GridDescriptor | None)

  • tube (TubeDescriptor | None)

model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'strict': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class tcode_api.schemas.descriptions.VBottomDescription(**data)

Description of a V-bottom well (e.g. trough).

Parameters:
  • schema_version (Literal[1])

  • type (Literal['V-Shape'])

  • direction (Annotated[Literal['x-axis', 'y-axis'], FieldInfo(annotation=NoneType, required=True, description="The axis of the well's coordinate system along which the spine of the V runs.")])

  • offset (Annotated[ValueWithUnits, FieldInfo(annotation=NoneType, required=True, description='The height of the triangular portion of the well. Expects length units.')])

model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'strict': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class tcode_api.schemas.descriptions.VBottomDescriptor(**data)

:class:VBottomDescription with optional parameters.

Parameters:
  • schema_version (Literal[1])

  • type (Literal['V-Shape'])

  • direction (Annotated[Literal['x-axis', 'y-axis'], FieldInfo(annotation=NoneType, required=True, description="The axis of the well's coordinate system along which the spine of the V runs.")] | None)

  • offset (Annotated[ValueWithUnits, FieldInfo(annotation=NoneType, required=True, description='The height of the triangular portion of the well. Expects length units.')] | None)

model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'strict': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class tcode_api.schemas.descriptions.WellDescription(**data)

Description of a well in a labware.

Parameters:
  • schema_version (Literal[1])

  • tags (Annotated[list[str], FieldInfo(annotation=NoneType, required=False, default_factory=list, description='List of additional string tags attached to the entity.')])

  • named_tags (Annotated[dict[str, str | int | float | bool], FieldInfo(annotation=NoneType, required=False, default_factory=dict, description='Map of names and values of named tags attached to the entity. Values can be strings, numbers, or booleans.')])

  • type (Literal['Well'])

  • depth (Annotated[ValueWithUnits, FieldInfo(annotation=NoneType, required=True, description='Distance from the top of the well to the bottom of the inside of the well. expects length units')])

  • shape (Annotated[CircleDescription | AxisAlignedRectangleDescription, FieldInfo(annotation=NoneType, required=True, description='Union type of all valid well shape descriptions.', discriminator='type')])

  • bottom_shape (Annotated[ConicalBottomDescription | FlatBottomDescription | RoundBottomDescription | VBottomDescription, FieldInfo(annotation=NoneType, required=True, description='Union type of all valid well bottom shape descriptions.', discriminator='type')])

  • min_volume (Annotated[ValueWithUnits, FieldInfo(annotation=NoneType, required=True, description='The minimum working fluid volume, as recommended by the manufacturer. Expects volume units.')])

  • max_volume (Annotated[ValueWithUnits, FieldInfo(annotation=NoneType, required=True, description='The maximum working fluid volume, as recommended by the manufacturer. Expects volume units.')])

model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'strict': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class tcode_api.schemas.descriptions.WellDescriptor(**data)

:class:WellDescription with optional parameters.

Parameters:
  • schema_version (Literal[1])

  • tags (Annotated[list[str], FieldInfo(annotation=NoneType, required=False, default_factory=list, description='List of additional string tags attached to the entity.')])

  • named_tags (Annotated[dict[str, str | int | float | bool], FieldInfo(annotation=NoneType, required=False, default_factory=dict, description='Map of names and values of named tags attached to the entity. Values can be strings, numbers, or booleans.')])

  • type (Literal['Well'])

  • depth (Annotated[ValueWithUnits, FieldInfo(annotation=NoneType, required=True, description='Distance from the top of the well to the bottom of the inside of the well. expects length units')] | None)

  • shape (Annotated[CircleDescriptor | AxisAlignedRectangleDescriptor, FieldInfo(annotation=NoneType, required=True, description='Union type of all valid well shape descriptors.', discriminator='type')] | None)

  • bottom_shape (Annotated[ConicalBottomDescriptor | FlatBottomDescriptor | RoundBottomDescriptor | VBottomDescriptor, FieldInfo(annotation=NoneType, required=True, description='Union type of all valid well bottom shape descriptors.', discriminator='type')] | None)

  • min_volume (Annotated[ValueWithUnits, FieldInfo(annotation=NoneType, required=True, description='The minimum working fluid volume, as recommended by the manufacturer. Expects volume units.')] | None)

  • max_volume (Annotated[ValueWithUnits, FieldInfo(annotation=NoneType, required=True, description='The maximum working fluid volume, as recommended by the manufacturer. Expects volume units.')] | None)

model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'strict': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class tcode_api.schemas.descriptions.WellPlateDescription(**data)

Description of a well plate.

Note:

The exception to the ‘no optional attributes’ rule for ***Description classes

Parameters:
  • schema_version (Literal[4])

  • tags (Annotated[list[str], FieldInfo(annotation=NoneType, required=False, default_factory=list, description='List of additional string tags attached to the entity.')])

  • named_tags (Annotated[dict[str, str | int | float | bool], FieldInfo(annotation=NoneType, required=False, default_factory=dict, description='Map of names and values of named tags attached to the entity. Values can be strings, numbers, or booleans.')])

  • x_length (Annotated[ValueWithUnits, FieldInfo(annotation=NoneType, required=True, description="The labware's extent along the x-axis of it's coordinate system. Expects length units.")])

  • y_length (Annotated[ValueWithUnits, FieldInfo(annotation=NoneType, required=True, description="The labware's extent along the y-axis of it's coordinate system. Expects length units.")])

  • z_length (Annotated[ValueWithUnits, FieldInfo(annotation=NoneType, required=True, description="The labware's extent along the z-axis of it's coordinate system. Expects length units.")])

  • pinchable (Annotated[bool, FieldInfo(annotation=NoneType, required=True, description='Whether the labware can be lifted by a Trilobot using a pinch grip.')])

  • pinch_offset_transform (Annotated[list[list[float]], FieldInfo(annotation=NoneType, required=True, description='A 3D 4x4 transformation matrix represented in row-major order. Used to represent the position and orientation in 3D space.'), FieldInfo(annotation=NoneType, required=True, description="Transform from the center of the labware's footprint to the center of the pinchable location on the labware. Must be provided if `pinchable` is `True`.")] | None)

  • type (Literal['WellPlate'])

  • grid (GridDescription)

  • well (WellDescription)

  • lid_offset (Annotated[ValueWithUnits, FieldInfo(annotation=NoneType, required=True, description='The offset from the top of the labware to the bottom of the lid. Expects length units. Only applicable if the labware has a lid.')] | None)

  • lid (LidDescription | None)

is lid_offset and lid. These attributes default to None, assuming that a described labware has no lid.

model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'strict': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class tcode_api.schemas.descriptions.WellPlateDescriptor(**data)

:class:WellPlateDescription with optional parameters.

Parameters:
  • schema_version (Literal[4])

  • tags (Annotated[list[str], FieldInfo(annotation=NoneType, required=False, default_factory=list, description='List of additional string tags attached to the entity.')])

  • named_tags (Annotated[dict[str, str | int | float | bool], FieldInfo(annotation=NoneType, required=False, default_factory=dict, description='Map of names and values of named tags attached to the entity. Values can be strings, numbers, or booleans.')])

  • x_length (Annotated[ValueWithUnits, FieldInfo(annotation=NoneType, required=True, description="The labware's extent along the x-axis of it's coordinate system. Expects length units.")] | None)

  • y_length (Annotated[ValueWithUnits, FieldInfo(annotation=NoneType, required=True, description="The labware's extent along the y-axis of it's coordinate system. Expects length units.")] | None)

  • z_length (Annotated[ValueWithUnits, FieldInfo(annotation=NoneType, required=True, description="The labware's extent along the z-axis of it's coordinate system. Expects length units.")] | None)

  • pinchable (Annotated[bool, FieldInfo(annotation=NoneType, required=True, description='Whether the labware can be lifted by a Trilobot using a pinch grip.')] | None)

  • pinch_offset_transform (Annotated[list[list[float]], FieldInfo(annotation=NoneType, required=True, description='A 3D 4x4 transformation matrix represented in row-major order. Used to represent the position and orientation in 3D space.'), FieldInfo(annotation=NoneType, required=True, description="Transform from the center of the labware's footprint to the center of the pinchable location on the labware. Must be provided if `pinchable` is `True`.")] | None)

  • type (Literal['WellPlate'])

  • grid (GridDescriptor | None)

  • well (WellDescriptor | None)

  • lid_offset (Annotated[ValueWithUnits, FieldInfo(annotation=NoneType, required=True, description='The offset from the top of the labware to the bottom of the lid. Expects length units. Only applicable if the labware has a lid.')] | None)

  • lid (LidDescriptor | None)

model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'strict': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].