opentrons-shared-data 8.8.0a10__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of opentrons-shared-data might be problematic. Click here for more details.

Files changed (690) hide show
  1. LICENSE +202 -0
  2. opentrons_shared_data/__init__.py +17 -0
  3. opentrons_shared_data/_version.py +34 -0
  4. opentrons_shared_data/command/__init__.py +111 -0
  5. opentrons_shared_data/data/command/schemas/10.json +4880 -0
  6. opentrons_shared_data/data/command/schemas/11.json +6267 -0
  7. opentrons_shared_data/data/command/schemas/12.json +7117 -0
  8. opentrons_shared_data/data/command/schemas/13.json +7039 -0
  9. opentrons_shared_data/data/command/schemas/14.json +7166 -0
  10. opentrons_shared_data/data/command/schemas/15.json +7676 -0
  11. opentrons_shared_data/data/command/schemas/7.json +3302 -0
  12. opentrons_shared_data/data/command/schemas/8.json +4321 -0
  13. opentrons_shared_data/data/command/schemas/9.json +4430 -0
  14. opentrons_shared_data/data/commandAnnotation/schemas/1.json +74 -0
  15. opentrons_shared_data/data/deck/definitions/3/ot2_short_trash.json +477 -0
  16. opentrons_shared_data/data/deck/definitions/3/ot2_standard.json +477 -0
  17. opentrons_shared_data/data/deck/definitions/3/ot3_standard.json +989 -0
  18. opentrons_shared_data/data/deck/definitions/4/ot2_short_trash.json +405 -0
  19. opentrons_shared_data/data/deck/definitions/4/ot2_standard.json +410 -0
  20. opentrons_shared_data/data/deck/definitions/4/ot3_standard.json +608 -0
  21. opentrons_shared_data/data/deck/definitions/5/ot2_short_trash.json +459 -0
  22. opentrons_shared_data/data/deck/definitions/5/ot2_standard.json +459 -0
  23. opentrons_shared_data/data/deck/definitions/5/ot3_standard.json +1419 -0
  24. opentrons_shared_data/data/deck/schemas/1.json +240 -0
  25. opentrons_shared_data/data/deck/schemas/2.json +250 -0
  26. opentrons_shared_data/data/deck/schemas/3.json +297 -0
  27. opentrons_shared_data/data/deck/schemas/4.json +319 -0
  28. opentrons_shared_data/data/deck/schemas/5.json +396 -0
  29. opentrons_shared_data/data/errors/definitions/1/errors.json +286 -0
  30. opentrons_shared_data/data/errors/schemas/1.json +50 -0
  31. opentrons_shared_data/data/gripper/definitions/1/gripperV1.1.json +29 -0
  32. opentrons_shared_data/data/gripper/definitions/1/gripperV1.2.json +29 -0
  33. opentrons_shared_data/data/gripper/definitions/1/gripperV1.3.json +29 -0
  34. opentrons_shared_data/data/gripper/definitions/1/gripperV1.json +28 -0
  35. opentrons_shared_data/data/gripper/schemas/1.json +186 -0
  36. opentrons_shared_data/data/labware/definitions/1/12-well-plate.json +147 -0
  37. opentrons_shared_data/data/labware/definitions/1/24-vial-rack.json +281 -0
  38. opentrons_shared_data/data/labware/definitions/1/24-well-plate.json +281 -0
  39. opentrons_shared_data/data/labware/definitions/1/384-plate.json +4667 -0
  40. opentrons_shared_data/data/labware/definitions/1/48-vial-plate.json +547 -0
  41. opentrons_shared_data/data/labware/definitions/1/48-well-plate.json +547 -0
  42. opentrons_shared_data/data/labware/definitions/1/5ml-3x4.json +147 -0
  43. opentrons_shared_data/data/labware/definitions/1/6-well-plate.json +80 -0
  44. opentrons_shared_data/data/labware/definitions/1/96-PCR-flat.json +1079 -0
  45. opentrons_shared_data/data/labware/definitions/1/96-PCR-tall.json +1079 -0
  46. opentrons_shared_data/data/labware/definitions/1/96-deep-well.json +1079 -0
  47. opentrons_shared_data/data/labware/definitions/1/96-flat.json +1079 -0
  48. opentrons_shared_data/data/labware/definitions/1/96-well-plate-20mm.json +1079 -0
  49. opentrons_shared_data/data/labware/definitions/1/MALDI-plate.json +4282 -0
  50. opentrons_shared_data/data/labware/definitions/1/PCR-strip-tall.json +1079 -0
  51. opentrons_shared_data/data/labware/definitions/1/T25-flask.json +20 -0
  52. opentrons_shared_data/data/labware/definitions/1/T75-flask.json +20 -0
  53. opentrons_shared_data/data/labware/definitions/1/alum-block-pcr-strips.json +188 -0
  54. opentrons_shared_data/data/labware/definitions/1/biorad-hardshell-96-PCR.json +1079 -0
  55. opentrons_shared_data/data/labware/definitions/1/e-gelgol.json +1078 -0
  56. opentrons_shared_data/data/labware/definitions/1/fixed-trash.json +19 -0
  57. opentrons_shared_data/data/labware/definitions/1/hampton-1ml-deep-block.json +1078 -0
  58. opentrons_shared_data/data/labware/definitions/1/opentrons-aluminum-block-2ml-eppendorf.json +281 -0
  59. opentrons_shared_data/data/labware/definitions/1/opentrons-aluminum-block-2ml-screwcap.json +281 -0
  60. opentrons_shared_data/data/labware/definitions/1/opentrons-aluminum-block-96-PCR-plate.json +1079 -0
  61. opentrons_shared_data/data/labware/definitions/1/opentrons-aluminum-block-PCR-strips-200ul.json +1079 -0
  62. opentrons_shared_data/data/labware/definitions/1/opentrons-tiprack-10ul.json +986 -0
  63. opentrons_shared_data/data/labware/definitions/1/opentrons-tiprack-300ul.json +986 -0
  64. opentrons_shared_data/data/labware/definitions/1/opentrons-tuberack-1.5ml-eppendorf.json +281 -0
  65. opentrons_shared_data/data/labware/definitions/1/opentrons-tuberack-15_50ml.json +125 -0
  66. opentrons_shared_data/data/labware/definitions/1/opentrons-tuberack-15ml.json +181 -0
  67. opentrons_shared_data/data/labware/definitions/1/opentrons-tuberack-2ml-eppendorf.json +281 -0
  68. opentrons_shared_data/data/labware/definitions/1/opentrons-tuberack-2ml-screwcap.json +281 -0
  69. opentrons_shared_data/data/labware/definitions/1/opentrons-tuberack-50ml.json +80 -0
  70. opentrons_shared_data/data/labware/definitions/1/point.json +18 -0
  71. opentrons_shared_data/data/labware/definitions/1/rigaku-compact-crystallization-plate.json +2146 -0
  72. opentrons_shared_data/data/labware/definitions/1/small_vial_rack_16x45.json +280 -0
  73. opentrons_shared_data/data/labware/definitions/1/tall-fixed-trash.json +19 -0
  74. opentrons_shared_data/data/labware/definitions/1/tiprack-1000ul-H.json +503 -0
  75. opentrons_shared_data/data/labware/definitions/1/tiprack-1000ul-chem.json +1034 -0
  76. opentrons_shared_data/data/labware/definitions/1/tiprack-1000ul.json +986 -0
  77. opentrons_shared_data/data/labware/definitions/1/tiprack-10ul-H.json +503 -0
  78. opentrons_shared_data/data/labware/definitions/1/tiprack-10ul.json +986 -0
  79. opentrons_shared_data/data/labware/definitions/1/tiprack-200ul.json +986 -0
  80. opentrons_shared_data/data/labware/definitions/1/trash-box.json +20 -0
  81. opentrons_shared_data/data/labware/definitions/1/trough-12row-short.json +143 -0
  82. opentrons_shared_data/data/labware/definitions/1/trough-12row.json +143 -0
  83. opentrons_shared_data/data/labware/definitions/1/trough-1row-25ml.json +21 -0
  84. opentrons_shared_data/data/labware/definitions/1/tube-rack-.75ml.json +281 -0
  85. opentrons_shared_data/data/labware/definitions/1/tube-rack-15_50ml.json +125 -0
  86. opentrons_shared_data/data/labware/definitions/1/tube-rack-2ml-9x9.json +911 -0
  87. opentrons_shared_data/data/labware/definitions/1/tube-rack-2ml.json +281 -0
  88. opentrons_shared_data/data/labware/definitions/1/tube-rack-5ml-96.json +1079 -0
  89. opentrons_shared_data/data/labware/definitions/1/tube-rack-80well.json +907 -0
  90. opentrons_shared_data/data/labware/definitions/1/wheaton_vial_rack.json +565 -0
  91. opentrons_shared_data/data/labware/definitions/2/agilent_1_reservoir_290ml/1.json +54 -0
  92. opentrons_shared_data/data/labware/definitions/2/agilent_1_reservoir_290ml/2.json +80 -0
  93. opentrons_shared_data/data/labware/definitions/2/agilent_1_reservoir_290ml/3.json +80 -0
  94. opentrons_shared_data/data/labware/definitions/2/agilent_1_reservoir_290ml/4.json +80 -0
  95. opentrons_shared_data/data/labware/definitions/2/appliedbiosystemsmicroamp_384_wellplate_40ul/1.json +4320 -0
  96. opentrons_shared_data/data/labware/definitions/2/appliedbiosystemsmicroamp_384_wellplate_40ul/2.json +4730 -0
  97. opentrons_shared_data/data/labware/definitions/2/appliedbiosystemsmicroamp_384_wellplate_40ul/3.json +4738 -0
  98. opentrons_shared_data/data/labware/definitions/2/armadillo_96_wellplate_200ul_pcr_full_skirt/1.json +1019 -0
  99. opentrons_shared_data/data/labware/definitions/2/armadillo_96_wellplate_200ul_pcr_full_skirt/2.json +1045 -0
  100. opentrons_shared_data/data/labware/definitions/2/armadillo_96_wellplate_200ul_pcr_full_skirt/3.json +1167 -0
  101. opentrons_shared_data/data/labware/definitions/2/axygen_1_reservoir_90ml/1.json +56 -0
  102. opentrons_shared_data/data/labware/definitions/2/axygen_1_reservoir_90ml/2.json +72 -0
  103. opentrons_shared_data/data/labware/definitions/2/axygen_1_reservoir_90ml/3.json +72 -0
  104. opentrons_shared_data/data/labware/definitions/2/axygen_96_wellplate_500ul/1.json +1036 -0
  105. opentrons_shared_data/data/labware/definitions/2/axygen_96_wellplate_500ul/2.json +1159 -0
  106. opentrons_shared_data/data/labware/definitions/2/biorad_384_wellplate_50ul/1.json +4329 -0
  107. opentrons_shared_data/data/labware/definitions/2/biorad_384_wellplate_50ul/2.json +4331 -0
  108. opentrons_shared_data/data/labware/definitions/2/biorad_384_wellplate_50ul/3.json +4741 -0
  109. opentrons_shared_data/data/labware/definitions/2/biorad_384_wellplate_50ul/4.json +4748 -0
  110. opentrons_shared_data/data/labware/definitions/2/biorad_96_wellplate_200ul_pcr/1.json +1020 -0
  111. opentrons_shared_data/data/labware/definitions/2/biorad_96_wellplate_200ul_pcr/2.json +1046 -0
  112. opentrons_shared_data/data/labware/definitions/2/biorad_96_wellplate_200ul_pcr/3.json +1182 -0
  113. opentrons_shared_data/data/labware/definitions/2/biorad_96_wellplate_200ul_pcr/4.json +1187 -0
  114. opentrons_shared_data/data/labware/definitions/2/biorad_96_wellplate_200ul_pcr/5.json +1187 -0
  115. opentrons_shared_data/data/labware/definitions/2/black_96_well_microtiter_plate_lid/1.json +110 -0
  116. opentrons_shared_data/data/labware/definitions/2/corning_12_wellplate_6.9ml_flat/1.json +171 -0
  117. opentrons_shared_data/data/labware/definitions/2/corning_12_wellplate_6.9ml_flat/2.json +180 -0
  118. opentrons_shared_data/data/labware/definitions/2/corning_12_wellplate_6.9ml_flat/3.json +205 -0
  119. opentrons_shared_data/data/labware/definitions/2/corning_12_wellplate_6.9ml_flat/4.json +210 -0
  120. opentrons_shared_data/data/labware/definitions/2/corning_12_wellplate_6.9ml_flat/5.json +210 -0
  121. opentrons_shared_data/data/labware/definitions/2/corning_24_wellplate_3.4ml_flat/1.json +293 -0
  122. opentrons_shared_data/data/labware/definitions/2/corning_24_wellplate_3.4ml_flat/2.json +300 -0
  123. opentrons_shared_data/data/labware/definitions/2/corning_24_wellplate_3.4ml_flat/3.json +337 -0
  124. opentrons_shared_data/data/labware/definitions/2/corning_24_wellplate_3.4ml_flat/4.json +342 -0
  125. opentrons_shared_data/data/labware/definitions/2/corning_24_wellplate_3.4ml_flat/5.json +342 -0
  126. opentrons_shared_data/data/labware/definitions/2/corning_384_wellplate_112ul_flat/1.json +4703 -0
  127. opentrons_shared_data/data/labware/definitions/2/corning_384_wellplate_112ul_flat/2.json +4717 -0
  128. opentrons_shared_data/data/labware/definitions/2/corning_384_wellplate_112ul_flat/3.json +5116 -0
  129. opentrons_shared_data/data/labware/definitions/2/corning_384_wellplate_112ul_flat/4.json +5116 -0
  130. opentrons_shared_data/data/labware/definitions/2/corning_384_wellplate_112ul_flat/5.json +5116 -0
  131. opentrons_shared_data/data/labware/definitions/2/corning_48_wellplate_1.6ml_flat/1.json +535 -0
  132. opentrons_shared_data/data/labware/definitions/2/corning_48_wellplate_1.6ml_flat/2.json +544 -0
  133. opentrons_shared_data/data/labware/definitions/2/corning_48_wellplate_1.6ml_flat/3.json +605 -0
  134. opentrons_shared_data/data/labware/definitions/2/corning_48_wellplate_1.6ml_flat/4.json +605 -0
  135. opentrons_shared_data/data/labware/definitions/2/corning_48_wellplate_1.6ml_flat/5.json +610 -0
  136. opentrons_shared_data/data/labware/definitions/2/corning_48_wellplate_1.6ml_flat/6.json +610 -0
  137. opentrons_shared_data/data/labware/definitions/2/corning_6_wellplate_16.8ml_flat/1.json +103 -0
  138. opentrons_shared_data/data/labware/definitions/2/corning_6_wellplate_16.8ml_flat/2.json +110 -0
  139. opentrons_shared_data/data/labware/definitions/2/corning_6_wellplate_16.8ml_flat/3.json +129 -0
  140. opentrons_shared_data/data/labware/definitions/2/corning_6_wellplate_16.8ml_flat/4.json +134 -0
  141. opentrons_shared_data/data/labware/definitions/2/corning_6_wellplate_16.8ml_flat/5.json +134 -0
  142. opentrons_shared_data/data/labware/definitions/2/corning_96_wellplate_330ul/1.json +1170 -0
  143. opentrons_shared_data/data/labware/definitions/2/corning_96_wellplate_360ul_flat/1.json +1049 -0
  144. opentrons_shared_data/data/labware/definitions/2/corning_96_wellplate_360ul_flat/2.json +1063 -0
  145. opentrons_shared_data/data/labware/definitions/2/corning_96_wellplate_360ul_flat/3.json +1172 -0
  146. opentrons_shared_data/data/labware/definitions/2/corning_96_wellplate_360ul_flat/4.json +1177 -0
  147. opentrons_shared_data/data/labware/definitions/2/corning_96_wellplate_360ul_flat/5.json +1177 -0
  148. opentrons_shared_data/data/labware/definitions/2/corning_96_wellplate_360ul_lid/1.json +117 -0
  149. opentrons_shared_data/data/labware/definitions/2/corning_falcon_384_wellplate_130ul_flat/1.json +5147 -0
  150. opentrons_shared_data/data/labware/definitions/2/corning_falcon_384_wellplate_130ul_flat_lid/1.json +118 -0
  151. opentrons_shared_data/data/labware/definitions/2/costar_96_wellplate_2.2ml/1.json +1372 -0
  152. opentrons_shared_data/data/labware/definitions/2/eppendorf_384_wellplate_45ul/1.json +4758 -0
  153. opentrons_shared_data/data/labware/definitions/2/eppendorf_96_tiprack_1000ul_eptips/1.json +1019 -0
  154. opentrons_shared_data/data/labware/definitions/2/eppendorf_96_tiprack_10ul_eptips/1.json +1019 -0
  155. opentrons_shared_data/data/labware/definitions/2/eppendorf_96_wellplate_1000ul/1.json +1149 -0
  156. opentrons_shared_data/data/labware/definitions/2/eppendorf_96_wellplate_150ul/1.json +1184 -0
  157. opentrons_shared_data/data/labware/definitions/2/eppendorf_96_wellplate_2000ul/1.json +1395 -0
  158. opentrons_shared_data/data/labware/definitions/2/eppendorf_96_wellplate_2000ul_lobind/1.json +1395 -0
  159. opentrons_shared_data/data/labware/definitions/2/eppendorf_96_wellplate_350ul_lobind/1.json +1184 -0
  160. opentrons_shared_data/data/labware/definitions/2/eppendorf_96_wellplate_500ul/1.json +1170 -0
  161. opentrons_shared_data/data/labware/definitions/2/eppendorf_96_wellplate_500ul_lobind/1.json +1170 -0
  162. opentrons_shared_data/data/labware/definitions/2/ev_resin_tips_flex_96_labware/1.json +1067 -0
  163. opentrons_shared_data/data/labware/definitions/2/ev_resin_tips_flex_96_tiprack_adapter/1.json +44 -0
  164. opentrons_shared_data/data/labware/definitions/2/ev_resin_tips_flex_short_adapter/1.json +44 -0
  165. opentrons_shared_data/data/labware/definitions/2/ev_resin_tips_flex_tall_adapter/1.json +44 -0
  166. opentrons_shared_data/data/labware/definitions/2/geb_96_tiprack_1000ul/1.json +1017 -0
  167. opentrons_shared_data/data/labware/definitions/2/geb_96_tiprack_10ul/1.json +1017 -0
  168. opentrons_shared_data/data/labware/definitions/2/greiner_384_wellplate_240ul/1.json +5209 -0
  169. opentrons_shared_data/data/labware/definitions/2/greiner_96_wellplate_323ul/1.json +1197 -0
  170. opentrons_shared_data/data/labware/definitions/2/greiner_96_wellplate_340ul_chimney/1.json +1166 -0
  171. opentrons_shared_data/data/labware/definitions/2/greiner_96_wellplate_382ul/1.json +1156 -0
  172. opentrons_shared_data/data/labware/definitions/2/ibidi_96_square_well_plate_300ul/1.json +1105 -0
  173. opentrons_shared_data/data/labware/definitions/2/ibidi_96_square_well_plate_300ul/2.json +1216 -0
  174. opentrons_shared_data/data/labware/definitions/2/ibidi_96_square_well_plate_300ul_lid/1.json +110 -0
  175. opentrons_shared_data/data/labware/definitions/2/milliplex_r_96_well_microtiter_plate/1.json +1018 -0
  176. opentrons_shared_data/data/labware/definitions/2/nest_12_reservoir_15ml/1.json +190 -0
  177. opentrons_shared_data/data/labware/definitions/2/nest_12_reservoir_15ml/2.json +226 -0
  178. opentrons_shared_data/data/labware/definitions/2/nest_12_reservoir_15ml/3.json +226 -0
  179. opentrons_shared_data/data/labware/definitions/2/nest_12_reservoir_22ml/1.json +232 -0
  180. opentrons_shared_data/data/labware/definitions/2/nest_1_reservoir_195ml/1.json +54 -0
  181. opentrons_shared_data/data/labware/definitions/2/nest_1_reservoir_195ml/2.json +56 -0
  182. opentrons_shared_data/data/labware/definitions/2/nest_1_reservoir_195ml/3.json +83 -0
  183. opentrons_shared_data/data/labware/definitions/2/nest_1_reservoir_195ml/4.json +83 -0
  184. opentrons_shared_data/data/labware/definitions/2/nest_1_reservoir_290ml/1.json +54 -0
  185. opentrons_shared_data/data/labware/definitions/2/nest_1_reservoir_290ml/2.json +80 -0
  186. opentrons_shared_data/data/labware/definitions/2/nest_1_reservoir_290ml/3.json +80 -0
  187. opentrons_shared_data/data/labware/definitions/2/nest_1_reservoir_290ml/4.json +80 -0
  188. opentrons_shared_data/data/labware/definitions/2/nest_24_wellplate_10.4ml/1.json +386 -0
  189. opentrons_shared_data/data/labware/definitions/2/nest_8_reservoir_22ml/1.json +162 -0
  190. opentrons_shared_data/data/labware/definitions/2/nest_96_wellplate_100ul_pcr_full_skirt/1.json +1018 -0
  191. opentrons_shared_data/data/labware/definitions/2/nest_96_wellplate_100ul_pcr_full_skirt/2.json +1039 -0
  192. opentrons_shared_data/data/labware/definitions/2/nest_96_wellplate_100ul_pcr_full_skirt/3.json +1161 -0
  193. opentrons_shared_data/data/labware/definitions/2/nest_96_wellplate_100ul_pcr_full_skirt/4.json +1166 -0
  194. opentrons_shared_data/data/labware/definitions/2/nest_96_wellplate_100ul_pcr_full_skirt/5.json +1166 -0
  195. opentrons_shared_data/data/labware/definitions/2/nest_96_wellplate_200ul_flat/1.json +1017 -0
  196. opentrons_shared_data/data/labware/definitions/2/nest_96_wellplate_200ul_flat/2.json +1031 -0
  197. opentrons_shared_data/data/labware/definitions/2/nest_96_wellplate_200ul_flat/3.json +1140 -0
  198. opentrons_shared_data/data/labware/definitions/2/nest_96_wellplate_200ul_flat/4.json +1145 -0
  199. opentrons_shared_data/data/labware/definitions/2/nest_96_wellplate_200ul_flat/5.json +1145 -0
  200. opentrons_shared_data/data/labware/definitions/2/nest_96_wellplate_2ml_deep/1.json +1121 -0
  201. opentrons_shared_data/data/labware/definitions/2/nest_96_wellplate_2ml_deep/2.json +1147 -0
  202. opentrons_shared_data/data/labware/definitions/2/nest_96_wellplate_2ml_deep/3.json +1256 -0
  203. opentrons_shared_data/data/labware/definitions/2/nest_96_wellplate_2ml_deep/4.json +1261 -0
  204. opentrons_shared_data/data/labware/definitions/2/nest_96_wellplate_2ml_deep/5.json +1261 -0
  205. opentrons_shared_data/data/labware/definitions/2/nunc_384_wellplate_100ul/1.json +5136 -0
  206. opentrons_shared_data/data/labware/definitions/2/nunc_96_wellplate_450ul/1.json +1159 -0
  207. opentrons_shared_data/data/labware/definitions/2/opentrons_10_tuberack_falcon_4x50ml_6x15ml_conical/1.json +164 -0
  208. opentrons_shared_data/data/labware/definitions/2/opentrons_10_tuberack_falcon_4x50ml_6x15ml_conical/2.json +232 -0
  209. opentrons_shared_data/data/labware/definitions/2/opentrons_10_tuberack_falcon_4x50ml_6x15ml_conical/3.json +232 -0
  210. opentrons_shared_data/data/labware/definitions/2/opentrons_10_tuberack_falcon_4x50ml_6x15ml_conical_acrylic/1.json +162 -0
  211. opentrons_shared_data/data/labware/definitions/2/opentrons_10_tuberack_nest_4x50ml_6x15ml_conical/1.json +160 -0
  212. opentrons_shared_data/data/labware/definitions/2/opentrons_10_tuberack_nest_4x50ml_6x15ml_conical/2.json +235 -0
  213. opentrons_shared_data/data/labware/definitions/2/opentrons_15_tuberack_eppendorf_15ml_conical/1.json +314 -0
  214. opentrons_shared_data/data/labware/definitions/2/opentrons_15_tuberack_falcon_15ml_conical/1.json +211 -0
  215. opentrons_shared_data/data/labware/definitions/2/opentrons_15_tuberack_falcon_15ml_conical/2.json +259 -0
  216. opentrons_shared_data/data/labware/definitions/2/opentrons_15_tuberack_falcon_15ml_conical/3.json +259 -0
  217. opentrons_shared_data/data/labware/definitions/2/opentrons_15_tuberack_nest_15ml_conical/1.json +209 -0
  218. opentrons_shared_data/data/labware/definitions/2/opentrons_15_tuberack_nest_15ml_conical/2.json +257 -0
  219. opentrons_shared_data/data/labware/definitions/2/opentrons_1_trash_1100ml_fixed/1.json +50 -0
  220. opentrons_shared_data/data/labware/definitions/2/opentrons_1_trash_3200ml_fixed/1.json +50 -0
  221. opentrons_shared_data/data/labware/definitions/2/opentrons_1_trash_850ml_fixed/1.json +50 -0
  222. opentrons_shared_data/data/labware/definitions/2/opentrons_24_aluminumblock_generic_2ml_screwcap/1.json +300 -0
  223. opentrons_shared_data/data/labware/definitions/2/opentrons_24_aluminumblock_generic_2ml_screwcap/2.json +301 -0
  224. opentrons_shared_data/data/labware/definitions/2/opentrons_24_aluminumblock_generic_2ml_screwcap/3.json +352 -0
  225. opentrons_shared_data/data/labware/definitions/2/opentrons_24_aluminumblock_nest_0.5ml_screwcap/1.json +299 -0
  226. opentrons_shared_data/data/labware/definitions/2/opentrons_24_aluminumblock_nest_0.5ml_screwcap/2.json +370 -0
  227. opentrons_shared_data/data/labware/definitions/2/opentrons_24_aluminumblock_nest_0.5ml_screwcap/3.json +370 -0
  228. opentrons_shared_data/data/labware/definitions/2/opentrons_24_aluminumblock_nest_0.5ml_screwcap/4.json +370 -0
  229. opentrons_shared_data/data/labware/definitions/2/opentrons_24_aluminumblock_nest_1.5ml_screwcap/1.json +299 -0
  230. opentrons_shared_data/data/labware/definitions/2/opentrons_24_aluminumblock_nest_1.5ml_screwcap/2.json +356 -0
  231. opentrons_shared_data/data/labware/definitions/2/opentrons_24_aluminumblock_nest_1.5ml_screwcap/3.json +356 -0
  232. opentrons_shared_data/data/labware/definitions/2/opentrons_24_aluminumblock_nest_1.5ml_snapcap/1.json +301 -0
  233. opentrons_shared_data/data/labware/definitions/2/opentrons_24_aluminumblock_nest_1.5ml_snapcap/2.json +358 -0
  234. opentrons_shared_data/data/labware/definitions/2/opentrons_24_aluminumblock_nest_1.5ml_snapcap/3.json +358 -0
  235. opentrons_shared_data/data/labware/definitions/2/opentrons_24_aluminumblock_nest_2ml_screwcap/1.json +299 -0
  236. opentrons_shared_data/data/labware/definitions/2/opentrons_24_aluminumblock_nest_2ml_screwcap/2.json +350 -0
  237. opentrons_shared_data/data/labware/definitions/2/opentrons_24_aluminumblock_nest_2ml_screwcap/3.json +350 -0
  238. opentrons_shared_data/data/labware/definitions/2/opentrons_24_aluminumblock_nest_2ml_snapcap/1.json +301 -0
  239. opentrons_shared_data/data/labware/definitions/2/opentrons_24_aluminumblock_nest_2ml_snapcap/2.json +386 -0
  240. opentrons_shared_data/data/labware/definitions/2/opentrons_24_aluminumblock_nest_2ml_snapcap/3.json +386 -0
  241. opentrons_shared_data/data/labware/definitions/2/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1.json +312 -0
  242. opentrons_shared_data/data/labware/definitions/2/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/2.json +418 -0
  243. opentrons_shared_data/data/labware/definitions/2/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/3.json +418 -0
  244. opentrons_shared_data/data/labware/definitions/2/opentrons_24_tuberack_eppendorf_2ml_safelock_snapcap/1.json +311 -0
  245. opentrons_shared_data/data/labware/definitions/2/opentrons_24_tuberack_eppendorf_2ml_safelock_snapcap/2.json +473 -0
  246. opentrons_shared_data/data/labware/definitions/2/opentrons_24_tuberack_eppendorf_2ml_safelock_snapcap/3.json +473 -0
  247. opentrons_shared_data/data/labware/definitions/2/opentrons_24_tuberack_eppendorf_2ml_safelock_snapcap_acrylic/1.json +309 -0
  248. opentrons_shared_data/data/labware/definitions/2/opentrons_24_tuberack_generic_0.75ml_snapcap_acrylic/1.json +298 -0
  249. opentrons_shared_data/data/labware/definitions/2/opentrons_24_tuberack_generic_2ml_screwcap/1.json +300 -0
  250. opentrons_shared_data/data/labware/definitions/2/opentrons_24_tuberack_generic_2ml_screwcap/2.json +351 -0
  251. opentrons_shared_data/data/labware/definitions/2/opentrons_24_tuberack_nest_0.5ml_screwcap/1.json +300 -0
  252. opentrons_shared_data/data/labware/definitions/2/opentrons_24_tuberack_nest_0.5ml_screwcap/2.json +371 -0
  253. opentrons_shared_data/data/labware/definitions/2/opentrons_24_tuberack_nest_0.5ml_screwcap/3.json +371 -0
  254. opentrons_shared_data/data/labware/definitions/2/opentrons_24_tuberack_nest_0.5ml_screwcap/4.json +371 -0
  255. opentrons_shared_data/data/labware/definitions/2/opentrons_24_tuberack_nest_1.5ml_screwcap/1.json +300 -0
  256. opentrons_shared_data/data/labware/definitions/2/opentrons_24_tuberack_nest_1.5ml_screwcap/2.json +357 -0
  257. opentrons_shared_data/data/labware/definitions/2/opentrons_24_tuberack_nest_1.5ml_snapcap/1.json +302 -0
  258. opentrons_shared_data/data/labware/definitions/2/opentrons_24_tuberack_nest_1.5ml_snapcap/2.json +359 -0
  259. opentrons_shared_data/data/labware/definitions/2/opentrons_24_tuberack_nest_2ml_screwcap/1.json +300 -0
  260. opentrons_shared_data/data/labware/definitions/2/opentrons_24_tuberack_nest_2ml_screwcap/2.json +351 -0
  261. opentrons_shared_data/data/labware/definitions/2/opentrons_24_tuberack_nest_2ml_snapcap/1.json +302 -0
  262. opentrons_shared_data/data/labware/definitions/2/opentrons_24_tuberack_nest_2ml_snapcap/2.json +387 -0
  263. opentrons_shared_data/data/labware/definitions/2/opentrons_40_aluminumblock_eppendorf_24x2ml_safelock_snapcap_generic_16x0.2ml_pcr_strip/1.json +481 -0
  264. opentrons_shared_data/data/labware/definitions/2/opentrons_6_tuberack_falcon_50ml_conical/1.json +112 -0
  265. opentrons_shared_data/data/labware/definitions/2/opentrons_6_tuberack_falcon_50ml_conical/2.json +145 -0
  266. opentrons_shared_data/data/labware/definitions/2/opentrons_6_tuberack_nest_50ml_conical/1.json +110 -0
  267. opentrons_shared_data/data/labware/definitions/2/opentrons_6_tuberack_nest_50ml_conical/2.json +150 -0
  268. opentrons_shared_data/data/labware/definitions/2/opentrons_6_tuberack_nest_50ml_conical/3.json +150 -0
  269. opentrons_shared_data/data/labware/definitions/2/opentrons_96_aluminumblock_biorad_wellplate_200ul/1.json +1029 -0
  270. opentrons_shared_data/data/labware/definitions/2/opentrons_96_aluminumblock_generic_pcr_strip_200ul/1.json +1026 -0
  271. opentrons_shared_data/data/labware/definitions/2/opentrons_96_aluminumblock_generic_pcr_strip_200ul/2.json +1027 -0
  272. opentrons_shared_data/data/labware/definitions/2/opentrons_96_aluminumblock_generic_pcr_strip_200ul/3.json +1027 -0
  273. opentrons_shared_data/data/labware/definitions/2/opentrons_96_aluminumblock_generic_pcr_strip_200ul/4.json +1149 -0
  274. opentrons_shared_data/data/labware/definitions/2/opentrons_96_aluminumblock_nest_wellplate_100ul/1.json +1027 -0
  275. opentrons_shared_data/data/labware/definitions/2/opentrons_96_deep_well_adapter/1.json +41 -0
  276. opentrons_shared_data/data/labware/definitions/2/opentrons_96_deep_well_adapter_nest_wellplate_2ml_deep/1.json +1121 -0
  277. opentrons_shared_data/data/labware/definitions/2/opentrons_96_deep_well_temp_mod_adapter/1.json +41 -0
  278. opentrons_shared_data/data/labware/definitions/2/opentrons_96_filtertiprack_1000ul/1.json +1017 -0
  279. opentrons_shared_data/data/labware/definitions/2/opentrons_96_filtertiprack_10ul/1.json +1017 -0
  280. opentrons_shared_data/data/labware/definitions/2/opentrons_96_filtertiprack_200ul/1.json +1017 -0
  281. opentrons_shared_data/data/labware/definitions/2/opentrons_96_filtertiprack_20ul/1.json +1017 -0
  282. opentrons_shared_data/data/labware/definitions/2/opentrons_96_flat_bottom_adapter/1.json +41 -0
  283. opentrons_shared_data/data/labware/definitions/2/opentrons_96_flat_bottom_adapter_nest_wellplate_200ul_flat/1.json +1027 -0
  284. opentrons_shared_data/data/labware/definitions/2/opentrons_96_pcr_adapter/1.json +1032 -0
  285. opentrons_shared_data/data/labware/definitions/2/opentrons_96_pcr_adapter_armadillo_wellplate_200ul/1.json +1027 -0
  286. opentrons_shared_data/data/labware/definitions/2/opentrons_96_pcr_adapter_nest_wellplate_100ul_pcr_full_skirt/1.json +1025 -0
  287. opentrons_shared_data/data/labware/definitions/2/opentrons_96_tiprack_1000ul/1.json +1019 -0
  288. opentrons_shared_data/data/labware/definitions/2/opentrons_96_tiprack_10ul/1.json +1019 -0
  289. opentrons_shared_data/data/labware/definitions/2/opentrons_96_tiprack_20ul/1.json +1019 -0
  290. opentrons_shared_data/data/labware/definitions/2/opentrons_96_tiprack_300ul/1.json +1019 -0
  291. opentrons_shared_data/data/labware/definitions/2/opentrons_96_well_aluminum_block/1.json +1032 -0
  292. opentrons_shared_data/data/labware/definitions/2/opentrons_96_wellplate_200ul_pcr_full_skirt/1.json +1019 -0
  293. opentrons_shared_data/data/labware/definitions/2/opentrons_96_wellplate_200ul_pcr_full_skirt/2.json +1045 -0
  294. opentrons_shared_data/data/labware/definitions/2/opentrons_96_wellplate_200ul_pcr_full_skirt/3.json +1174 -0
  295. opentrons_shared_data/data/labware/definitions/2/opentrons_96_wellplate_200ul_pcr_full_skirt/4.json +1174 -0
  296. opentrons_shared_data/data/labware/definitions/2/opentrons_aluminum_flat_bottom_plate/1.json +41 -0
  297. opentrons_shared_data/data/labware/definitions/2/opentrons_calibration_adapter_heatershaker_module/1.json +62 -0
  298. opentrons_shared_data/data/labware/definitions/2/opentrons_calibration_adapter_temperature_module/1.json +62 -0
  299. opentrons_shared_data/data/labware/definitions/2/opentrons_calibration_adapter_thermocycler_module/1.json +69 -0
  300. opentrons_shared_data/data/labware/definitions/2/opentrons_calibrationblock_short_side_left/1.json +71 -0
  301. opentrons_shared_data/data/labware/definitions/2/opentrons_calibrationblock_short_side_right/1.json +71 -0
  302. opentrons_shared_data/data/labware/definitions/2/opentrons_flex_96_filtertiprack_1000ul/1.json +1031 -0
  303. opentrons_shared_data/data/labware/definitions/2/opentrons_flex_96_filtertiprack_200ul/1.json +1031 -0
  304. opentrons_shared_data/data/labware/definitions/2/opentrons_flex_96_filtertiprack_20ul/1.json +1031 -0
  305. opentrons_shared_data/data/labware/definitions/2/opentrons_flex_96_filtertiprack_50ul/1.json +1031 -0
  306. opentrons_shared_data/data/labware/definitions/2/opentrons_flex_96_tiprack_1000ul/1.json +1031 -0
  307. opentrons_shared_data/data/labware/definitions/2/opentrons_flex_96_tiprack_200ul/1.json +1031 -0
  308. opentrons_shared_data/data/labware/definitions/2/opentrons_flex_96_tiprack_20ul/1.json +1031 -0
  309. opentrons_shared_data/data/labware/definitions/2/opentrons_flex_96_tiprack_50ul/1.json +1031 -0
  310. opentrons_shared_data/data/labware/definitions/2/opentrons_flex_96_tiprack_adapter/1.json +41 -0
  311. opentrons_shared_data/data/labware/definitions/2/opentrons_flex_deck_riser/1.json +41 -0
  312. opentrons_shared_data/data/labware/definitions/2/opentrons_flex_lid_absorbance_plate_reader_module/1.json +57 -0
  313. opentrons_shared_data/data/labware/definitions/2/opentrons_flex_tiprack_lid/1.json +122 -0
  314. opentrons_shared_data/data/labware/definitions/2/opentrons_tough_12_reservoir_22ml/1.json +228 -0
  315. opentrons_shared_data/data/labware/definitions/2/opentrons_tough_1_reservoir_300ml/1.json +83 -0
  316. opentrons_shared_data/data/labware/definitions/2/opentrons_tough_4_reservoir_72ml/1.json +114 -0
  317. opentrons_shared_data/data/labware/definitions/2/opentrons_tough_pcr_auto_sealing_lid/1.json +134 -0
  318. opentrons_shared_data/data/labware/definitions/2/opentrons_tough_pcr_auto_sealing_lid/2.json +134 -0
  319. opentrons_shared_data/data/labware/definitions/2/opentrons_tough_universal_lid/1.json +101 -0
  320. opentrons_shared_data/data/labware/definitions/2/opentrons_tough_universal_lid/2.json +101 -0
  321. opentrons_shared_data/data/labware/definitions/2/opentrons_universal_flat_adapter/1.json +151 -0
  322. opentrons_shared_data/data/labware/definitions/2/opentrons_universal_flat_adapter_corning_384_wellplate_112ul_flat/1.json +4710 -0
  323. opentrons_shared_data/data/labware/definitions/2/opentrons_universal_flat_adapter_type_b/1.json +151 -0
  324. opentrons_shared_data/data/labware/definitions/2/protocol_engine_lid_stack_object/1.json +48 -0
  325. opentrons_shared_data/data/labware/definitions/2/smc_384_read_plate/1.json +4701 -0
  326. opentrons_shared_data/data/labware/definitions/2/smc_384_read_plate/2.json +5100 -0
  327. opentrons_shared_data/data/labware/definitions/2/thermoscientific_96_wellplate_800ul/1.json +1194 -0
  328. opentrons_shared_data/data/labware/definitions/2/thermoscientific_abgene_96_wellplate_1.2ml/1.json +1314 -0
  329. opentrons_shared_data/data/labware/definitions/2/thermoscientificnunc_96_wellplate_1300ul/1.json +1019 -0
  330. opentrons_shared_data/data/labware/definitions/2/thermoscientificnunc_96_wellplate_1300ul/2.json +1134 -0
  331. opentrons_shared_data/data/labware/definitions/2/thermoscientificnunc_96_wellplate_1300ul/3.json +1141 -0
  332. opentrons_shared_data/data/labware/definitions/2/thermoscientificnunc_96_wellplate_2000ul/1.json +1019 -0
  333. opentrons_shared_data/data/labware/definitions/2/thermoscientificnunc_96_wellplate_2000ul/2.json +1134 -0
  334. opentrons_shared_data/data/labware/definitions/2/thermoscientificnunc_96_wellplate_2000ul/3.json +1141 -0
  335. opentrons_shared_data/data/labware/definitions/2/tipone_96_tiprack_200ul/1.json +1017 -0
  336. opentrons_shared_data/data/labware/definitions/2/usascientific_12_reservoir_22ml/1.json +192 -0
  337. opentrons_shared_data/data/labware/definitions/2/usascientific_12_reservoir_22ml/2.json +237 -0
  338. opentrons_shared_data/data/labware/definitions/2/usascientific_12_reservoir_22ml/3.json +237 -0
  339. opentrons_shared_data/data/labware/definitions/2/usascientific_12_reservoir_22ml/4.json +237 -0
  340. opentrons_shared_data/data/labware/definitions/2/usascientific_96_wellplate_2.4ml_deep/1.json +1116 -0
  341. opentrons_shared_data/data/labware/definitions/2/usascientific_96_wellplate_2.4ml_deep/2.json +1236 -0
  342. opentrons_shared_data/data/labware/definitions/2/usascientific_96_wellplate_2.4ml_deep/3.json +1243 -0
  343. opentrons_shared_data/data/labware/definitions/2/usascientific_96_wellplate_2.4ml_deep/4.json +1243 -0
  344. opentrons_shared_data/data/labware/definitions/3/schema3test_96_well_aluminum_block/999.json +1050 -0
  345. opentrons_shared_data/data/labware/definitions/3/schema3test_96_wellplate_200ul_pcr_full_skirt/999.json +1175 -0
  346. opentrons_shared_data/data/labware/definitions/3/schema3test_96_wellplate_360ul_flat/999.json +1189 -0
  347. opentrons_shared_data/data/labware/definitions/3/schema3test_aluminum_flat_bottom_plate/999.json +70 -0
  348. opentrons_shared_data/data/labware/definitions/3/schema3test_flex_96_tiprack_200ul/999.json +1040 -0
  349. opentrons_shared_data/data/labware/definitions/3/schema3test_flex_96_tiprack_adapter/999.json +70 -0
  350. opentrons_shared_data/data/labware/definitions/3/schema3test_flex_tiprack_lid/999.json +81 -0
  351. opentrons_shared_data/data/labware/definitions/3/schema3test_tough_pcr_auto_sealing_lid/999.json +115 -0
  352. opentrons_shared_data/data/labware/definitions/3/schema3test_universal_flat_adapter/999.json +177 -0
  353. opentrons_shared_data/data/labware/repository/schemas/1.json +81 -0
  354. opentrons_shared_data/data/labware/schemas/2.json +755 -0
  355. opentrons_shared_data/data/labware/schemas/3.json +915 -0
  356. opentrons_shared_data/data/liquid/schemas/1.json +21 -0
  357. opentrons_shared_data/data/liquid-class/definitions/1/ethanol_80/1.json +5811 -0
  358. opentrons_shared_data/data/liquid-class/definitions/1/ethanol_80/2.json +6886 -0
  359. opentrons_shared_data/data/liquid-class/definitions/1/glycerol_50/1.json +5531 -0
  360. opentrons_shared_data/data/liquid-class/definitions/1/glycerol_50/2.json +6542 -0
  361. opentrons_shared_data/data/liquid-class/definitions/1/water/1.json +5359 -0
  362. opentrons_shared_data/data/liquid-class/definitions/1/water/2.json +6332 -0
  363. opentrons_shared_data/data/liquid-class/schemas/1.json +505 -0
  364. opentrons_shared_data/data/module/definitions/1.json +57 -0
  365. opentrons_shared_data/data/module/definitions/2/magneticModuleV1.json +22 -0
  366. opentrons_shared_data/data/module/definitions/2/magneticModuleV2.json +69 -0
  367. opentrons_shared_data/data/module/definitions/2/temperatureModuleV1.json +22 -0
  368. opentrons_shared_data/data/module/definitions/2/temperatureModuleV2.json +69 -0
  369. opentrons_shared_data/data/module/definitions/2/thermocyclerModuleV1.json +23 -0
  370. opentrons_shared_data/data/module/definitions/3/absorbanceReaderV1.json +60 -0
  371. opentrons_shared_data/data/module/definitions/3/flexStackerModuleV1.json +89 -0
  372. opentrons_shared_data/data/module/definitions/3/heaterShakerModuleV1.json +218 -0
  373. opentrons_shared_data/data/module/definitions/3/magneticBlockV1.json +84 -0
  374. opentrons_shared_data/data/module/definitions/3/magneticModuleV1.json +67 -0
  375. opentrons_shared_data/data/module/definitions/3/magneticModuleV2.json +120 -0
  376. opentrons_shared_data/data/module/definitions/3/temperatureModuleV1.json +68 -0
  377. opentrons_shared_data/data/module/definitions/3/temperatureModuleV2.json +209 -0
  378. opentrons_shared_data/data/module/definitions/3/thermocyclerModuleV1.json +61 -0
  379. opentrons_shared_data/data/module/definitions/3/thermocyclerModuleV2.json +93 -0
  380. opentrons_shared_data/data/module/schemas/1.json +55 -0
  381. opentrons_shared_data/data/module/schemas/2.json +112 -0
  382. opentrons_shared_data/data/module/schemas/3.json +343 -0
  383. opentrons_shared_data/data/pipette/definitions/1/pipetteModelSpecs.json +11536 -0
  384. opentrons_shared_data/data/pipette/definitions/1/pipetteNameSpecs.json +784 -0
  385. opentrons_shared_data/data/pipette/definitions/2/general/eight_channel/p10/1_0.json +206 -0
  386. opentrons_shared_data/data/pipette/definitions/2/general/eight_channel/p10/1_3.json +206 -0
  387. opentrons_shared_data/data/pipette/definitions/2/general/eight_channel/p10/1_4.json +206 -0
  388. opentrons_shared_data/data/pipette/definitions/2/general/eight_channel/p10/1_5.json +206 -0
  389. opentrons_shared_data/data/pipette/definitions/2/general/eight_channel/p10/1_6.json +206 -0
  390. opentrons_shared_data/data/pipette/definitions/2/general/eight_channel/p1000/1_0.json +206 -0
  391. opentrons_shared_data/data/pipette/definitions/2/general/eight_channel/p1000/3_0.json +233 -0
  392. opentrons_shared_data/data/pipette/definitions/2/general/eight_channel/p1000/3_3.json +233 -0
  393. opentrons_shared_data/data/pipette/definitions/2/general/eight_channel/p1000/3_4.json +323 -0
  394. opentrons_shared_data/data/pipette/definitions/2/general/eight_channel/p1000/3_5.json +323 -0
  395. opentrons_shared_data/data/pipette/definitions/2/general/eight_channel/p20/2_0.json +224 -0
  396. opentrons_shared_data/data/pipette/definitions/2/general/eight_channel/p20/2_1.json +224 -0
  397. opentrons_shared_data/data/pipette/definitions/2/general/eight_channel/p300/1_0.json +197 -0
  398. opentrons_shared_data/data/pipette/definitions/2/general/eight_channel/p300/1_3.json +197 -0
  399. opentrons_shared_data/data/pipette/definitions/2/general/eight_channel/p300/1_4.json +197 -0
  400. opentrons_shared_data/data/pipette/definitions/2/general/eight_channel/p300/1_5.json +197 -0
  401. opentrons_shared_data/data/pipette/definitions/2/general/eight_channel/p300/2_0.json +188 -0
  402. opentrons_shared_data/data/pipette/definitions/2/general/eight_channel/p300/2_1.json +188 -0
  403. opentrons_shared_data/data/pipette/definitions/2/general/eight_channel/p50/1_0.json +197 -0
  404. opentrons_shared_data/data/pipette/definitions/2/general/eight_channel/p50/1_3.json +197 -0
  405. opentrons_shared_data/data/pipette/definitions/2/general/eight_channel/p50/1_4.json +197 -0
  406. opentrons_shared_data/data/pipette/definitions/2/general/eight_channel/p50/1_5.json +197 -0
  407. opentrons_shared_data/data/pipette/definitions/2/general/eight_channel/p50/3_0.json +203 -0
  408. opentrons_shared_data/data/pipette/definitions/2/general/eight_channel/p50/3_3.json +203 -0
  409. opentrons_shared_data/data/pipette/definitions/2/general/eight_channel/p50/3_4.json +253 -0
  410. opentrons_shared_data/data/pipette/definitions/2/general/eight_channel/p50/3_5.json +253 -0
  411. opentrons_shared_data/data/pipette/definitions/2/general/eight_channel_em/p1000/1_0.json +320 -0
  412. opentrons_shared_data/data/pipette/definitions/2/general/eight_channel_em/p1000/3_0.json +320 -0
  413. opentrons_shared_data/data/pipette/definitions/2/general/ninety_six_channel/p1000/1_0.json +556 -0
  414. opentrons_shared_data/data/pipette/definitions/2/general/ninety_six_channel/p1000/3_0.json +561 -0
  415. opentrons_shared_data/data/pipette/definitions/2/general/ninety_six_channel/p1000/3_3.json +556 -0
  416. opentrons_shared_data/data/pipette/definitions/2/general/ninety_six_channel/p1000/3_4.json +724 -0
  417. opentrons_shared_data/data/pipette/definitions/2/general/ninety_six_channel/p1000/3_5.json +858 -0
  418. opentrons_shared_data/data/pipette/definitions/2/general/ninety_six_channel/p1000/3_6.json +818 -0
  419. opentrons_shared_data/data/pipette/definitions/2/general/ninety_six_channel/p200/1_0.json +660 -0
  420. opentrons_shared_data/data/pipette/definitions/2/general/ninety_six_channel/p200/3_0.json +660 -0
  421. opentrons_shared_data/data/pipette/definitions/2/general/ninety_six_channel/p200/3_1.json +660 -0
  422. opentrons_shared_data/data/pipette/definitions/2/general/ninety_six_channel/p200/3_2.json +660 -0
  423. opentrons_shared_data/data/pipette/definitions/2/general/single_channel/p10/1_0.json +70 -0
  424. opentrons_shared_data/data/pipette/definitions/2/general/single_channel/p10/1_3.json +70 -0
  425. opentrons_shared_data/data/pipette/definitions/2/general/single_channel/p10/1_4.json +70 -0
  426. opentrons_shared_data/data/pipette/definitions/2/general/single_channel/p10/1_5.json +70 -0
  427. opentrons_shared_data/data/pipette/definitions/2/general/single_channel/p1000/1_0.json +70 -0
  428. opentrons_shared_data/data/pipette/definitions/2/general/single_channel/p1000/1_3.json +70 -0
  429. opentrons_shared_data/data/pipette/definitions/2/general/single_channel/p1000/1_4.json +70 -0
  430. opentrons_shared_data/data/pipette/definitions/2/general/single_channel/p1000/1_5.json +70 -0
  431. opentrons_shared_data/data/pipette/definitions/2/general/single_channel/p1000/2_0.json +69 -0
  432. opentrons_shared_data/data/pipette/definitions/2/general/single_channel/p1000/2_1.json +69 -0
  433. opentrons_shared_data/data/pipette/definitions/2/general/single_channel/p1000/2_2.json +69 -0
  434. opentrons_shared_data/data/pipette/definitions/2/general/single_channel/p1000/3_0.json +81 -0
  435. opentrons_shared_data/data/pipette/definitions/2/general/single_channel/p1000/3_3.json +81 -0
  436. opentrons_shared_data/data/pipette/definitions/2/general/single_channel/p1000/3_4.json +90 -0
  437. opentrons_shared_data/data/pipette/definitions/2/general/single_channel/p1000/3_5.json +90 -0
  438. opentrons_shared_data/data/pipette/definitions/2/general/single_channel/p1000/3_6.json +90 -0
  439. opentrons_shared_data/data/pipette/definitions/2/general/single_channel/p1000/3_7.json +81 -0
  440. opentrons_shared_data/data/pipette/definitions/2/general/single_channel/p20/2_0.json +72 -0
  441. opentrons_shared_data/data/pipette/definitions/2/general/single_channel/p20/2_1.json +72 -0
  442. opentrons_shared_data/data/pipette/definitions/2/general/single_channel/p20/2_2.json +72 -0
  443. opentrons_shared_data/data/pipette/definitions/2/general/single_channel/p300/1_0.json +69 -0
  444. opentrons_shared_data/data/pipette/definitions/2/general/single_channel/p300/1_3.json +69 -0
  445. opentrons_shared_data/data/pipette/definitions/2/general/single_channel/p300/1_4.json +69 -0
  446. opentrons_shared_data/data/pipette/definitions/2/general/single_channel/p300/1_5.json +69 -0
  447. opentrons_shared_data/data/pipette/definitions/2/general/single_channel/p300/2_0.json +68 -0
  448. opentrons_shared_data/data/pipette/definitions/2/general/single_channel/p300/2_1.json +68 -0
  449. opentrons_shared_data/data/pipette/definitions/2/general/single_channel/p50/1_0.json +69 -0
  450. opentrons_shared_data/data/pipette/definitions/2/general/single_channel/p50/1_3.json +69 -0
  451. opentrons_shared_data/data/pipette/definitions/2/general/single_channel/p50/1_4.json +69 -0
  452. opentrons_shared_data/data/pipette/definitions/2/general/single_channel/p50/1_5.json +69 -0
  453. opentrons_shared_data/data/pipette/definitions/2/general/single_channel/p50/3_0.json +83 -0
  454. opentrons_shared_data/data/pipette/definitions/2/general/single_channel/p50/3_3.json +83 -0
  455. opentrons_shared_data/data/pipette/definitions/2/general/single_channel/p50/3_4.json +88 -0
  456. opentrons_shared_data/data/pipette/definitions/2/general/single_channel/p50/3_5.json +88 -0
  457. opentrons_shared_data/data/pipette/definitions/2/general/single_channel/p50/3_6.json +88 -0
  458. opentrons_shared_data/data/pipette/definitions/2/geometry/eight_channel/p10/1_0.json +42 -0
  459. opentrons_shared_data/data/pipette/definitions/2/geometry/eight_channel/p10/1_3.json +42 -0
  460. opentrons_shared_data/data/pipette/definitions/2/geometry/eight_channel/p10/1_4.json +42 -0
  461. opentrons_shared_data/data/pipette/definitions/2/geometry/eight_channel/p10/1_5.json +42 -0
  462. opentrons_shared_data/data/pipette/definitions/2/geometry/eight_channel/p10/1_6.json +42 -0
  463. opentrons_shared_data/data/pipette/definitions/2/geometry/eight_channel/p10/placeholder.gltf +0 -0
  464. opentrons_shared_data/data/pipette/definitions/2/geometry/eight_channel/p1000/1_0.json +42 -0
  465. opentrons_shared_data/data/pipette/definitions/2/geometry/eight_channel/p1000/3_0.json +55 -0
  466. opentrons_shared_data/data/pipette/definitions/2/geometry/eight_channel/p1000/3_3.json +55 -0
  467. opentrons_shared_data/data/pipette/definitions/2/geometry/eight_channel/p1000/3_4.json +55 -0
  468. opentrons_shared_data/data/pipette/definitions/2/geometry/eight_channel/p1000/3_5.json +55 -0
  469. opentrons_shared_data/data/pipette/definitions/2/geometry/eight_channel/p1000/placeholder.gltf +0 -0
  470. opentrons_shared_data/data/pipette/definitions/2/geometry/eight_channel/p20/2_0.json +42 -0
  471. opentrons_shared_data/data/pipette/definitions/2/geometry/eight_channel/p20/2_1.json +42 -0
  472. opentrons_shared_data/data/pipette/definitions/2/geometry/eight_channel/p20/placeholder.gltf +0 -0
  473. opentrons_shared_data/data/pipette/definitions/2/geometry/eight_channel/p300/1_0.json +42 -0
  474. opentrons_shared_data/data/pipette/definitions/2/geometry/eight_channel/p300/1_3.json +42 -0
  475. opentrons_shared_data/data/pipette/definitions/2/geometry/eight_channel/p300/1_4.json +42 -0
  476. opentrons_shared_data/data/pipette/definitions/2/geometry/eight_channel/p300/1_5.json +42 -0
  477. opentrons_shared_data/data/pipette/definitions/2/geometry/eight_channel/p300/2_0.json +42 -0
  478. opentrons_shared_data/data/pipette/definitions/2/geometry/eight_channel/p300/2_1.json +42 -0
  479. opentrons_shared_data/data/pipette/definitions/2/geometry/eight_channel/p300/placeholder.gltf +0 -0
  480. opentrons_shared_data/data/pipette/definitions/2/geometry/eight_channel/p50/1_0.json +42 -0
  481. opentrons_shared_data/data/pipette/definitions/2/geometry/eight_channel/p50/1_3.json +42 -0
  482. opentrons_shared_data/data/pipette/definitions/2/geometry/eight_channel/p50/1_4.json +42 -0
  483. opentrons_shared_data/data/pipette/definitions/2/geometry/eight_channel/p50/1_5.json +42 -0
  484. opentrons_shared_data/data/pipette/definitions/2/geometry/eight_channel/p50/3_0.json +47 -0
  485. opentrons_shared_data/data/pipette/definitions/2/geometry/eight_channel/p50/3_3.json +47 -0
  486. opentrons_shared_data/data/pipette/definitions/2/geometry/eight_channel/p50/3_4.json +47 -0
  487. opentrons_shared_data/data/pipette/definitions/2/geometry/eight_channel/p50/3_5.json +51 -0
  488. opentrons_shared_data/data/pipette/definitions/2/geometry/eight_channel/p50/placeholder.gltf +0 -0
  489. opentrons_shared_data/data/pipette/definitions/2/geometry/eight_channel_em/p1000/1_0.json +55 -0
  490. opentrons_shared_data/data/pipette/definitions/2/geometry/eight_channel_em/p1000/3_0.json +55 -0
  491. opentrons_shared_data/data/pipette/definitions/2/geometry/eight_channel_em/p1000/placeholder.gltf +0 -0
  492. opentrons_shared_data/data/pipette/definitions/2/geometry/ninety_six_channel/p1000/1_0.json +296 -0
  493. opentrons_shared_data/data/pipette/definitions/2/geometry/ninety_six_channel/p1000/3_0.json +309 -0
  494. opentrons_shared_data/data/pipette/definitions/2/geometry/ninety_six_channel/p1000/3_3.json +309 -0
  495. opentrons_shared_data/data/pipette/definitions/2/geometry/ninety_six_channel/p1000/3_4.json +309 -0
  496. opentrons_shared_data/data/pipette/definitions/2/geometry/ninety_six_channel/p1000/3_5.json +309 -0
  497. opentrons_shared_data/data/pipette/definitions/2/geometry/ninety_six_channel/p1000/3_6.json +309 -0
  498. opentrons_shared_data/data/pipette/definitions/2/geometry/ninety_six_channel/p1000/placeholder.gltf +0 -0
  499. opentrons_shared_data/data/pipette/definitions/2/geometry/ninety_six_channel/p200/1_0.json +305 -0
  500. opentrons_shared_data/data/pipette/definitions/2/geometry/ninety_six_channel/p200/3_0.json +309 -0
  501. opentrons_shared_data/data/pipette/definitions/2/geometry/ninety_six_channel/p200/3_1.json +309 -0
  502. opentrons_shared_data/data/pipette/definitions/2/geometry/ninety_six_channel/p200/3_2.json +309 -0
  503. opentrons_shared_data/data/pipette/definitions/2/geometry/ninety_six_channel/p200/placeholder.gltf +0 -0
  504. opentrons_shared_data/data/pipette/definitions/2/geometry/single_channel/p10/1_0.json +15 -0
  505. opentrons_shared_data/data/pipette/definitions/2/geometry/single_channel/p10/1_3.json +15 -0
  506. opentrons_shared_data/data/pipette/definitions/2/geometry/single_channel/p10/1_4.json +15 -0
  507. opentrons_shared_data/data/pipette/definitions/2/geometry/single_channel/p10/1_5.json +15 -0
  508. opentrons_shared_data/data/pipette/definitions/2/geometry/single_channel/p10/placeholder.gltf +0 -0
  509. opentrons_shared_data/data/pipette/definitions/2/geometry/single_channel/p1000/1_0.json +15 -0
  510. opentrons_shared_data/data/pipette/definitions/2/geometry/single_channel/p1000/1_3.json +15 -0
  511. opentrons_shared_data/data/pipette/definitions/2/geometry/single_channel/p1000/1_4.json +15 -0
  512. opentrons_shared_data/data/pipette/definitions/2/geometry/single_channel/p1000/1_5.json +15 -0
  513. opentrons_shared_data/data/pipette/definitions/2/geometry/single_channel/p1000/2_0.json +15 -0
  514. opentrons_shared_data/data/pipette/definitions/2/geometry/single_channel/p1000/2_1.json +15 -0
  515. opentrons_shared_data/data/pipette/definitions/2/geometry/single_channel/p1000/2_2.json +15 -0
  516. opentrons_shared_data/data/pipette/definitions/2/geometry/single_channel/p1000/3_0.json +28 -0
  517. opentrons_shared_data/data/pipette/definitions/2/geometry/single_channel/p1000/3_3.json +28 -0
  518. opentrons_shared_data/data/pipette/definitions/2/geometry/single_channel/p1000/3_4.json +28 -0
  519. opentrons_shared_data/data/pipette/definitions/2/geometry/single_channel/p1000/3_5.json +28 -0
  520. opentrons_shared_data/data/pipette/definitions/2/geometry/single_channel/p1000/3_6.json +28 -0
  521. opentrons_shared_data/data/pipette/definitions/2/geometry/single_channel/p1000/3_7.json +28 -0
  522. opentrons_shared_data/data/pipette/definitions/2/geometry/single_channel/p1000/placeholder.gltf +0 -0
  523. opentrons_shared_data/data/pipette/definitions/2/geometry/single_channel/p20/2_0.json +15 -0
  524. opentrons_shared_data/data/pipette/definitions/2/geometry/single_channel/p20/2_1.json +15 -0
  525. opentrons_shared_data/data/pipette/definitions/2/geometry/single_channel/p20/2_2.json +15 -0
  526. opentrons_shared_data/data/pipette/definitions/2/geometry/single_channel/p20/placeholder.gltf +0 -0
  527. opentrons_shared_data/data/pipette/definitions/2/geometry/single_channel/p300/1_0.json +15 -0
  528. opentrons_shared_data/data/pipette/definitions/2/geometry/single_channel/p300/1_3.json +15 -0
  529. opentrons_shared_data/data/pipette/definitions/2/geometry/single_channel/p300/1_4.json +15 -0
  530. opentrons_shared_data/data/pipette/definitions/2/geometry/single_channel/p300/1_5.json +15 -0
  531. opentrons_shared_data/data/pipette/definitions/2/geometry/single_channel/p300/2_0.json +15 -0
  532. opentrons_shared_data/data/pipette/definitions/2/geometry/single_channel/p300/2_1.json +15 -0
  533. opentrons_shared_data/data/pipette/definitions/2/geometry/single_channel/p300/placeholder.gltf +0 -0
  534. opentrons_shared_data/data/pipette/definitions/2/geometry/single_channel/p50/1_0.json +15 -0
  535. opentrons_shared_data/data/pipette/definitions/2/geometry/single_channel/p50/1_3.json +15 -0
  536. opentrons_shared_data/data/pipette/definitions/2/geometry/single_channel/p50/1_4.json +15 -0
  537. opentrons_shared_data/data/pipette/definitions/2/geometry/single_channel/p50/1_5.json +15 -0
  538. opentrons_shared_data/data/pipette/definitions/2/geometry/single_channel/p50/3_0.json +20 -0
  539. opentrons_shared_data/data/pipette/definitions/2/geometry/single_channel/p50/3_3.json +20 -0
  540. opentrons_shared_data/data/pipette/definitions/2/geometry/single_channel/p50/3_4.json +20 -0
  541. opentrons_shared_data/data/pipette/definitions/2/geometry/single_channel/p50/3_5.json +20 -0
  542. opentrons_shared_data/data/pipette/definitions/2/geometry/single_channel/p50/3_6.json +24 -0
  543. opentrons_shared_data/data/pipette/definitions/2/geometry/single_channel/p50/placeholder.gltf +0 -0
  544. opentrons_shared_data/data/pipette/definitions/2/liquid/eight_channel/p10/default/1_0.json +51 -0
  545. opentrons_shared_data/data/pipette/definitions/2/liquid/eight_channel/p10/default/1_3.json +51 -0
  546. opentrons_shared_data/data/pipette/definitions/2/liquid/eight_channel/p10/default/1_4.json +51 -0
  547. opentrons_shared_data/data/pipette/definitions/2/liquid/eight_channel/p10/default/1_5.json +40 -0
  548. opentrons_shared_data/data/pipette/definitions/2/liquid/eight_channel/p10/default/1_6.json +48 -0
  549. opentrons_shared_data/data/pipette/definitions/2/liquid/eight_channel/p1000/default/1_0.json +350 -0
  550. opentrons_shared_data/data/pipette/definitions/2/liquid/eight_channel/p1000/default/3_0.json +353 -0
  551. opentrons_shared_data/data/pipette/definitions/2/liquid/eight_channel/p1000/default/3_3.json +356 -0
  552. opentrons_shared_data/data/pipette/definitions/2/liquid/eight_channel/p1000/default/3_4.json +356 -0
  553. opentrons_shared_data/data/pipette/definitions/2/liquid/eight_channel/p1000/default/3_5.json +287 -0
  554. opentrons_shared_data/data/pipette/definitions/2/liquid/eight_channel/p20/default/2_0.json +302 -0
  555. opentrons_shared_data/data/pipette/definitions/2/liquid/eight_channel/p20/default/2_1.json +184 -0
  556. opentrons_shared_data/data/pipette/definitions/2/liquid/eight_channel/p300/default/1_0.json +61 -0
  557. opentrons_shared_data/data/pipette/definitions/2/liquid/eight_channel/p300/default/1_3.json +61 -0
  558. opentrons_shared_data/data/pipette/definitions/2/liquid/eight_channel/p300/default/1_4.json +61 -0
  559. opentrons_shared_data/data/pipette/definitions/2/liquid/eight_channel/p300/default/1_5.json +61 -0
  560. opentrons_shared_data/data/pipette/definitions/2/liquid/eight_channel/p300/default/2_0.json +185 -0
  561. opentrons_shared_data/data/pipette/definitions/2/liquid/eight_channel/p300/default/2_1.json +187 -0
  562. opentrons_shared_data/data/pipette/definitions/2/liquid/eight_channel/p50/default/1_0.json +122 -0
  563. opentrons_shared_data/data/pipette/definitions/2/liquid/eight_channel/p50/default/1_3.json +122 -0
  564. opentrons_shared_data/data/pipette/definitions/2/liquid/eight_channel/p50/default/1_4.json +122 -0
  565. opentrons_shared_data/data/pipette/definitions/2/liquid/eight_channel/p50/default/1_5.json +104 -0
  566. opentrons_shared_data/data/pipette/definitions/2/liquid/eight_channel/p50/default/3_0.json +97 -0
  567. opentrons_shared_data/data/pipette/definitions/2/liquid/eight_channel/p50/default/3_3.json +98 -0
  568. opentrons_shared_data/data/pipette/definitions/2/liquid/eight_channel/p50/default/3_4.json +98 -0
  569. opentrons_shared_data/data/pipette/definitions/2/liquid/eight_channel/p50/default/3_5.json +155 -0
  570. opentrons_shared_data/data/pipette/definitions/2/liquid/eight_channel/p50/lowVolumeDefault/3_0.json +92 -0
  571. opentrons_shared_data/data/pipette/definitions/2/liquid/eight_channel/p50/lowVolumeDefault/3_3.json +88 -0
  572. opentrons_shared_data/data/pipette/definitions/2/liquid/eight_channel/p50/lowVolumeDefault/3_4.json +88 -0
  573. opentrons_shared_data/data/pipette/definitions/2/liquid/eight_channel/p50/lowVolumeDefault/3_5.json +151 -0
  574. opentrons_shared_data/data/pipette/definitions/2/liquid/eight_channel_em/p1000/default/1_0.json +236 -0
  575. opentrons_shared_data/data/pipette/definitions/2/liquid/eight_channel_em/p1000/default/3_0.json +236 -0
  576. opentrons_shared_data/data/pipette/definitions/2/liquid/ninety_six_channel/p1000/default/1_0.json +236 -0
  577. opentrons_shared_data/data/pipette/definitions/2/liquid/ninety_six_channel/p1000/default/3_0.json +185 -0
  578. opentrons_shared_data/data/pipette/definitions/2/liquid/ninety_six_channel/p1000/default/3_3.json +188 -0
  579. opentrons_shared_data/data/pipette/definitions/2/liquid/ninety_six_channel/p1000/default/3_4.json +188 -0
  580. opentrons_shared_data/data/pipette/definitions/2/liquid/ninety_six_channel/p1000/default/3_5.json +239 -0
  581. opentrons_shared_data/data/pipette/definitions/2/liquid/ninety_six_channel/p1000/default/3_6.json +239 -0
  582. opentrons_shared_data/data/pipette/definitions/2/liquid/ninety_six_channel/p200/default/1_0.json +288 -0
  583. opentrons_shared_data/data/pipette/definitions/2/liquid/ninety_six_channel/p200/default/3_0.json +181 -0
  584. opentrons_shared_data/data/pipette/definitions/2/liquid/ninety_six_channel/p200/default/3_1.json +192 -0
  585. opentrons_shared_data/data/pipette/definitions/2/liquid/ninety_six_channel/p200/default/3_2.json +192 -0
  586. opentrons_shared_data/data/pipette/definitions/2/liquid/single_channel/p10/default/1_0.json +52 -0
  587. opentrons_shared_data/data/pipette/definitions/2/liquid/single_channel/p10/default/1_3.json +52 -0
  588. opentrons_shared_data/data/pipette/definitions/2/liquid/single_channel/p10/default/1_4.json +49 -0
  589. opentrons_shared_data/data/pipette/definitions/2/liquid/single_channel/p10/default/1_5.json +47 -0
  590. opentrons_shared_data/data/pipette/definitions/2/liquid/single_channel/p1000/default/1_0.json +41 -0
  591. opentrons_shared_data/data/pipette/definitions/2/liquid/single_channel/p1000/default/1_3.json +41 -0
  592. opentrons_shared_data/data/pipette/definitions/2/liquid/single_channel/p1000/default/1_4.json +41 -0
  593. opentrons_shared_data/data/pipette/definitions/2/liquid/single_channel/p1000/default/1_5.json +41 -0
  594. opentrons_shared_data/data/pipette/definitions/2/liquid/single_channel/p1000/default/2_0.json +99 -0
  595. opentrons_shared_data/data/pipette/definitions/2/liquid/single_channel/p1000/default/2_1.json +102 -0
  596. opentrons_shared_data/data/pipette/definitions/2/liquid/single_channel/p1000/default/2_2.json +102 -0
  597. opentrons_shared_data/data/pipette/definitions/2/liquid/single_channel/p1000/default/3_0.json +353 -0
  598. opentrons_shared_data/data/pipette/definitions/2/liquid/single_channel/p1000/default/3_3.json +356 -0
  599. opentrons_shared_data/data/pipette/definitions/2/liquid/single_channel/p1000/default/3_4.json +282 -0
  600. opentrons_shared_data/data/pipette/definitions/2/liquid/single_channel/p1000/default/3_5.json +255 -0
  601. opentrons_shared_data/data/pipette/definitions/2/liquid/single_channel/p1000/default/3_6.json +255 -0
  602. opentrons_shared_data/data/pipette/definitions/2/liquid/single_channel/p1000/default/3_7.json +255 -0
  603. opentrons_shared_data/data/pipette/definitions/2/liquid/single_channel/p20/default/2_0.json +422 -0
  604. opentrons_shared_data/data/pipette/definitions/2/liquid/single_channel/p20/default/2_1.json +244 -0
  605. opentrons_shared_data/data/pipette/definitions/2/liquid/single_channel/p20/default/2_2.json +304 -0
  606. opentrons_shared_data/data/pipette/definitions/2/liquid/single_channel/p300/default/1_0.json +93 -0
  607. opentrons_shared_data/data/pipette/definitions/2/liquid/single_channel/p300/default/1_3.json +93 -0
  608. opentrons_shared_data/data/pipette/definitions/2/liquid/single_channel/p300/default/1_4.json +93 -0
  609. opentrons_shared_data/data/pipette/definitions/2/liquid/single_channel/p300/default/1_5.json +69 -0
  610. opentrons_shared_data/data/pipette/definitions/2/liquid/single_channel/p300/default/2_0.json +183 -0
  611. opentrons_shared_data/data/pipette/definitions/2/liquid/single_channel/p300/default/2_1.json +185 -0
  612. opentrons_shared_data/data/pipette/definitions/2/liquid/single_channel/p50/default/1_0.json +113 -0
  613. opentrons_shared_data/data/pipette/definitions/2/liquid/single_channel/p50/default/1_3.json +122 -0
  614. opentrons_shared_data/data/pipette/definitions/2/liquid/single_channel/p50/default/1_4.json +122 -0
  615. opentrons_shared_data/data/pipette/definitions/2/liquid/single_channel/p50/default/1_5.json +98 -0
  616. opentrons_shared_data/data/pipette/definitions/2/liquid/single_channel/p50/default/3_0.json +97 -0
  617. opentrons_shared_data/data/pipette/definitions/2/liquid/single_channel/p50/default/3_3.json +98 -0
  618. opentrons_shared_data/data/pipette/definitions/2/liquid/single_channel/p50/default/3_4.json +100 -0
  619. opentrons_shared_data/data/pipette/definitions/2/liquid/single_channel/p50/default/3_5.json +145 -0
  620. opentrons_shared_data/data/pipette/definitions/2/liquid/single_channel/p50/default/3_6.json +145 -0
  621. opentrons_shared_data/data/pipette/definitions/2/liquid/single_channel/p50/lowVolumeDefault/3_0.json +77 -0
  622. opentrons_shared_data/data/pipette/definitions/2/liquid/single_channel/p50/lowVolumeDefault/3_3.json +78 -0
  623. opentrons_shared_data/data/pipette/definitions/2/liquid/single_channel/p50/lowVolumeDefault/3_4.json +78 -0
  624. opentrons_shared_data/data/pipette/definitions/2/liquid/single_channel/p50/lowVolumeDefault/3_5.json +141 -0
  625. opentrons_shared_data/data/pipette/definitions/2/liquid/single_channel/p50/lowVolumeDefault/3_6.json +141 -0
  626. opentrons_shared_data/data/pipette/schemas/1/pipetteModelSpecsSchema.json +155 -0
  627. opentrons_shared_data/data/pipette/schemas/1/pipetteNameSpecsSchema.json +91 -0
  628. opentrons_shared_data/data/pipette/schemas/2/pipetteGeometrySchema.json +124 -0
  629. opentrons_shared_data/data/pipette/schemas/2/pipetteLiquidPropertiesSchema.json +117 -0
  630. opentrons_shared_data/data/pipette/schemas/2/pipettePropertiesSchema.json +323 -0
  631. opentrons_shared_data/data/protocol/schemas/1.json +389 -0
  632. opentrons_shared_data/data/protocol/schemas/2.json +416 -0
  633. opentrons_shared_data/data/protocol/schemas/3.json +360 -0
  634. opentrons_shared_data/data/protocol/schemas/4.json +662 -0
  635. opentrons_shared_data/data/protocol/schemas/5.json +701 -0
  636. opentrons_shared_data/data/protocol/schemas/6.json +1225 -0
  637. opentrons_shared_data/data/protocol/schemas/7.json +290 -0
  638. opentrons_shared_data/data/protocol/schemas/8.json +157 -0
  639. opentrons_shared_data/data/robot/definitions/1/ot2.json +16 -0
  640. opentrons_shared_data/data/robot/definitions/1/ot3.json +17 -0
  641. opentrons_shared_data/data/robot/schemas/1.json +83 -0
  642. opentrons_shared_data/data_files/__init__.py +26 -0
  643. opentrons_shared_data/data_files/types.py +84 -0
  644. opentrons_shared_data/deck/__init__.py +108 -0
  645. opentrons_shared_data/deck/types.py +216 -0
  646. opentrons_shared_data/errors/__init__.py +30 -0
  647. opentrons_shared_data/errors/categories.py +60 -0
  648. opentrons_shared_data/errors/codes.py +124 -0
  649. opentrons_shared_data/errors/exceptions.py +1308 -0
  650. opentrons_shared_data/gripper/__init__.py +63 -0
  651. opentrons_shared_data/gripper/constants.py +6 -0
  652. opentrons_shared_data/gripper/gripper_definition.py +98 -0
  653. opentrons_shared_data/labware/__init__.py +59 -0
  654. opentrons_shared_data/labware/constants.py +22 -0
  655. opentrons_shared_data/labware/labware_definition.py +630 -0
  656. opentrons_shared_data/labware/types.py +285 -0
  657. opentrons_shared_data/liquid_classes/__init__.py +44 -0
  658. opentrons_shared_data/liquid_classes/liquid_class_definition.py +555 -0
  659. opentrons_shared_data/liquid_classes/types.py +130 -0
  660. opentrons_shared_data/load.py +57 -0
  661. opentrons_shared_data/module/__init__.py +117 -0
  662. opentrons_shared_data/module/types.py +175 -0
  663. opentrons_shared_data/pipette/__init__.py +107 -0
  664. opentrons_shared_data/pipette/dev_types.py +181 -0
  665. opentrons_shared_data/pipette/file_operation_helpers.py +37 -0
  666. opentrons_shared_data/pipette/load_data.py +301 -0
  667. opentrons_shared_data/pipette/model_constants.py +144 -0
  668. opentrons_shared_data/pipette/mutable_configurations.py +454 -0
  669. opentrons_shared_data/pipette/pipette_definition.py +573 -0
  670. opentrons_shared_data/pipette/pipette_load_name_conversions.py +320 -0
  671. opentrons_shared_data/pipette/scripts/__init__.py +0 -0
  672. opentrons_shared_data/pipette/scripts/build_json_script.py +468 -0
  673. opentrons_shared_data/pipette/scripts/update_configuration_files.py +454 -0
  674. opentrons_shared_data/pipette/types.py +419 -0
  675. opentrons_shared_data/pipette/ul_per_mm.py +68 -0
  676. opentrons_shared_data/protocol/__init__.py +13 -0
  677. opentrons_shared_data/protocol/constants.py +98 -0
  678. opentrons_shared_data/protocol/models/__init__.py +49 -0
  679. opentrons_shared_data/protocol/models/protocol_schema_v6.py +135 -0
  680. opentrons_shared_data/protocol/models/protocol_schema_v7.py +92 -0
  681. opentrons_shared_data/protocol/models/protocol_schema_v8.py +56 -0
  682. opentrons_shared_data/protocol/models/shared_models.py +111 -0
  683. opentrons_shared_data/protocol/types.py +436 -0
  684. opentrons_shared_data/py.typed +0 -0
  685. opentrons_shared_data/robot/__init__.py +33 -0
  686. opentrons_shared_data/robot/types.py +57 -0
  687. opentrons_shared_data-8.8.0a10.dist-info/METADATA +21 -0
  688. opentrons_shared_data-8.8.0a10.dist-info/RECORD +690 -0
  689. opentrons_shared_data-8.8.0a10.dist-info/WHEEL +4 -0
  690. opentrons_shared_data-8.8.0a10.dist-info/licenses/LICENSE +202 -0
@@ -0,0 +1,555 @@
1
+ """Python shared data models for liquid class definitions."""
2
+
3
+ from enum import Enum
4
+ from typing import Literal, Union, Optional, Sequence, Tuple, Any, Type
5
+
6
+ from pydantic import (
7
+ ConfigDict,
8
+ BaseModel,
9
+ field_validator,
10
+ ValidationInfo,
11
+ Field,
12
+ StrictInt,
13
+ StrictFloat,
14
+ StrictBool,
15
+ model_validator,
16
+ )
17
+ from pydantic.json_schema import SkipJsonSchema
18
+ from typing_extensions import Annotated
19
+
20
+
21
+ _StrictNonNegativeInt = Annotated[int, Field(strict=True, ge=0)]
22
+ _StrictGreaterThanZeroInt = Annotated[int, Field(strict=True, gt=0)]
23
+ _StrictGreaterThanZeroFloat = Annotated[float, Field(strict=True, gt=0.0)]
24
+ _StrictNonNegativeFloat = Annotated[float, Field(strict=True, ge=0.0)]
25
+
26
+
27
+ _Number = Union[StrictInt, StrictFloat]
28
+ """JSON number type, written to preserve lack of decimal point"""
29
+
30
+ _NonNegativeNumber = Union[_StrictNonNegativeInt, _StrictNonNegativeFloat]
31
+ """Non-negative JSON number type, written to preserve lack of decimal point."""
32
+
33
+ _GreaterThanZeroNumber = Union[_StrictGreaterThanZeroInt, _StrictGreaterThanZeroFloat]
34
+
35
+ LiquidHandlingPropertyByVolume = Sequence[Tuple[_NonNegativeNumber, _NonNegativeNumber]]
36
+ """Settings for liquid class settings that are interpolated by volume."""
37
+
38
+ CorrectionByVolume = Sequence[Tuple[_NonNegativeNumber, _Number]]
39
+ """Settings for correctionByVolume, which unlike other `byVolume` properties allows negative values with volume."""
40
+
41
+
42
+ def _remove_default(s: dict[str, Any]) -> None:
43
+ s.pop("default")
44
+
45
+
46
+ # Make sure these always match the values in the Enums below
47
+ POSITION_REFERENCE_VALUE_TYPE = Literal[
48
+ "well-bottom", "well-top", "well-center", "liquid-meniscus"
49
+ ]
50
+ """Values for positionReference."""
51
+
52
+ BLOWOUT_LOCATION_VALUE_TYPE = Literal["source", "destination", "trash"]
53
+
54
+
55
+ # Make sure the values of these Enums always match the Literals above
56
+ class PositionReference(Enum):
57
+ """Positional reference for liquid handling operations."""
58
+
59
+ WELL_BOTTOM = "well-bottom"
60
+ WELL_TOP = "well-top"
61
+ WELL_CENTER = "well-center"
62
+ LIQUID_MENISCUS = "liquid-meniscus"
63
+
64
+
65
+ class BlowoutLocation(Enum):
66
+ """Location for blowout during a transfer function."""
67
+
68
+ SOURCE = "source"
69
+ DESTINATION = "destination"
70
+ TRASH = "trash"
71
+
72
+
73
+ class Coordinate(BaseModel):
74
+ """Three-dimensional coordinates."""
75
+
76
+ x: _Number
77
+ y: _Number
78
+ z: _Number
79
+
80
+
81
+ class BaseLiquidClassModel(BaseModel):
82
+ """Base class for liquid class definitions."""
83
+
84
+ model_config = ConfigDict(populate_by_name=True, extra="forbid")
85
+
86
+
87
+ class TipPosition(BaseLiquidClassModel):
88
+ """Properties for tip position reference and relative offset."""
89
+
90
+ positionReference: PositionReference = Field(
91
+ ...,
92
+ alias="position_reference",
93
+ description="Position reference for tip position.",
94
+ )
95
+ offset: Coordinate = Field(
96
+ ..., description="Relative offset from position reference."
97
+ )
98
+
99
+
100
+ class DelayParams(BaseLiquidClassModel):
101
+ """Parameters for delay."""
102
+
103
+ duration: _NonNegativeNumber = Field(
104
+ ..., description="Duration of delay, in seconds."
105
+ )
106
+
107
+
108
+ class DelayProperties(BaseLiquidClassModel):
109
+ """Shared properties for delay."""
110
+
111
+ enable: StrictBool = Field(..., description="Whether delay is enabled.")
112
+ params: DelayParams | SkipJsonSchema[None] = Field(
113
+ None,
114
+ description="Parameters for the delay function.",
115
+ json_schema_extra=_remove_default,
116
+ )
117
+
118
+ @model_validator(mode="before")
119
+ @classmethod
120
+ def reshape(cls, data: Any) -> Any:
121
+ """Move any params specified as top-level keys into the 'params' value."""
122
+ if isinstance(data, dict):
123
+ if None not in (data.get("enable"), data.get("enabled")):
124
+ raise ValueError(
125
+ "Delay properties should specify either 'enable' or 'enabled', not both."
126
+ )
127
+ if data.get("enabled") is not None:
128
+ data["enable"] = data["enabled"]
129
+ data.pop("enabled")
130
+ if "duration" in data.keys():
131
+ if data.get("params"):
132
+ raise ValueError(
133
+ "Delay properties should specify either duration or params, not both."
134
+ )
135
+ data["params"] = DelayParams(duration=data["duration"])
136
+ data.pop("duration")
137
+ return data
138
+
139
+ @field_validator("params")
140
+ @classmethod
141
+ def _validate_params(
142
+ cls, v: Optional[DelayParams], info: ValidationInfo
143
+ ) -> Optional[DelayParams]:
144
+ if v is None and info.data.get("enable", False):
145
+ raise ValueError("If enable is true parameters for delay must be defined.")
146
+ return v
147
+
148
+
149
+ class LiquidClassTouchTipParams(BaseLiquidClassModel):
150
+ """Parameters for touch-tip."""
151
+
152
+ # Note: Do not call this `TouchTipParams`, because that class name is used by the
153
+ # unrelated touchTip command in PE. Both classes are exported to things like the
154
+ # command schema JSON files, so the classes can't have the same name.
155
+
156
+ zOffset: _Number = Field(
157
+ ...,
158
+ alias="z_offset",
159
+ description="Offset from the top of the well for touch-tip, in millimeters.",
160
+ )
161
+ mmFromEdge: _Number = Field(
162
+ ...,
163
+ alias="mm_from_edge",
164
+ description="Offset away from the the well edge, in millimeters.",
165
+ )
166
+ speed: _GreaterThanZeroNumber = Field(
167
+ ..., alias="speed", description="Touch-tip speed, in millimeters per second."
168
+ )
169
+
170
+
171
+ class TouchTipProperties(BaseLiquidClassModel):
172
+ """Shared properties for the touch-tip function."""
173
+
174
+ enable: StrictBool = Field(..., description="Whether touch-tip is enabled.")
175
+ params: LiquidClassTouchTipParams | SkipJsonSchema[None] = Field(
176
+ None,
177
+ description="Parameters for the touch-tip function.",
178
+ json_schema_extra=_remove_default,
179
+ )
180
+
181
+ @model_validator(mode="before")
182
+ @classmethod
183
+ def reshape(cls, data: Any) -> Any:
184
+ """Move any params specified as top-level keys into the 'params' value."""
185
+ return reshape_glob(
186
+ data=data,
187
+ params_model=LiquidClassTouchTipParams,
188
+ property_name="Touch tip properties",
189
+ )
190
+
191
+ @field_validator("params")
192
+ @classmethod
193
+ def _validate_params(
194
+ cls, v: Optional[LiquidClassTouchTipParams], info: ValidationInfo
195
+ ) -> Optional[LiquidClassTouchTipParams]:
196
+ if v is None and info.data.get("enable", False):
197
+ raise ValueError(
198
+ "If enable is true parameters for touch tip must be defined."
199
+ )
200
+ return v
201
+
202
+
203
+ class MixParams(BaseLiquidClassModel):
204
+ """Parameters for mix."""
205
+
206
+ repetitions: _StrictNonNegativeInt = Field(
207
+ ...,
208
+ alias="repetitions",
209
+ description="Number of mixing repetitions. 0 is valid, but no mixing will occur.",
210
+ )
211
+ volume: _GreaterThanZeroNumber = Field(
212
+ ..., alias="volume", description="Volume used for mixing, in microliters."
213
+ )
214
+
215
+
216
+ class MixProperties(BaseLiquidClassModel):
217
+ """Mixing properties."""
218
+
219
+ enable: StrictBool = Field(..., description="Whether mix is enabled.")
220
+ params: MixParams | SkipJsonSchema[None] = Field(
221
+ None,
222
+ description="Parameters for the mix function.",
223
+ json_schema_extra=_remove_default,
224
+ )
225
+
226
+ @model_validator(mode="before")
227
+ @classmethod
228
+ def reshape(cls, data: Any) -> Any:
229
+ """Move any params specified as top-level keys into the 'params' value."""
230
+ return reshape_glob(
231
+ data=data, params_model=MixParams, property_name="Mix properties"
232
+ )
233
+
234
+ @field_validator("params")
235
+ @classmethod
236
+ def _validate_params(
237
+ cls, v: Optional[MixParams], info: ValidationInfo
238
+ ) -> Optional[MixParams]:
239
+ if v is None and info.data.get("enable", False):
240
+ raise ValueError("If enable is true parameters for mix must be defined.")
241
+ return v
242
+
243
+
244
+ class BlowoutParams(BaseLiquidClassModel):
245
+ """Parameters for blowout."""
246
+
247
+ location: BlowoutLocation = Field(
248
+ ..., alias="location", description="Location well or trash entity for blow out."
249
+ )
250
+ flowRate: _GreaterThanZeroNumber = Field(
251
+ ...,
252
+ alias="flow_rate",
253
+ description="Flow rate for blow out, in microliters per second.",
254
+ )
255
+
256
+
257
+ class BlowoutProperties(BaseLiquidClassModel):
258
+ """Blowout properties."""
259
+
260
+ enable: StrictBool = Field(..., description="Whether blow-out is enabled.")
261
+ params: BlowoutParams | SkipJsonSchema[None] = Field(
262
+ None,
263
+ description="Parameters for the blowout function.",
264
+ json_schema_extra=_remove_default,
265
+ )
266
+
267
+ @model_validator(mode="before")
268
+ @classmethod
269
+ def reshape(cls, data: Any) -> Any:
270
+ """Move any params specified as top-level keys into the 'params' value."""
271
+ return reshape_glob(
272
+ data=data, params_model=BlowoutParams, property_name="Blowout properties"
273
+ )
274
+
275
+ @field_validator("params")
276
+ @classmethod
277
+ def _validate_params(
278
+ cls, v: Optional[BlowoutParams], info: ValidationInfo
279
+ ) -> Optional[BlowoutParams]:
280
+ if v is None and info.data.get("enable", False):
281
+ raise ValueError(
282
+ "If enable is true parameters for blowout must be defined."
283
+ )
284
+ return v
285
+
286
+
287
+ def reshape_glob(
288
+ data: Any,
289
+ params_model: Type[
290
+ Union[LiquidClassTouchTipParams, BlowoutParams, DelayParams, MixParams]
291
+ ],
292
+ property_name: str,
293
+ ) -> Any:
294
+ """Move any params specified as top-level keys into the 'params' value.
295
+
296
+ Also move value of 'enabled' key into 'enable' key.
297
+ """
298
+ # NOTE: This does not check that the input dictionary is strictly in the shape of
299
+ # a TransferPropertiesDict. Specifically, it doesn't check that it receives the
300
+ # 'enabled' key when params are specified as top-level keys. So something like this
301
+ # dict will still convert successfully- {'enable': True, 'repetitions': 1, 'volume': 1}
302
+ # To conform to TransferPropertiesDict, the enable key should be 'enabled'.
303
+ # I am allowing this since it still can be converted to a valid LC params model.
304
+
305
+ if isinstance(data, dict):
306
+ if None not in (data.get("enable"), data.get("enabled")):
307
+ raise ValueError(
308
+ f"{property_name} should specify either 'enable' or 'enabled', not both."
309
+ )
310
+ if data.get("enabled") is not None:
311
+ data["enable"] = data["enabled"]
312
+ data.pop("enabled")
313
+
314
+ params_list = [meta.alias for field, meta in params_model.model_fields.items()]
315
+ list_of_presence_of_params = [param in data.keys() for param in params_list]
316
+ if any(list_of_presence_of_params):
317
+ if not all(list_of_presence_of_params):
318
+ raise ValueError(
319
+ f"{property_name} should specify either all of the params-"
320
+ f"{params_list} - or none of them."
321
+ )
322
+ if data.get("params"):
323
+ raise ValueError(
324
+ f"{property_name} should specify either all of"
325
+ f" {params_list} or 'params', not both."
326
+ )
327
+ data["params"] = params_model.model_validate(
328
+ {param: data[param] for param in params_list}
329
+ )
330
+ for param in params_list:
331
+ data.pop(param)
332
+ return data
333
+
334
+
335
+ class Submerge(BaseLiquidClassModel):
336
+ """Shared properties for the submerge function before aspiration or dispense."""
337
+
338
+ startPosition: TipPosition = Field(
339
+ ...,
340
+ alias="start_position",
341
+ description="Tip position before starting the submerge.",
342
+ )
343
+ speed: _NonNegativeNumber = Field(
344
+ ..., description="Speed of submerging, in millimeters per second."
345
+ )
346
+ delay: DelayProperties = Field(..., description="Delay settings for submerge.")
347
+
348
+
349
+ class RetractAspirate(BaseLiquidClassModel):
350
+ """Shared properties for the retract function after aspiration."""
351
+
352
+ endPosition: TipPosition = Field(
353
+ ..., alias="end_position", description="Tip position at the end of the retract."
354
+ )
355
+ speed: _NonNegativeNumber = Field(
356
+ ..., description="Speed of retraction, in millimeters per second."
357
+ )
358
+ airGapByVolume: LiquidHandlingPropertyByVolume = Field(
359
+ ...,
360
+ alias="air_gap_by_volume",
361
+ description="Settings for air gap keyed by target aspiration volume.",
362
+ )
363
+ touchTip: TouchTipProperties = Field(
364
+ ...,
365
+ alias="touch_tip",
366
+ description="Touch tip settings for retract after aspirate.",
367
+ )
368
+ delay: DelayProperties = Field(
369
+ ..., description="Delay settings for retract after aspirate."
370
+ )
371
+
372
+
373
+ class RetractDispense(BaseLiquidClassModel):
374
+ """Shared properties for the retract function after dispense."""
375
+
376
+ endPosition: TipPosition = Field(
377
+ ..., alias="end_position", description="Tip position at the end of the retract."
378
+ )
379
+ speed: _NonNegativeNumber = Field(
380
+ ..., description="Speed of retraction, in millimeters per second."
381
+ )
382
+ airGapByVolume: LiquidHandlingPropertyByVolume = Field(
383
+ ...,
384
+ alias="air_gap_by_volume",
385
+ description="Settings for air gap keyed by target aspiration volume.",
386
+ )
387
+ blowout: BlowoutProperties = Field(
388
+ ..., description="Blowout properties for retract after dispense."
389
+ )
390
+ touchTip: TouchTipProperties = Field(
391
+ ...,
392
+ alias="touch_tip",
393
+ description="Touch tip settings for retract after dispense.",
394
+ )
395
+ delay: DelayProperties = Field(
396
+ ..., description="Delay settings for retract after dispense."
397
+ )
398
+
399
+
400
+ class AspirateProperties(BaseLiquidClassModel):
401
+ """Properties specific to the aspirate function."""
402
+
403
+ submerge: Submerge = Field(..., description="Submerge settings for aspirate.")
404
+ retract: RetractAspirate = Field(
405
+ ..., description="Pipette retract settings after an aspirate."
406
+ )
407
+ aspiratePosition: TipPosition = Field(
408
+ ..., alias="aspirate_position", description="Tip position during aspirate."
409
+ )
410
+ flowRateByVolume: LiquidHandlingPropertyByVolume = Field(
411
+ ...,
412
+ alias="flow_rate_by_volume",
413
+ description="Settings for flow rate keyed by target aspiration volume.",
414
+ )
415
+ correctionByVolume: CorrectionByVolume = Field(
416
+ ...,
417
+ alias="correction_by_volume",
418
+ description="Settings for volume correction keyed by by target aspiration volume,"
419
+ " representing additional volume the plunger should move to accurately hit target volume.",
420
+ )
421
+ preWet: bool = Field(
422
+ ..., alias="pre_wet", description="Whether to perform a pre-wet action."
423
+ )
424
+ mix: MixProperties = Field(
425
+ ..., description="Mixing settings for before an aspirate"
426
+ )
427
+ delay: DelayProperties = Field(..., description="Delay settings after an aspirate")
428
+
429
+
430
+ class SingleDispenseProperties(BaseLiquidClassModel):
431
+ """Properties specific to the single-dispense function."""
432
+
433
+ submerge: Submerge = Field(
434
+ ..., description="Submerge settings for single dispense."
435
+ )
436
+ retract: RetractDispense = Field(
437
+ ..., description="Pipette retract settings after a single dispense."
438
+ )
439
+ dispensePosition: TipPosition = Field(
440
+ ..., alias="dispense_position", description="Tip position during dispense."
441
+ )
442
+ flowRateByVolume: LiquidHandlingPropertyByVolume = Field(
443
+ ...,
444
+ alias="flow_rate_by_volume",
445
+ description="Settings for flow rate keyed by target dispense volume.",
446
+ )
447
+ correctionByVolume: CorrectionByVolume = Field(
448
+ ...,
449
+ alias="correction_by_volume",
450
+ description="Settings for volume correction keyed by by target dispense volume,"
451
+ " representing additional volume the plunger should move to accurately hit target volume.",
452
+ )
453
+ mix: MixProperties = Field(..., description="Mixing settings for after a dispense")
454
+ pushOutByVolume: LiquidHandlingPropertyByVolume = Field(
455
+ ...,
456
+ alias="push_out_by_volume",
457
+ description="Settings for pushout keyed by target dispense volume.",
458
+ )
459
+ delay: DelayProperties = Field(..., description="Delay after dispense, in seconds.")
460
+
461
+
462
+ class MultiDispenseProperties(BaseLiquidClassModel):
463
+ """Properties specific to the multi-dispense function."""
464
+
465
+ submerge: Submerge = Field(..., description="Submerge settings for multi-dispense.")
466
+ retract: RetractDispense = Field(
467
+ ..., description="Pipette retract settings after a multi-dispense."
468
+ )
469
+ dispensePosition: TipPosition = Field(
470
+ ..., alias="dispense_position", description="Tip position during dispense."
471
+ )
472
+ flowRateByVolume: LiquidHandlingPropertyByVolume = Field(
473
+ ...,
474
+ alias="flow_rate_by_volume",
475
+ description="Settings for flow rate keyed by target dispense volume.",
476
+ )
477
+ correctionByVolume: CorrectionByVolume = Field(
478
+ ...,
479
+ alias="correction_by_volume",
480
+ description="Settings for volume correction keyed by by target dispense volume,"
481
+ " representing additional volume the plunger should move to accurately hit target volume.",
482
+ )
483
+ conditioningByVolume: LiquidHandlingPropertyByVolume = Field(
484
+ ...,
485
+ alias="conditioning_by_volume",
486
+ description="Settings for conditioning volume keyed by target dispense volume.",
487
+ )
488
+ disposalByVolume: LiquidHandlingPropertyByVolume = Field(
489
+ ...,
490
+ alias="disposal_by_volume",
491
+ description="Settings for disposal volume keyed by target dispense volume.",
492
+ )
493
+ delay: DelayProperties = Field(
494
+ ..., description="Delay settings after each dispense"
495
+ )
496
+
497
+
498
+ class TransferProperties(BaseLiquidClassModel):
499
+ """Properties used during a transfer."""
500
+
501
+ aspirate: AspirateProperties = Field(
502
+ ..., description="Aspirate parameters for this tip type."
503
+ )
504
+ singleDispense: SingleDispenseProperties = Field(
505
+ ...,
506
+ alias="dispense",
507
+ description="Single dispense parameters for this tip type.",
508
+ )
509
+ multiDispense: MultiDispenseProperties | SkipJsonSchema[None] = Field(
510
+ None,
511
+ alias="multi_dispense",
512
+ description="Optional multi-dispense parameters for this tip type.",
513
+ json_schema_extra=_remove_default,
514
+ )
515
+
516
+
517
+ class ByTipTypeSetting(TransferProperties):
518
+ """Settings for each kind of tip this pipette can use."""
519
+
520
+ tiprack: str = Field(
521
+ ...,
522
+ description="The name of tiprack whose tip will be used when handling this specific liquid class with this pipette",
523
+ )
524
+
525
+
526
+ class ByPipetteSetting(BaseLiquidClassModel):
527
+ """The settings for this liquid class when used with a specific kind of pipette."""
528
+
529
+ pipetteModel: str = Field(..., description="The pipette model this applies to.")
530
+ byTipType: Sequence[ByTipTypeSetting] = Field(
531
+ ..., description="Settings for each kind of tip this pipette can use"
532
+ )
533
+
534
+
535
+ class LiquidClassSchemaV1(BaseLiquidClassModel):
536
+ """Defines a single liquid class's properties for liquid handling functions."""
537
+
538
+ liquidClassName: str = Field(
539
+ ..., description="The name of the liquid (e.g., water, ethanol, serum)."
540
+ )
541
+ displayName: str = Field(..., description="User-readable name of the liquid class.")
542
+ description: str = Field(
543
+ ..., description="User-readable description of the liquid class"
544
+ )
545
+ schemaVersion: Literal[1] = Field(
546
+ ..., description="Which schema version a liquid class is using"
547
+ )
548
+ version: int = Field(
549
+ ..., description="Version of the specific liquid class definition"
550
+ )
551
+ namespace: str = Field(...)
552
+ byPipette: Sequence[ByPipetteSetting] = Field(
553
+ ...,
554
+ description="Liquid class settings by each pipette compatible with this liquid class.",
555
+ )
@@ -0,0 +1,130 @@
1
+ """Type definitions for liquid classes."""
2
+ from typing import Sequence, Tuple, TypedDict
3
+ from typing_extensions import NotRequired
4
+ from .liquid_class_definition import (
5
+ POSITION_REFERENCE_VALUE_TYPE,
6
+ BLOWOUT_LOCATION_VALUE_TYPE,
7
+ )
8
+
9
+
10
+ class Offset(TypedDict):
11
+ """A dict representing an offset."""
12
+
13
+ x: float
14
+ y: float
15
+ z: float
16
+
17
+
18
+ class TipPositionDict(TypedDict):
19
+ """A dict representing a tip position."""
20
+
21
+ position_reference: POSITION_REFERENCE_VALUE_TYPE
22
+ offset: Offset
23
+
24
+
25
+ class DelayPropertiesDict(TypedDict):
26
+ """A dict representing a delay."""
27
+
28
+ enabled: bool
29
+ duration: NotRequired[float]
30
+
31
+
32
+ class TouchTipPropertiesDict(TypedDict):
33
+ """A dict representing touch tip properties."""
34
+
35
+ enabled: bool
36
+ z_offset: NotRequired[float]
37
+ mm_from_edge: NotRequired[float]
38
+ speed: NotRequired[float]
39
+
40
+
41
+ class MixPropertiesDict(TypedDict):
42
+ """A dict representing mix properties."""
43
+
44
+ enabled: bool
45
+ repetitions: NotRequired[int]
46
+ volume: NotRequired[float]
47
+
48
+
49
+ class BlowoutPropertiesDict(TypedDict):
50
+ """A dict representing blowout properties."""
51
+
52
+ enabled: bool
53
+ location: NotRequired[BLOWOUT_LOCATION_VALUE_TYPE]
54
+ flow_rate: NotRequired[float]
55
+
56
+
57
+ class SubmergeDict(TypedDict):
58
+ """A dict representing submerge properties."""
59
+
60
+ start_position: TipPositionDict
61
+ speed: float
62
+ delay: DelayPropertiesDict
63
+
64
+
65
+ class RetractAspirateDict(TypedDict):
66
+ """A dict representing retract aspirate properties."""
67
+
68
+ end_position: TipPositionDict
69
+ speed: float
70
+ delay: DelayPropertiesDict
71
+ air_gap_by_volume: Sequence[Tuple[float, float]]
72
+ touch_tip: TouchTipPropertiesDict
73
+
74
+
75
+ class RetractDispenseDict(TypedDict):
76
+ """A dict representing retract dispense properties."""
77
+
78
+ end_position: TipPositionDict
79
+ speed: float
80
+ delay: DelayPropertiesDict
81
+ air_gap_by_volume: Sequence[Tuple[float, float]]
82
+ touch_tip: TouchTipPropertiesDict
83
+ blowout: BlowoutPropertiesDict
84
+
85
+
86
+ class AspiratePropertiesDict(TypedDict):
87
+ """A dict representing aspirate properties."""
88
+
89
+ submerge: SubmergeDict
90
+ flow_rate_by_volume: Sequence[Tuple[float, float]]
91
+ correction_by_volume: Sequence[Tuple[float, float]]
92
+ delay: DelayPropertiesDict
93
+ aspirate_position: TipPositionDict
94
+ retract: RetractAspirateDict
95
+ pre_wet: bool
96
+ mix: MixPropertiesDict
97
+
98
+
99
+ class SingleDispensePropertiesDict(TypedDict):
100
+ """A dict representing single dispense properties."""
101
+
102
+ submerge: SubmergeDict
103
+ flow_rate_by_volume: Sequence[Tuple[float, float]]
104
+ correction_by_volume: Sequence[Tuple[float, float]]
105
+ delay: DelayPropertiesDict
106
+ dispense_position: TipPositionDict
107
+ retract: RetractDispenseDict
108
+ push_out_by_volume: Sequence[Tuple[float, float]]
109
+ mix: MixPropertiesDict
110
+
111
+
112
+ class MultiDispensePropertiesDict(TypedDict):
113
+ """A dict representing multi dispense properties."""
114
+
115
+ submerge: SubmergeDict
116
+ flow_rate_by_volume: Sequence[Tuple[float, float]]
117
+ correction_by_volume: Sequence[Tuple[float, float]]
118
+ delay: DelayPropertiesDict
119
+ dispense_position: TipPositionDict
120
+ retract: RetractDispenseDict
121
+ conditioning_by_volume: Sequence[Tuple[float, float]]
122
+ disposal_by_volume: Sequence[Tuple[float, float]]
123
+
124
+
125
+ class TransferPropertiesDict(TypedDict):
126
+ """A dict representing transfer properties for a specific pipette and tiprack."""
127
+
128
+ aspirate: AspiratePropertiesDict
129
+ dispense: SingleDispensePropertiesDict
130
+ multi_dispense: NotRequired[MultiDispensePropertiesDict]