Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

re-add hamilton liquid classes export kwargs #270

Closed
wants to merge 1,374 commits into from
Closed

Conversation

rickwierenga
Copy link
Member

same as #248 (reverted) and same as #265 (rename branch)

lennijusten and others added 30 commits May 1, 2024 11:12
…ends (#120)

* implemented calibrations, PumpArrays, and the backend for Agrow Dose Pumps

* implemented calibrations, PumpArrays, and the backend for Agrow Dose Pumps

* implemented unit tests for calibrations, pumps, and pump arrays, debugged and cleaned code

* debugged agrowtek pump functionality and validated expected operation

* remove unnecessary print statement

* Make formatting consistent

* make formatting consistent

* check single value when using calibration with single pump

* more formatting

* resolved pull request issues and cleaned up code

* added agrowpumps requirements to setup

* formatting & fix tests

* modified Calibration so class methods take calibration_mode as well, raise an error if it is not 'revolutions' or 'duration' and added tests to validate it's implementation. Also changed the csv processing to allow for single and two-column csv inputs, and added test csvs to validate it's performance

* changed agrowdosepump to use AsyncModbusClient appropriately, ensured that pumps ran as expected, and also brought agrowdosepump_tests into agreement

* Fix logger error in keep alive thread and disable pylint warning

* fix some typing errors & formatting

* remove single column csv support

* Refactor PumpArray class initialization and add new parameters in pumparray.py to bring it in line with the Pump class

* Refactor PumpArray class initialization and
associated tests and add new parameters in
pumparray.py to bring it in line with the Pump
class

* Refactor PumpArray class initialization and add new parameters in pumparray.py to bring it in line with the Pump class

* Fix calibration_mode attribute access in PumpArray class

* Add serialize method to AgrowPumpArray and Masterflex classes

* Fix calibration_mode attribute access in PumpArray class

* Add serialize and deserialize method to Machine and MachineBackend, with processing to handle backend instantiating, and edited all associated MachineBackend subclasses

* Update inheco.py

* Add get_resource_class_from_string function to Machine and MachineBackend. Also added rotation variable to machine_tests

* Update Machine and MachineBackend to use find_subclass function for backend subclass lookup, as get_class_from_string imported from resources produces typing related issues

* Update serialization and deserialization methods in LiquidHandlerBackend and STAR classes to reflect that custom methods are no longer needed

* Update serialization and deserialization methods in LiquidHandlerBackend and STAR classes to reflect changes in find_subclass function introduced in utils and removal of custom methods. Also added handling for USBBackend.

* Update typing imports in backend.py, STAR_tests.py, machine.py, and resource.py

* Refactor typing imports in liquid_handler.py and update serialization and deserialization methods in LiquidHandlerBackend and STAR classes

* Update machine.py

* Machine.__init__ not abstract

* Update agrowdosepump.py

---------

Co-authored-by: Rick Wierenga <[email protected]>
* Cos_6_Fb base definition

* Cos_6_Fb PLR integration

* polishing definition

* generate README for Corning-Costar labware

* minor formatting

---------

Co-authored-by: Rick Wierenga <[email protected]>
…occupacy (#127)

* Add "__repr__" to itemized_resource, displaying a grid of occupied/free spots

Example output:

```
12x8 TipRack
    1  2  3  4  5  6  7  8  9  10 11 12
A:  -  -  -  -  -  -  -  -  -  -  -  -
B:  -  -  -  -  -  -  -  -  -  -  -  -
C:  -  -  -  -  -  -  -  -  -  -  -  -
D:  -  -  -  -  -  -  -  -  -  -  -  -
E:  -  -  -  -  -  -  -  -  -  -  -  -
F:  -  -  -  -  -  -  -  -  -  -  -  -
G:  -  -  -  -  -  -  -  -  -  -  -  -
H:  -  -  -  -  -  -  -  -  -  -  -  -
```

* Add LETTERS

* linter errors

* fix type checking

* fix type checking again

pylabrobot/resources/itemized_resource.py:390: error: Incompatible types in assignment (expression has type "str", variable has type "list[list[str]]")  [assignment]
pylabrobot/resources/itemized_resource.py:393: error: Unsupported operand types for + ("str" and "list[list[str]]")  [operator]

* replace __repr__ with print_grid

makes more sense, and is required because there is no way for itemizedresource way to know how to check for or represent the items from classes inheriting from it (see comments in code)

* add footer

* _occupied_func: replace Resource hint with T

"T is a placeholder for the resource that is "itemized" by ItemizedResource. It is TipSpot for TipRack, Well for Plate, and Tube (soon TubeSpot) for TubeRacks"

* Add _occupied_func method to TipRack

This overrides _occupied_func in ItemizedResource, making print_grid informative about tips in tipspots

* linter fixes

* fix typo
* Alpaqua MAGNUM FLX definition verification

* correcting unnecessary wildcard import

* correcting missing Coordinate import

* only allow V and U bottom plates

* fix type / only take plates …

---------

Co-authored-by: Rick Wierenga <[email protected]>
* PLT_CAR_L4_SHAKER definition

* Make PLT_CAR_L4_SHAKER a MFXCarrier

* Polish PLT_CAR_L4_SHAKER
…#132)

* Added functions to TubeRack and Tube and added them to the visualizer

* minor formatting

---------

Co-authored-by: Joe Laforet <joelaforet@JLaforetLaptop>
Co-authored-by: Rick Wierenga <[email protected]>
…) calls. (#134)

* Added functions to TubeRack and Tube and added them to the visualizer

* fixed bug in remove_liquid() and add_liquid() not updating on the visualizer

* linting

---------

Co-authored-by: Joe Laforet <joelaforet@JLaforetLaptop>
Co-authored-by: Rick Wierenga <[email protected]>
* ThermoScientific_96_1200ul_Rd integration

* adding docstring with useful information in the field

* fixing linting
* implementing height functions (3 / 5)

* fixing type checking

* fixing int 0

* fixing linting

* two more height functions

* enhancing_height_of_volume_in_spherical_cap

added docstring and ValueError in case liquid_volume given exceeds volume of spherical cap (useful when used as a standalone function, redundancy in height_functions)

---------

Co-authored-by: Rick Wierenga <[email protected]>
… PumpCalibration (#140)

* feat: Add serialization and deserialization methods to Pump, PumpArray, and PumpCalibration to allow for calibrations to be serialized and deserialized separately and within instances of pumps.

The commit adds serialization and deserialization methods to the `Pump`, `PumpArray`, and 'PumpCalibration' classes. These methods allow instances of the classes to be converted to and from a dictionary representation, making it easier to store and retrieve their state. This feature improves the flexibility and usability of the classes.

* minor formatting

---------

Co-authored-by: Rick Wierenga <[email protected]>
* Well compute_height_from_volume integration

* add tolerance explanation

* fix linting
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.