PyLabRobot 0.1.4__tar.gz → 0.1.5__tar.gz

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.
Files changed (229) hide show
  1. PyLabRobot-0.1.5/PKG-INFO +180 -0
  2. PyLabRobot-0.1.5/PyLabRobot.egg-info/PKG-INFO +180 -0
  3. PyLabRobot-0.1.5/PyLabRobot.egg-info/SOURCES.txt +154 -0
  4. PyLabRobot-0.1.5/PyLabRobot.egg-info/entry_points.txt +3 -0
  5. {PyLabRobot-0.1.4 → PyLabRobot-0.1.5}/PyLabRobot.egg-info/requires.txt +29 -36
  6. {PyLabRobot-0.1.4 → PyLabRobot-0.1.5}/PyLabRobot.egg-info/top_level.txt +0 -1
  7. PyLabRobot-0.1.5/README.md +116 -0
  8. {PyLabRobot-0.1.4 → PyLabRobot-0.1.5}/pylabrobot/__init__.py +4 -1
  9. {PyLabRobot-0.1.4 → PyLabRobot-0.1.5}/pylabrobot/__version__.py +1 -1
  10. PyLabRobot-0.1.5/pylabrobot/heaters/__init__.py +0 -0
  11. PyLabRobot-0.1.5/pylabrobot/liquid_handling/__init__.py +16 -0
  12. PyLabRobot-0.1.5/pylabrobot/liquid_handling/backends/USBBackend.py +239 -0
  13. PyLabRobot-0.1.5/pylabrobot/liquid_handling/backends/__init__.py +15 -0
  14. PyLabRobot-0.1.5/pylabrobot/liquid_handling/backends/backend.py +142 -0
  15. PyLabRobot-0.1.5/pylabrobot/liquid_handling/backends/chatterbox_backend.py +71 -0
  16. PyLabRobot-0.1.5/pylabrobot/liquid_handling/backends/chatterbox_backend_tests.py +60 -0
  17. PyLabRobot-0.1.5/pylabrobot/liquid_handling/backends/hamilton/STAR.py +6712 -0
  18. PyLabRobot-0.1.5/pylabrobot/liquid_handling/backends/hamilton/STAR_tests.py +745 -0
  19. PyLabRobot-0.1.5/pylabrobot/liquid_handling/backends/hamilton/VENUS.py +245 -0
  20. {PyLabRobot-0.1.4 → PyLabRobot-0.1.5}/pylabrobot/liquid_handling/backends/hamilton/__init__.py +2 -0
  21. PyLabRobot-0.1.5/pylabrobot/liquid_handling/backends/hamilton/base.py +421 -0
  22. PyLabRobot-0.1.5/pylabrobot/liquid_handling/backends/hamilton/pump.py +23 -0
  23. PyLabRobot-0.1.5/pylabrobot/liquid_handling/backends/hamilton/tilt_module.py +301 -0
  24. PyLabRobot-0.1.5/pylabrobot/liquid_handling/backends/hamilton/vantage.py +4794 -0
  25. PyLabRobot-0.1.5/pylabrobot/liquid_handling/backends/hamilton/vantage_tests.py +347 -0
  26. PyLabRobot-0.1.5/pylabrobot/liquid_handling/backends/http.py +88 -0
  27. PyLabRobot-0.1.5/pylabrobot/liquid_handling/backends/http_tests.py +235 -0
  28. PyLabRobot-0.1.5/pylabrobot/liquid_handling/backends/opentrons_backend.py +492 -0
  29. PyLabRobot-0.1.5/pylabrobot/liquid_handling/backends/opentrons_backend_tests.py +176 -0
  30. PyLabRobot-0.1.5/pylabrobot/liquid_handling/backends/saver_backend.py +75 -0
  31. PyLabRobot-0.1.5/pylabrobot/liquid_handling/backends/serializing_backend.py +189 -0
  32. PyLabRobot-0.1.5/pylabrobot/liquid_handling/backends/serializing_backend_tests.py +192 -0
  33. PyLabRobot-0.1.5/pylabrobot/liquid_handling/backends/tecan/EVO.py +1240 -0
  34. PyLabRobot-0.1.5/pylabrobot/liquid_handling/backends/tecan/__init__.py +1 -0
  35. PyLabRobot-0.1.5/pylabrobot/liquid_handling/backends/tecan/errors.py +83 -0
  36. PyLabRobot-0.1.5/pylabrobot/liquid_handling/backends/websocket.py +288 -0
  37. PyLabRobot-0.1.5/pylabrobot/liquid_handling/backends/websocket_tests.py +62 -0
  38. PyLabRobot-0.1.5/pylabrobot/liquid_handling/errors.py +10 -0
  39. PyLabRobot-0.1.5/pylabrobot/liquid_handling/liquid_classes/__init__.py +0 -0
  40. PyLabRobot-0.1.5/pylabrobot/liquid_handling/liquid_classes/hamilton/__init__.py +3 -0
  41. PyLabRobot-0.1.5/pylabrobot/liquid_handling/liquid_classes/hamilton/base.py +113 -0
  42. PyLabRobot-0.1.5/pylabrobot/liquid_handling/liquid_classes/hamilton/star.py +11642 -0
  43. PyLabRobot-0.1.5/pylabrobot/liquid_handling/liquid_classes/hamilton/vantage.py +10843 -0
  44. PyLabRobot-0.1.5/pylabrobot/liquid_handling/liquid_classes/tecan.py +2796 -0
  45. PyLabRobot-0.1.5/pylabrobot/liquid_handling/liquid_handler.py +1680 -0
  46. PyLabRobot-0.1.5/pylabrobot/liquid_handling/liquid_handler_tests.py +656 -0
  47. PyLabRobot-0.1.5/pylabrobot/liquid_handling/standard.py +139 -0
  48. PyLabRobot-0.1.5/pylabrobot/liquid_handling/strictness.py +23 -0
  49. PyLabRobot-0.1.5/pylabrobot/machine.py +76 -0
  50. PyLabRobot-0.1.5/pylabrobot/plate_reading/__init__.py +2 -0
  51. PyLabRobot-0.1.5/pylabrobot/plate_reading/backend.py +82 -0
  52. PyLabRobot-0.1.5/pylabrobot/plate_reading/clario_star.py +342 -0
  53. PyLabRobot-0.1.5/pylabrobot/plate_reading/plate_reader.py +92 -0
  54. PyLabRobot-0.1.5/pylabrobot/plate_reading/plate_reader_tests.py +64 -0
  55. PyLabRobot-0.1.5/pylabrobot/powder_dispensing/__init__.py +1 -0
  56. PyLabRobot-0.1.5/pylabrobot/powder_dispensing/backend.py +57 -0
  57. PyLabRobot-0.1.5/pylabrobot/powder_dispensing/powder_dispenser.py +86 -0
  58. PyLabRobot-0.1.5/pylabrobot/powder_dispensing/powder_dispenser_tests.py +79 -0
  59. PyLabRobot-0.1.5/pylabrobot/pumps/__init__.py +2 -0
  60. PyLabRobot-0.1.5/pylabrobot/pumps/backend.py +26 -0
  61. PyLabRobot-0.1.5/pylabrobot/pumps/cole_parmer/__init__.py +1 -0
  62. PyLabRobot-0.1.5/pylabrobot/pumps/cole_parmer/masterflex.py +61 -0
  63. PyLabRobot-0.1.5/pylabrobot/pumps/pump.py +56 -0
  64. PyLabRobot-0.1.5/pylabrobot/resources/__init__.py +41 -0
  65. PyLabRobot-0.1.5/pylabrobot/resources/azenta/plates.py +58 -0
  66. PyLabRobot-0.1.5/pylabrobot/resources/carrier.py +257 -0
  67. {PyLabRobot-0.1.4/pylabrobot/liquid_handling/resources/abstract → PyLabRobot-0.1.5/pylabrobot/resources}/carrier_tests.py +64 -89
  68. PyLabRobot-0.1.5/pylabrobot/resources/container.py +36 -0
  69. PyLabRobot-0.1.5/pylabrobot/resources/coordinate.py +45 -0
  70. {PyLabRobot-0.1.4/pylabrobot/liquid_handling/resources/abstract → PyLabRobot-0.1.5/pylabrobot/resources}/coordinate_tests.py +3 -14
  71. PyLabRobot-0.1.5/pylabrobot/resources/corning_axygen/__init__.py +1 -0
  72. PyLabRobot-0.1.5/pylabrobot/resources/corning_axygen/plates.py +58 -0
  73. PyLabRobot-0.1.5/pylabrobot/resources/corning_costar/__init__.py +1 -0
  74. PyLabRobot-0.1.5/pylabrobot/resources/corning_costar/plates.py +790 -0
  75. PyLabRobot-0.1.5/pylabrobot/resources/deck.py +123 -0
  76. PyLabRobot-0.1.5/pylabrobot/resources/deck_tests.py +76 -0
  77. PyLabRobot-0.1.5/pylabrobot/resources/errors.py +18 -0
  78. PyLabRobot-0.1.5/pylabrobot/resources/hamilton/__init__.py +2 -0
  79. PyLabRobot-0.1.5/pylabrobot/resources/hamilton/hamilton_deck_tests.py +118 -0
  80. PyLabRobot-0.1.5/pylabrobot/resources/hamilton/hamilton_decks.py +370 -0
  81. PyLabRobot-0.1.5/pylabrobot/resources/hamilton/vantage_decks.py +65 -0
  82. PyLabRobot-0.1.5/pylabrobot/resources/hamilton_parse.py +400 -0
  83. {PyLabRobot-0.1.4/pylabrobot/liquid_handling/resources/abstract → PyLabRobot-0.1.5/pylabrobot/resources}/itemized_resource.py +101 -70
  84. {PyLabRobot-0.1.4/pylabrobot/liquid_handling/resources/abstract → PyLabRobot-0.1.5/pylabrobot/resources}/itemized_resource_tests.py +70 -42
  85. PyLabRobot-0.1.5/pylabrobot/resources/liquid.py +58 -0
  86. {PyLabRobot-0.1.4/pylabrobot/liquid_handling → PyLabRobot-0.1.5/pylabrobot}/resources/ml_star/__init__.py +1 -1
  87. PyLabRobot-0.1.5/pylabrobot/resources/ml_star/plate_carriers.py +372 -0
  88. PyLabRobot-0.1.5/pylabrobot/resources/ml_star/tip_carriers.py +1408 -0
  89. PyLabRobot-0.1.5/pylabrobot/resources/ml_star/tip_creators.py +224 -0
  90. PyLabRobot-0.1.5/pylabrobot/resources/ml_star/tip_racks.py +308 -0
  91. PyLabRobot-0.1.5/pylabrobot/resources/opentrons/deck.py +171 -0
  92. PyLabRobot-0.1.5/pylabrobot/resources/opentrons/deck_tests.py +42 -0
  93. {PyLabRobot-0.1.4/pylabrobot/liquid_handling → PyLabRobot-0.1.5/pylabrobot}/resources/opentrons/load.py +44 -29
  94. {PyLabRobot-0.1.4/pylabrobot/liquid_handling → PyLabRobot-0.1.5/pylabrobot}/resources/opentrons/plates.py +34 -32
  95. {PyLabRobot-0.1.4/pylabrobot/liquid_handling → PyLabRobot-0.1.5/pylabrobot}/resources/opentrons/tip_racks.py +30 -28
  96. PyLabRobot-0.1.5/pylabrobot/resources/petri_dish.py +81 -0
  97. PyLabRobot-0.1.5/pylabrobot/resources/petri_dish_tests.py +99 -0
  98. PyLabRobot-0.1.5/pylabrobot/resources/plate.py +178 -0
  99. PyLabRobot-0.1.5/pylabrobot/resources/plate_tests.py +37 -0
  100. PyLabRobot-0.1.5/pylabrobot/resources/porvair/__init__.py +1 -0
  101. PyLabRobot-0.1.5/pylabrobot/resources/porvair/plates.py +58 -0
  102. PyLabRobot-0.1.5/pylabrobot/resources/powder.py +11 -0
  103. PyLabRobot-0.1.5/pylabrobot/resources/resource.py +604 -0
  104. PyLabRobot-0.1.5/pylabrobot/resources/resource_stack.py +118 -0
  105. PyLabRobot-0.1.5/pylabrobot/resources/resource_stack_tests.py +99 -0
  106. PyLabRobot-0.1.5/pylabrobot/resources/resource_tests.py +309 -0
  107. PyLabRobot-0.1.5/pylabrobot/resources/revvity/__init__.py +1 -0
  108. PyLabRobot-0.1.5/pylabrobot/resources/revvity/plates.py +51 -0
  109. PyLabRobot-0.1.5/pylabrobot/resources/tecan/__init__.py +8 -0
  110. PyLabRobot-0.1.5/pylabrobot/resources/tecan/plate_carriers.py +514 -0
  111. PyLabRobot-0.1.5/pylabrobot/resources/tecan/plates.py +868 -0
  112. PyLabRobot-0.1.5/pylabrobot/resources/tecan/tecan_decks.py +233 -0
  113. PyLabRobot-0.1.5/pylabrobot/resources/tecan/tecan_resource.py +34 -0
  114. PyLabRobot-0.1.5/pylabrobot/resources/tecan/tip_carriers.py +2273 -0
  115. PyLabRobot-0.1.5/pylabrobot/resources/tecan/tip_creators.py +681 -0
  116. PyLabRobot-0.1.5/pylabrobot/resources/tecan/tip_racks.py +1767 -0
  117. PyLabRobot-0.1.5/pylabrobot/resources/tecan/wash.py +70 -0
  118. PyLabRobot-0.1.5/pylabrobot/resources/thermo_fisher/__init__.py +1 -0
  119. PyLabRobot-0.1.5/pylabrobot/resources/thermo_fisher/troughs.py +15 -0
  120. PyLabRobot-0.1.5/pylabrobot/resources/tip.py +38 -0
  121. PyLabRobot-0.1.5/pylabrobot/resources/tip_rack.py +174 -0
  122. PyLabRobot-0.1.5/pylabrobot/resources/tip_tests.py +38 -0
  123. PyLabRobot-0.1.5/pylabrobot/resources/tip_tracker.py +142 -0
  124. PyLabRobot-0.1.5/pylabrobot/resources/tip_tracker_tests.py +35 -0
  125. {PyLabRobot-0.1.4/pylabrobot/liquid_handling/resources/abstract → PyLabRobot-0.1.5/pylabrobot/resources}/todo_generic_carrier.py +11 -10
  126. PyLabRobot-0.1.5/pylabrobot/resources/trash.py +5 -0
  127. PyLabRobot-0.1.5/pylabrobot/resources/trough.py +27 -0
  128. PyLabRobot-0.1.5/pylabrobot/resources/volume_functions.py +190 -0
  129. PyLabRobot-0.1.5/pylabrobot/resources/volume_functions_tests.py +91 -0
  130. PyLabRobot-0.1.5/pylabrobot/resources/volume_tracker.py +167 -0
  131. PyLabRobot-0.1.5/pylabrobot/resources/volume_tracker_tests.py +63 -0
  132. PyLabRobot-0.1.5/pylabrobot/resources/vwr/__init__.py +1 -0
  133. PyLabRobot-0.1.5/pylabrobot/resources/vwr/troughs.py +12 -0
  134. PyLabRobot-0.1.5/pylabrobot/resources/well.py +114 -0
  135. PyLabRobot-0.1.5/pylabrobot/resources/well_tests.py +29 -0
  136. PyLabRobot-0.1.5/pylabrobot/scales/__init__.py +2 -0
  137. PyLabRobot-0.1.5/pylabrobot/scales/mettler_toledo.py +351 -0
  138. PyLabRobot-0.1.5/pylabrobot/scales/scale.py +32 -0
  139. PyLabRobot-0.1.5/pylabrobot/scales/scale_backend.py +18 -0
  140. PyLabRobot-0.1.5/pylabrobot/serializer.py +67 -0
  141. PyLabRobot-0.1.5/pylabrobot/utils/__init__.py +2 -0
  142. PyLabRobot-0.1.5/pylabrobot/utils/file_parsing.py +32 -0
  143. PyLabRobot-0.1.5/pylabrobot/utils/list.py +57 -0
  144. {PyLabRobot-0.1.4 → PyLabRobot-0.1.5}/pylabrobot/utils/list_tests.py +11 -4
  145. {PyLabRobot-0.1.4 → PyLabRobot-0.1.5}/pylabrobot/utils/positions.py +20 -11
  146. PyLabRobot-0.1.5/pylabrobot/utils/positions_tests.py +51 -0
  147. PyLabRobot-0.1.5/pylabrobot/visualizer/__init__.py +1 -0
  148. PyLabRobot-0.1.5/pylabrobot/visualizer/visualizer.py +466 -0
  149. PyLabRobot-0.1.5/pylabrobot/visualizer/visualizer_tests.py +139 -0
  150. PyLabRobot-0.1.5/setup.py +84 -0
  151. PyLabRobot-0.1.4/PKG-INFO +0 -81
  152. PyLabRobot-0.1.4/PyLabRobot.egg-info/PKG-INFO +0 -81
  153. PyLabRobot-0.1.4/PyLabRobot.egg-info/SOURCES.txt +0 -93
  154. PyLabRobot-0.1.4/README.md +0 -62
  155. PyLabRobot-0.1.4/pygamepad/__init__.py +0 -3
  156. PyLabRobot-0.1.4/pygamepad/gamepad.py +0 -154
  157. PyLabRobot-0.1.4/pylabrobot/liquid_handling/__init__.py +0 -6
  158. PyLabRobot-0.1.4/pylabrobot/liquid_handling/autocalibration.py +0 -25
  159. PyLabRobot-0.1.4/pylabrobot/liquid_handling/backends/__init__.py +0 -10
  160. PyLabRobot-0.1.4/pylabrobot/liquid_handling/backends/backend.py +0 -128
  161. PyLabRobot-0.1.4/pylabrobot/liquid_handling/backends/chatterbox_backend.py +0 -82
  162. PyLabRobot-0.1.4/pylabrobot/liquid_handling/backends/hamilton/STAR.py +0 -4539
  163. PyLabRobot-0.1.4/pylabrobot/liquid_handling/backends/hamilton/STAR_tests.py +0 -418
  164. PyLabRobot-0.1.4/pylabrobot/liquid_handling/backends/hamilton/VENUS.py +0 -277
  165. PyLabRobot-0.1.4/pylabrobot/liquid_handling/backends/hamilton/errors.py +0 -913
  166. PyLabRobot-0.1.4/pylabrobot/liquid_handling/backends/hamilton/pump.py +0 -25
  167. PyLabRobot-0.1.4/pylabrobot/liquid_handling/backends/hamilton/venus_utils.py +0 -297
  168. PyLabRobot-0.1.4/pylabrobot/liquid_handling/backends/hamilton/workflow_optimizer.py +0 -347
  169. PyLabRobot-0.1.4/pylabrobot/liquid_handling/backends/mock.py +0 -22
  170. PyLabRobot-0.1.4/pylabrobot/liquid_handling/backends/net/__init__.py +0 -4
  171. PyLabRobot-0.1.4/pylabrobot/liquid_handling/backends/net/http.py +0 -148
  172. PyLabRobot-0.1.4/pylabrobot/liquid_handling/backends/net/websocket.py +0 -299
  173. PyLabRobot-0.1.4/pylabrobot/liquid_handling/backends/net/websocket_tests.py +0 -254
  174. PyLabRobot-0.1.4/pylabrobot/liquid_handling/backends/opentrons_backend.py +0 -417
  175. PyLabRobot-0.1.4/pylabrobot/liquid_handling/backends/opentrons_backend_tests.py +0 -150
  176. PyLabRobot-0.1.4/pylabrobot/liquid_handling/backends/saver_backend.py +0 -58
  177. PyLabRobot-0.1.4/pylabrobot/liquid_handling/backends/simulation/__init__.py +0 -3
  178. PyLabRobot-0.1.4/pylabrobot/liquid_handling/backends/simulation/simulation_tests.py +0 -137
  179. PyLabRobot-0.1.4/pylabrobot/liquid_handling/backends/simulation/simulator/index.html +0 -225
  180. PyLabRobot-0.1.4/pylabrobot/liquid_handling/backends/simulation/simulator/main.css +0 -156
  181. PyLabRobot-0.1.4/pylabrobot/liquid_handling/backends/simulation/simulator/main.js +0 -755
  182. PyLabRobot-0.1.4/pylabrobot/liquid_handling/backends/simulation/simulator_backend.py +0 -234
  183. PyLabRobot-0.1.4/pylabrobot/liquid_handling/errors.py +0 -4
  184. PyLabRobot-0.1.4/pylabrobot/liquid_handling/liquid_classes.py +0 -347
  185. PyLabRobot-0.1.4/pylabrobot/liquid_handling/liquid_classes_tests.py +0 -98
  186. PyLabRobot-0.1.4/pylabrobot/liquid_handling/liquid_handler.py +0 -1079
  187. PyLabRobot-0.1.4/pylabrobot/liquid_handling/liquid_handler_tests.py +0 -463
  188. PyLabRobot-0.1.4/pylabrobot/liquid_handling/resources/__init__.py +0 -7
  189. PyLabRobot-0.1.4/pylabrobot/liquid_handling/resources/abstract/__init__.py +0 -13
  190. PyLabRobot-0.1.4/pylabrobot/liquid_handling/resources/abstract/carrier.py +0 -217
  191. PyLabRobot-0.1.4/pylabrobot/liquid_handling/resources/abstract/coordinate.py +0 -50
  192. PyLabRobot-0.1.4/pylabrobot/liquid_handling/resources/abstract/deck.py +0 -107
  193. PyLabRobot-0.1.4/pylabrobot/liquid_handling/resources/abstract/plate.py +0 -163
  194. PyLabRobot-0.1.4/pylabrobot/liquid_handling/resources/abstract/plate_tests.py +0 -46
  195. PyLabRobot-0.1.4/pylabrobot/liquid_handling/resources/abstract/resource.py +0 -190
  196. PyLabRobot-0.1.4/pylabrobot/liquid_handling/resources/abstract/resource_tests.py +0 -128
  197. PyLabRobot-0.1.4/pylabrobot/liquid_handling/resources/abstract/tip_rack.py +0 -86
  198. PyLabRobot-0.1.4/pylabrobot/liquid_handling/resources/abstract/tip_type.py +0 -90
  199. PyLabRobot-0.1.4/pylabrobot/liquid_handling/resources/abstract/well.py +0 -17
  200. PyLabRobot-0.1.4/pylabrobot/liquid_handling/resources/corning_costar/plates.py +0 -1409
  201. PyLabRobot-0.1.4/pylabrobot/liquid_handling/resources/hamilton/__init__.py +0 -1
  202. PyLabRobot-0.1.4/pylabrobot/liquid_handling/resources/hamilton/hamilton_decks.py +0 -170
  203. PyLabRobot-0.1.4/pylabrobot/liquid_handling/resources/hotel.py +0 -68
  204. PyLabRobot-0.1.4/pylabrobot/liquid_handling/resources/hotel_tests.py +0 -62
  205. PyLabRobot-0.1.4/pylabrobot/liquid_handling/resources/ml_star/plate_carriers.py +0 -318
  206. PyLabRobot-0.1.4/pylabrobot/liquid_handling/resources/ml_star/tip_carriers.py +0 -1198
  207. PyLabRobot-0.1.4/pylabrobot/liquid_handling/resources/ml_star/tip_racks.py +0 -185
  208. PyLabRobot-0.1.4/pylabrobot/liquid_handling/resources/ml_star/tip_types.py +0 -111
  209. PyLabRobot-0.1.4/pylabrobot/liquid_handling/resources/opentrons/deck.py +0 -60
  210. PyLabRobot-0.1.4/pylabrobot/liquid_handling/resources/plate_reader.py +0 -23
  211. PyLabRobot-0.1.4/pylabrobot/liquid_handling/resources/plate_reader_tests.py +0 -41
  212. PyLabRobot-0.1.4/pylabrobot/liquid_handling/resources/resource_stack.py +0 -90
  213. PyLabRobot-0.1.4/pylabrobot/liquid_handling/resources/resource_stack_tests.py +0 -56
  214. PyLabRobot-0.1.4/pylabrobot/liquid_handling/resources/tilt_module.py +0 -147
  215. PyLabRobot-0.1.4/pylabrobot/liquid_handling/standard.py +0 -106
  216. PyLabRobot-0.1.4/pylabrobot/utils/__init__.py +0 -16
  217. PyLabRobot-0.1.4/pylabrobot/utils/file_parsing.py +0 -31
  218. PyLabRobot-0.1.4/pylabrobot/utils/list.py +0 -42
  219. PyLabRobot-0.1.4/pylabrobot/utils/numbers.py +0 -8
  220. PyLabRobot-0.1.4/pylabrobot/utils/positions_tests.py +0 -51
  221. PyLabRobot-0.1.4/pylabrobot/utils/string.py +0 -25
  222. PyLabRobot-0.1.4/pylabrobot/utils/testing.py +0 -11
  223. PyLabRobot-0.1.4/setup.py +0 -78
  224. {PyLabRobot-0.1.4 → PyLabRobot-0.1.5}/LICENSE +0 -0
  225. {PyLabRobot-0.1.4 → PyLabRobot-0.1.5}/PyLabRobot.egg-info/dependency_links.txt +0 -0
  226. {PyLabRobot-0.1.4/pylabrobot/liquid_handling/resources/corning_costar → PyLabRobot-0.1.5/pylabrobot/resources/azenta}/__init__.py +0 -0
  227. {PyLabRobot-0.1.4/pylabrobot/liquid_handling → PyLabRobot-0.1.5/pylabrobot}/resources/opentrons/__init__.py +0 -0
  228. {PyLabRobot-0.1.4/pylabrobot/liquid_handling → PyLabRobot-0.1.5/pylabrobot}/resources/opentrons/load_tests.py +0 -0
  229. {PyLabRobot-0.1.4 → PyLabRobot-0.1.5}/setup.cfg +0 -0
@@ -0,0 +1,180 @@
1
+ Metadata-Version: 2.1
2
+ Name: PyLabRobot
3
+ Version: 0.1.5
4
+ Summary: A hardware agnostic platform for liquid handling
5
+ Home-page: https://github.com/pylabrobot/pylabrobot.git
6
+ Description-Content-Type: text/markdown
7
+ License-File: LICENSE
8
+ Requires-Dist: typing_extensions
9
+ Provides-Extra: fw
10
+ Requires-Dist: pyusb; extra == "fw"
11
+ Provides-Extra: http
12
+ Requires-Dist: requests; extra == "http"
13
+ Requires-Dist: types-requests; extra == "http"
14
+ Provides-Extra: plate-reading
15
+ Requires-Dist: pylibftdi; extra == "plate-reading"
16
+ Provides-Extra: websockets
17
+ Requires-Dist: websockets; extra == "websockets"
18
+ Provides-Extra: visualizer
19
+ Requires-Dist: websockets; extra == "visualizer"
20
+ Provides-Extra: venus
21
+ Requires-Dist: pyhamilton; extra == "venus"
22
+ Provides-Extra: opentrons
23
+ Requires-Dist: opentrons-http-api-client; extra == "opentrons"
24
+ Requires-Dist: opentrons-shared-data; extra == "opentrons"
25
+ Provides-Extra: server
26
+ Requires-Dist: flask[async]; extra == "server"
27
+ Provides-Extra: dev
28
+ Requires-Dist: pyusb; extra == "dev"
29
+ Requires-Dist: requests; extra == "dev"
30
+ Requires-Dist: types-requests; extra == "dev"
31
+ Requires-Dist: pylibftdi; extra == "dev"
32
+ Requires-Dist: websockets; extra == "dev"
33
+ Requires-Dist: websockets; extra == "dev"
34
+ Requires-Dist: opentrons-http-api-client; extra == "dev"
35
+ Requires-Dist: opentrons-shared-data; extra == "dev"
36
+ Requires-Dist: flask[async]; extra == "dev"
37
+ Requires-Dist: sphinx_book_theme; extra == "dev"
38
+ Requires-Dist: myst_nb; extra == "dev"
39
+ Requires-Dist: sphinx_copybutton; extra == "dev"
40
+ Requires-Dist: pytest; extra == "dev"
41
+ Requires-Dist: pytest-timeout; extra == "dev"
42
+ Requires-Dist: pylint; extra == "dev"
43
+ Requires-Dist: mypy; extra == "dev"
44
+ Requires-Dist: responses; extra == "dev"
45
+ Provides-Extra: all
46
+ Requires-Dist: pyusb; extra == "all"
47
+ Requires-Dist: requests; extra == "all"
48
+ Requires-Dist: types-requests; extra == "all"
49
+ Requires-Dist: pylibftdi; extra == "all"
50
+ Requires-Dist: websockets; extra == "all"
51
+ Requires-Dist: websockets; extra == "all"
52
+ Requires-Dist: opentrons-http-api-client; extra == "all"
53
+ Requires-Dist: opentrons-shared-data; extra == "all"
54
+ Requires-Dist: flask[async]; extra == "all"
55
+ Requires-Dist: sphinx_book_theme; extra == "all"
56
+ Requires-Dist: myst_nb; extra == "all"
57
+ Requires-Dist: sphinx_copybutton; extra == "all"
58
+ Requires-Dist: pytest; extra == "all"
59
+ Requires-Dist: pytest-timeout; extra == "all"
60
+ Requires-Dist: pylint; extra == "all"
61
+ Requires-Dist: mypy; extra == "all"
62
+ Requires-Dist: responses; extra == "all"
63
+ Requires-Dist: pyhamilton; extra == "all"
64
+
65
+ <div style="text-align: center" align="center">
66
+ <img width="400" src=".github/img/logo.png" />
67
+ <h1>PyLabRobot</h1>
68
+ </div>
69
+
70
+ [**Docs**](https://docs.pylabrobot.org) | [**Forum**](https://forums.pylabrobot.org) | [**Installation**](https://docs.pylabrobot.org/installation.html) | [**Getting started**](https://docs.pylabrobot.org/basic.html)
71
+
72
+ ## What is PyLabRobot?
73
+
74
+ PyLabRobot is a hardware agnostic, pure Python library for liquid handling robots and other lab automation equipment. Read [the paper](<https://www.cell.com/device/fulltext/S2666-9986(23)00170-9>) in Device.
75
+
76
+ ### Liquid handling robots
77
+
78
+ PyLabRobot provides a layer of general-purpose abstractions over robot functions, with various device drivers for communicating with different kinds of robots. Right now we only have drivers for Hamilton, Tecan and Opentrons liquid handling robots, but we will soon have drivers for many more. The Hamiton and Tecan backends provide an interactive firmware interface that works on Windows, macOS and Linux. The Opentrons driver is based on the [Opentrons HTTP API](https://github.com/rickwierenga/opentrons-python-api). We also provide a browser-based Visualizer which can visualize the state of the deck during a run, and testing backends which do not require access to a robot.
79
+
80
+ Here's a quick example showing how to move 100uL of liquid from well A1 to A2 using firmware on **Hamilton STAR** (this will work on any operating system!):
81
+
82
+ ```python
83
+ from pylabrobot import LiquidHandler
84
+ from pylabrobot.liquid_handling.backends import STAR
85
+ from pylabrobot.resources import Deck
86
+
87
+ deck = Deck.load_from_json_file("hamilton-layout.json")
88
+ lh = LiquidHandler(backend=STAR(), deck=deck)
89
+ await lh.setup()
90
+
91
+ await lh.pick_up_tips(lh.deck.get_resource("tip_rack")["A1"])
92
+ await lh.aspirate(lh.deck.get_resource("plate")["A1"], vols=100)
93
+ await lh.dispense(lh.deck.get_resource("plate")["A2"], vols=100)
94
+ await lh.return_tips()
95
+ ```
96
+
97
+ To run the same procedure on an **Opentrons**, change the following lines:
98
+
99
+ ```diff
100
+ - from pylabrobot.liquid_handling.backends import STAR
101
+ + from pylabrobot.liquid_handling.backends import OpentronsBackend
102
+
103
+ - deck = Deck.load_from_json_file("hamilton-layout.json")
104
+ + deck = Deck.load_from_json_file("opentrons-layout.json")
105
+
106
+ - lh = LiquidHandler(backend=STAR(), deck=deck)
107
+ + lh = LiquidHandler(backend=OpentronsBackend(host="x.x.x.x"), deck=deck)
108
+ ```
109
+
110
+ Or **Tecan** (also works on any operating system!):
111
+
112
+ ```diff
113
+ - from pylabrobot.liquid_handling.backends import STAR
114
+ + from pylabrobot.liquid_handling.backends import EVO
115
+
116
+ - deck = Deck.load_from_json_file("hamilton-layout.json")
117
+ + deck = Deck.load_from_json_file("tecan-layout.json")
118
+
119
+ - lh = LiquidHandler(backend=STAR(), deck=deck)
120
+ + lh = LiquidHandler(backend=EVO(), deck=deck)
121
+ ```
122
+
123
+ ### Plate readers
124
+
125
+ PyLabRobot also provides a layer of general-purpose abstractions for plate readers, currently with just a driver for the ClarioStar. This driver works on Windows, macOS and Linux. Here's a quick example showing how to read a plate using the ClarioStar:
126
+
127
+ ```python
128
+ from pylabrobot.plate_reading import PlateReader, ClarioStar
129
+
130
+ pr = PlateReader(name="plate reader", backend=ClarioStar())
131
+ await pr.setup()
132
+
133
+ # Use in combination with a liquid handler
134
+ lh.assign_child_resource(pr, location=Coordinate(x, y, z))
135
+ lh.move_plate(lh.deck.get_resource("plate"), pr)
136
+
137
+ data = await pr.read_luminescence()
138
+ ```
139
+
140
+ ## Resources
141
+
142
+ ### Documentation
143
+
144
+ [docs.pylabrobot.org](https://docs.pylabrobot.org)
145
+
146
+ - [Installation](https://docs.pylabrobot.org/installation.html)
147
+ - [Getting Started](https://docs.pylabrobot.org/basic.html)
148
+ - [Contributing](CONTRIBUTING.md)
149
+ - [API Reference](https://docs.pylabrobot.org/pylabrobot.html)
150
+
151
+ ### Support
152
+
153
+ - [forums.pylabrobot.org](https://forums.pylabrobot.org) for questions and discussions.
154
+ - [GitHub Issues](https://github.com/pylabrobot/pylabrobot/issues) for bug reports and feature requests.
155
+
156
+ ## Citing
157
+
158
+ If you use PyLabRobot in your research, please cite the following:
159
+
160
+ ```bibtex
161
+ @article{WIERENGA2023100111,
162
+ title = {PyLabRobot: An open-source, hardware-agnostic interface for liquid-handling robots and accessories},
163
+ journal = {Device},
164
+ volume = {1},
165
+ number = {4},
166
+ pages = {100111},
167
+ year = {2023},
168
+ issn = {2666-9986},
169
+ doi = {https://doi.org/10.1016/j.device.2023.100111},
170
+ url = {https://www.sciencedirect.com/science/article/pii/S2666998623001709},
171
+ author = {Rick P. Wierenga and Stefan M. Golas and Wilson Ho and Connor W. Coley and Kevin M. Esvelt},
172
+ keywords = {laboratory automation, open source, standardization, liquid-handling robots},
173
+ }
174
+ ```
175
+
176
+ ---
177
+
178
+ **Disclaimer:** PyLabRobot is not officially endorsed or supported by any robot manufacturer. If you use a firmware driver such as the STAR driver provided here, you do so at your own risk. Usage of a firmware driver such as STAR may invalidate your warranty. Please contact us with any questions.
179
+
180
+ _Developed for the Sculpting Evolution Group at the MIT Media Lab_
@@ -0,0 +1,180 @@
1
+ Metadata-Version: 2.1
2
+ Name: PyLabRobot
3
+ Version: 0.1.5
4
+ Summary: A hardware agnostic platform for liquid handling
5
+ Home-page: https://github.com/pylabrobot/pylabrobot.git
6
+ Description-Content-Type: text/markdown
7
+ License-File: LICENSE
8
+ Requires-Dist: typing_extensions
9
+ Provides-Extra: fw
10
+ Requires-Dist: pyusb; extra == "fw"
11
+ Provides-Extra: http
12
+ Requires-Dist: requests; extra == "http"
13
+ Requires-Dist: types-requests; extra == "http"
14
+ Provides-Extra: plate-reading
15
+ Requires-Dist: pylibftdi; extra == "plate-reading"
16
+ Provides-Extra: websockets
17
+ Requires-Dist: websockets; extra == "websockets"
18
+ Provides-Extra: visualizer
19
+ Requires-Dist: websockets; extra == "visualizer"
20
+ Provides-Extra: venus
21
+ Requires-Dist: pyhamilton; extra == "venus"
22
+ Provides-Extra: opentrons
23
+ Requires-Dist: opentrons-http-api-client; extra == "opentrons"
24
+ Requires-Dist: opentrons-shared-data; extra == "opentrons"
25
+ Provides-Extra: server
26
+ Requires-Dist: flask[async]; extra == "server"
27
+ Provides-Extra: dev
28
+ Requires-Dist: pyusb; extra == "dev"
29
+ Requires-Dist: requests; extra == "dev"
30
+ Requires-Dist: types-requests; extra == "dev"
31
+ Requires-Dist: pylibftdi; extra == "dev"
32
+ Requires-Dist: websockets; extra == "dev"
33
+ Requires-Dist: websockets; extra == "dev"
34
+ Requires-Dist: opentrons-http-api-client; extra == "dev"
35
+ Requires-Dist: opentrons-shared-data; extra == "dev"
36
+ Requires-Dist: flask[async]; extra == "dev"
37
+ Requires-Dist: sphinx_book_theme; extra == "dev"
38
+ Requires-Dist: myst_nb; extra == "dev"
39
+ Requires-Dist: sphinx_copybutton; extra == "dev"
40
+ Requires-Dist: pytest; extra == "dev"
41
+ Requires-Dist: pytest-timeout; extra == "dev"
42
+ Requires-Dist: pylint; extra == "dev"
43
+ Requires-Dist: mypy; extra == "dev"
44
+ Requires-Dist: responses; extra == "dev"
45
+ Provides-Extra: all
46
+ Requires-Dist: pyusb; extra == "all"
47
+ Requires-Dist: requests; extra == "all"
48
+ Requires-Dist: types-requests; extra == "all"
49
+ Requires-Dist: pylibftdi; extra == "all"
50
+ Requires-Dist: websockets; extra == "all"
51
+ Requires-Dist: websockets; extra == "all"
52
+ Requires-Dist: opentrons-http-api-client; extra == "all"
53
+ Requires-Dist: opentrons-shared-data; extra == "all"
54
+ Requires-Dist: flask[async]; extra == "all"
55
+ Requires-Dist: sphinx_book_theme; extra == "all"
56
+ Requires-Dist: myst_nb; extra == "all"
57
+ Requires-Dist: sphinx_copybutton; extra == "all"
58
+ Requires-Dist: pytest; extra == "all"
59
+ Requires-Dist: pytest-timeout; extra == "all"
60
+ Requires-Dist: pylint; extra == "all"
61
+ Requires-Dist: mypy; extra == "all"
62
+ Requires-Dist: responses; extra == "all"
63
+ Requires-Dist: pyhamilton; extra == "all"
64
+
65
+ <div style="text-align: center" align="center">
66
+ <img width="400" src=".github/img/logo.png" />
67
+ <h1>PyLabRobot</h1>
68
+ </div>
69
+
70
+ [**Docs**](https://docs.pylabrobot.org) | [**Forum**](https://forums.pylabrobot.org) | [**Installation**](https://docs.pylabrobot.org/installation.html) | [**Getting started**](https://docs.pylabrobot.org/basic.html)
71
+
72
+ ## What is PyLabRobot?
73
+
74
+ PyLabRobot is a hardware agnostic, pure Python library for liquid handling robots and other lab automation equipment. Read [the paper](<https://www.cell.com/device/fulltext/S2666-9986(23)00170-9>) in Device.
75
+
76
+ ### Liquid handling robots
77
+
78
+ PyLabRobot provides a layer of general-purpose abstractions over robot functions, with various device drivers for communicating with different kinds of robots. Right now we only have drivers for Hamilton, Tecan and Opentrons liquid handling robots, but we will soon have drivers for many more. The Hamiton and Tecan backends provide an interactive firmware interface that works on Windows, macOS and Linux. The Opentrons driver is based on the [Opentrons HTTP API](https://github.com/rickwierenga/opentrons-python-api). We also provide a browser-based Visualizer which can visualize the state of the deck during a run, and testing backends which do not require access to a robot.
79
+
80
+ Here's a quick example showing how to move 100uL of liquid from well A1 to A2 using firmware on **Hamilton STAR** (this will work on any operating system!):
81
+
82
+ ```python
83
+ from pylabrobot import LiquidHandler
84
+ from pylabrobot.liquid_handling.backends import STAR
85
+ from pylabrobot.resources import Deck
86
+
87
+ deck = Deck.load_from_json_file("hamilton-layout.json")
88
+ lh = LiquidHandler(backend=STAR(), deck=deck)
89
+ await lh.setup()
90
+
91
+ await lh.pick_up_tips(lh.deck.get_resource("tip_rack")["A1"])
92
+ await lh.aspirate(lh.deck.get_resource("plate")["A1"], vols=100)
93
+ await lh.dispense(lh.deck.get_resource("plate")["A2"], vols=100)
94
+ await lh.return_tips()
95
+ ```
96
+
97
+ To run the same procedure on an **Opentrons**, change the following lines:
98
+
99
+ ```diff
100
+ - from pylabrobot.liquid_handling.backends import STAR
101
+ + from pylabrobot.liquid_handling.backends import OpentronsBackend
102
+
103
+ - deck = Deck.load_from_json_file("hamilton-layout.json")
104
+ + deck = Deck.load_from_json_file("opentrons-layout.json")
105
+
106
+ - lh = LiquidHandler(backend=STAR(), deck=deck)
107
+ + lh = LiquidHandler(backend=OpentronsBackend(host="x.x.x.x"), deck=deck)
108
+ ```
109
+
110
+ Or **Tecan** (also works on any operating system!):
111
+
112
+ ```diff
113
+ - from pylabrobot.liquid_handling.backends import STAR
114
+ + from pylabrobot.liquid_handling.backends import EVO
115
+
116
+ - deck = Deck.load_from_json_file("hamilton-layout.json")
117
+ + deck = Deck.load_from_json_file("tecan-layout.json")
118
+
119
+ - lh = LiquidHandler(backend=STAR(), deck=deck)
120
+ + lh = LiquidHandler(backend=EVO(), deck=deck)
121
+ ```
122
+
123
+ ### Plate readers
124
+
125
+ PyLabRobot also provides a layer of general-purpose abstractions for plate readers, currently with just a driver for the ClarioStar. This driver works on Windows, macOS and Linux. Here's a quick example showing how to read a plate using the ClarioStar:
126
+
127
+ ```python
128
+ from pylabrobot.plate_reading import PlateReader, ClarioStar
129
+
130
+ pr = PlateReader(name="plate reader", backend=ClarioStar())
131
+ await pr.setup()
132
+
133
+ # Use in combination with a liquid handler
134
+ lh.assign_child_resource(pr, location=Coordinate(x, y, z))
135
+ lh.move_plate(lh.deck.get_resource("plate"), pr)
136
+
137
+ data = await pr.read_luminescence()
138
+ ```
139
+
140
+ ## Resources
141
+
142
+ ### Documentation
143
+
144
+ [docs.pylabrobot.org](https://docs.pylabrobot.org)
145
+
146
+ - [Installation](https://docs.pylabrobot.org/installation.html)
147
+ - [Getting Started](https://docs.pylabrobot.org/basic.html)
148
+ - [Contributing](CONTRIBUTING.md)
149
+ - [API Reference](https://docs.pylabrobot.org/pylabrobot.html)
150
+
151
+ ### Support
152
+
153
+ - [forums.pylabrobot.org](https://forums.pylabrobot.org) for questions and discussions.
154
+ - [GitHub Issues](https://github.com/pylabrobot/pylabrobot/issues) for bug reports and feature requests.
155
+
156
+ ## Citing
157
+
158
+ If you use PyLabRobot in your research, please cite the following:
159
+
160
+ ```bibtex
161
+ @article{WIERENGA2023100111,
162
+ title = {PyLabRobot: An open-source, hardware-agnostic interface for liquid-handling robots and accessories},
163
+ journal = {Device},
164
+ volume = {1},
165
+ number = {4},
166
+ pages = {100111},
167
+ year = {2023},
168
+ issn = {2666-9986},
169
+ doi = {https://doi.org/10.1016/j.device.2023.100111},
170
+ url = {https://www.sciencedirect.com/science/article/pii/S2666998623001709},
171
+ author = {Rick P. Wierenga and Stefan M. Golas and Wilson Ho and Connor W. Coley and Kevin M. Esvelt},
172
+ keywords = {laboratory automation, open source, standardization, liquid-handling robots},
173
+ }
174
+ ```
175
+
176
+ ---
177
+
178
+ **Disclaimer:** PyLabRobot is not officially endorsed or supported by any robot manufacturer. If you use a firmware driver such as the STAR driver provided here, you do so at your own risk. Usage of a firmware driver such as STAR may invalidate your warranty. Please contact us with any questions.
179
+
180
+ _Developed for the Sculpting Evolution Group at the MIT Media Lab_
@@ -0,0 +1,154 @@
1
+ LICENSE
2
+ README.md
3
+ setup.py
4
+ PyLabRobot.egg-info/PKG-INFO
5
+ PyLabRobot.egg-info/SOURCES.txt
6
+ PyLabRobot.egg-info/dependency_links.txt
7
+ PyLabRobot.egg-info/entry_points.txt
8
+ PyLabRobot.egg-info/requires.txt
9
+ PyLabRobot.egg-info/top_level.txt
10
+ pylabrobot/__init__.py
11
+ pylabrobot/__version__.py
12
+ pylabrobot/machine.py
13
+ pylabrobot/serializer.py
14
+ pylabrobot/heaters/__init__.py
15
+ pylabrobot/liquid_handling/__init__.py
16
+ pylabrobot/liquid_handling/errors.py
17
+ pylabrobot/liquid_handling/liquid_handler.py
18
+ pylabrobot/liquid_handling/liquid_handler_tests.py
19
+ pylabrobot/liquid_handling/standard.py
20
+ pylabrobot/liquid_handling/strictness.py
21
+ pylabrobot/liquid_handling/backends/USBBackend.py
22
+ pylabrobot/liquid_handling/backends/__init__.py
23
+ pylabrobot/liquid_handling/backends/backend.py
24
+ pylabrobot/liquid_handling/backends/chatterbox_backend.py
25
+ pylabrobot/liquid_handling/backends/chatterbox_backend_tests.py
26
+ pylabrobot/liquid_handling/backends/http.py
27
+ pylabrobot/liquid_handling/backends/http_tests.py
28
+ pylabrobot/liquid_handling/backends/opentrons_backend.py
29
+ pylabrobot/liquid_handling/backends/opentrons_backend_tests.py
30
+ pylabrobot/liquid_handling/backends/saver_backend.py
31
+ pylabrobot/liquid_handling/backends/serializing_backend.py
32
+ pylabrobot/liquid_handling/backends/serializing_backend_tests.py
33
+ pylabrobot/liquid_handling/backends/websocket.py
34
+ pylabrobot/liquid_handling/backends/websocket_tests.py
35
+ pylabrobot/liquid_handling/backends/hamilton/STAR.py
36
+ pylabrobot/liquid_handling/backends/hamilton/STAR_tests.py
37
+ pylabrobot/liquid_handling/backends/hamilton/VENUS.py
38
+ pylabrobot/liquid_handling/backends/hamilton/__init__.py
39
+ pylabrobot/liquid_handling/backends/hamilton/base.py
40
+ pylabrobot/liquid_handling/backends/hamilton/pump.py
41
+ pylabrobot/liquid_handling/backends/hamilton/tilt_module.py
42
+ pylabrobot/liquid_handling/backends/hamilton/vantage.py
43
+ pylabrobot/liquid_handling/backends/hamilton/vantage_tests.py
44
+ pylabrobot/liquid_handling/backends/tecan/EVO.py
45
+ pylabrobot/liquid_handling/backends/tecan/__init__.py
46
+ pylabrobot/liquid_handling/backends/tecan/errors.py
47
+ pylabrobot/liquid_handling/liquid_classes/__init__.py
48
+ pylabrobot/liquid_handling/liquid_classes/tecan.py
49
+ pylabrobot/liquid_handling/liquid_classes/hamilton/__init__.py
50
+ pylabrobot/liquid_handling/liquid_classes/hamilton/base.py
51
+ pylabrobot/liquid_handling/liquid_classes/hamilton/star.py
52
+ pylabrobot/liquid_handling/liquid_classes/hamilton/vantage.py
53
+ pylabrobot/plate_reading/__init__.py
54
+ pylabrobot/plate_reading/backend.py
55
+ pylabrobot/plate_reading/clario_star.py
56
+ pylabrobot/plate_reading/plate_reader.py
57
+ pylabrobot/plate_reading/plate_reader_tests.py
58
+ pylabrobot/powder_dispensing/__init__.py
59
+ pylabrobot/powder_dispensing/backend.py
60
+ pylabrobot/powder_dispensing/powder_dispenser.py
61
+ pylabrobot/powder_dispensing/powder_dispenser_tests.py
62
+ pylabrobot/pumps/__init__.py
63
+ pylabrobot/pumps/backend.py
64
+ pylabrobot/pumps/pump.py
65
+ pylabrobot/pumps/cole_parmer/__init__.py
66
+ pylabrobot/pumps/cole_parmer/masterflex.py
67
+ pylabrobot/resources/__init__.py
68
+ pylabrobot/resources/carrier.py
69
+ pylabrobot/resources/carrier_tests.py
70
+ pylabrobot/resources/container.py
71
+ pylabrobot/resources/coordinate.py
72
+ pylabrobot/resources/coordinate_tests.py
73
+ pylabrobot/resources/deck.py
74
+ pylabrobot/resources/deck_tests.py
75
+ pylabrobot/resources/errors.py
76
+ pylabrobot/resources/hamilton_parse.py
77
+ pylabrobot/resources/itemized_resource.py
78
+ pylabrobot/resources/itemized_resource_tests.py
79
+ pylabrobot/resources/liquid.py
80
+ pylabrobot/resources/petri_dish.py
81
+ pylabrobot/resources/petri_dish_tests.py
82
+ pylabrobot/resources/plate.py
83
+ pylabrobot/resources/plate_tests.py
84
+ pylabrobot/resources/powder.py
85
+ pylabrobot/resources/resource.py
86
+ pylabrobot/resources/resource_stack.py
87
+ pylabrobot/resources/resource_stack_tests.py
88
+ pylabrobot/resources/resource_tests.py
89
+ pylabrobot/resources/tip.py
90
+ pylabrobot/resources/tip_rack.py
91
+ pylabrobot/resources/tip_tests.py
92
+ pylabrobot/resources/tip_tracker.py
93
+ pylabrobot/resources/tip_tracker_tests.py
94
+ pylabrobot/resources/todo_generic_carrier.py
95
+ pylabrobot/resources/trash.py
96
+ pylabrobot/resources/trough.py
97
+ pylabrobot/resources/volume_functions.py
98
+ pylabrobot/resources/volume_functions_tests.py
99
+ pylabrobot/resources/volume_tracker.py
100
+ pylabrobot/resources/volume_tracker_tests.py
101
+ pylabrobot/resources/well.py
102
+ pylabrobot/resources/well_tests.py
103
+ pylabrobot/resources/azenta/__init__.py
104
+ pylabrobot/resources/azenta/plates.py
105
+ pylabrobot/resources/corning_axygen/__init__.py
106
+ pylabrobot/resources/corning_axygen/plates.py
107
+ pylabrobot/resources/corning_costar/__init__.py
108
+ pylabrobot/resources/corning_costar/plates.py
109
+ pylabrobot/resources/hamilton/__init__.py
110
+ pylabrobot/resources/hamilton/hamilton_deck_tests.py
111
+ pylabrobot/resources/hamilton/hamilton_decks.py
112
+ pylabrobot/resources/hamilton/vantage_decks.py
113
+ pylabrobot/resources/ml_star/__init__.py
114
+ pylabrobot/resources/ml_star/plate_carriers.py
115
+ pylabrobot/resources/ml_star/tip_carriers.py
116
+ pylabrobot/resources/ml_star/tip_creators.py
117
+ pylabrobot/resources/ml_star/tip_racks.py
118
+ pylabrobot/resources/opentrons/__init__.py
119
+ pylabrobot/resources/opentrons/deck.py
120
+ pylabrobot/resources/opentrons/deck_tests.py
121
+ pylabrobot/resources/opentrons/load.py
122
+ pylabrobot/resources/opentrons/load_tests.py
123
+ pylabrobot/resources/opentrons/plates.py
124
+ pylabrobot/resources/opentrons/tip_racks.py
125
+ pylabrobot/resources/porvair/__init__.py
126
+ pylabrobot/resources/porvair/plates.py
127
+ pylabrobot/resources/revvity/__init__.py
128
+ pylabrobot/resources/revvity/plates.py
129
+ pylabrobot/resources/tecan/__init__.py
130
+ pylabrobot/resources/tecan/plate_carriers.py
131
+ pylabrobot/resources/tecan/plates.py
132
+ pylabrobot/resources/tecan/tecan_decks.py
133
+ pylabrobot/resources/tecan/tecan_resource.py
134
+ pylabrobot/resources/tecan/tip_carriers.py
135
+ pylabrobot/resources/tecan/tip_creators.py
136
+ pylabrobot/resources/tecan/tip_racks.py
137
+ pylabrobot/resources/tecan/wash.py
138
+ pylabrobot/resources/thermo_fisher/__init__.py
139
+ pylabrobot/resources/thermo_fisher/troughs.py
140
+ pylabrobot/resources/vwr/__init__.py
141
+ pylabrobot/resources/vwr/troughs.py
142
+ pylabrobot/scales/__init__.py
143
+ pylabrobot/scales/mettler_toledo.py
144
+ pylabrobot/scales/scale.py
145
+ pylabrobot/scales/scale_backend.py
146
+ pylabrobot/utils/__init__.py
147
+ pylabrobot/utils/file_parsing.py
148
+ pylabrobot/utils/list.py
149
+ pylabrobot/utils/list_tests.py
150
+ pylabrobot/utils/positions.py
151
+ pylabrobot/utils/positions_tests.py
152
+ pylabrobot/visualizer/__init__.py
153
+ pylabrobot/visualizer/visualizer.py
154
+ pylabrobot/visualizer/visualizer_tests.py
@@ -0,0 +1,3 @@
1
+ [console_scripts]
2
+ lh-server = pylabrobot.server.liquid_handling_server:main
3
+ plr-gui = pylabrobot.gui.gui:main
@@ -1,71 +1,64 @@
1
+ typing_extensions
1
2
 
2
3
  [all]
4
+ pyusb
5
+ requests
6
+ types-requests
7
+ pylibftdi
8
+ websockets
9
+ opentrons-http-api-client
10
+ opentrons-shared-data
11
+ flask[async]
3
12
  sphinx_book_theme
4
13
  myst_nb
5
14
  sphinx_copybutton
6
- websockets
7
- requests
8
15
  pytest
9
16
  pytest-timeout
10
17
  pylint
11
- opentrons-http-api-client
12
- opentrons-shared-data
18
+ mypy
19
+ responses
13
20
  pyhamilton
14
- flask
15
- wtforms
16
- wtforms_json
17
- pyusb
18
21
 
19
22
  [dev]
20
- sphinx_book_theme
21
- myst_nb
22
- sphinx_copybutton
23
- websockets
23
+ pyusb
24
24
  requests
25
- pytest
26
- pytest-timeout
27
- pylint
25
+ types-requests
26
+ pylibftdi
27
+ websockets
28
28
  opentrons-http-api-client
29
29
  opentrons-shared-data
30
- flask
31
- wtforms
32
- wtforms_json
33
- pyusb
34
-
35
- [docs]
30
+ flask[async]
36
31
  sphinx_book_theme
37
32
  myst_nb
38
33
  sphinx_copybutton
34
+ pytest
35
+ pytest-timeout
36
+ pylint
37
+ mypy
38
+ responses
39
39
 
40
40
  [fw]
41
41
  pyusb
42
42
 
43
43
  [http]
44
44
  requests
45
+ types-requests
45
46
 
46
47
  [opentrons]
47
48
  opentrons-http-api-client
48
49
  opentrons-shared-data
49
50
 
50
- [server]
51
- flask
52
- wtforms
53
- wtforms_json
54
-
55
- [simulation]
56
- websockets
51
+ [plate_reading]
52
+ pylibftdi
57
53
 
58
- [testing]
59
- pytest
60
- pytest-timeout
61
- requests
62
- pylint
63
- websockets
64
- opentrons-http-api-client
65
- opentrons-shared-data
54
+ [server]
55
+ flask[async]
66
56
 
67
57
  [venus]
68
58
  pyhamilton
69
59
 
60
+ [visualizer]
61
+ websockets
62
+
70
63
  [websockets]
71
64
  websockets
@@ -1,2 +1 @@
1
- pygamepad
2
1
  pylabrobot