Library Downloads? (Requests)

Hi Max,

These two libraries have been uploaded to the shared folder!

Thanks,

-Eric

Again, thank you so much

1 Like

PyHamilton now ships with all of the .pkg (non-executable install) libraries that Eric posted. You can run pip install pyhamilton followed by pyhamilton-config and the libraries will be copied into your HAMILTON libraries folder.

1 Like

Just a quick note regarding Hamilton libraries. I assume everyone here is aware of the general rule regarding library installers (if it comes with an installer, it must be run, otherwise it won’t register any included DLLs), but for libraries provided as PKGs, there is an alternative approach for “installing” them automatically. Copy/Paste can result in incorrect directory references depending on the library itself and any differences in development environment (especially 32 vs 64 bit OS where Hamilton ends up in Program Files instead of Program Files (x86)) so if something is provided as a PKG file, it should be imported in most cases. This generally applies to all Methods and Submethod Libraries. Fortunately, VECTOR/VENUS comes with a command line tool for automatable importing of package files:

C:\Program Files (x86)\HAMILTON\Bin\HxMethodCopy.exe

You can find the help file in the same folder with all the available flags and examples, as well as how to use the tool to automatically generate Exports.

Is this a process that is already in use as part of the PyHamilton library installer? If not, I would recommend taking a look to see if it can help create a more robust install experience.

Sincerely,
William

2 Likes

Thanks that sounds very useful. Our copy+paste system definitely makes assumptions about the development environment (32 vs 64 bit) that could be problematic but I’ve never heard of a user encountering an issue with this. PyHamilton is only 32-bit compatible, which seems to cover almost everyone Ive encountered in the Hamilton user-space.

Are there other issues that you anticipate with a copy+paste approach? Maybe a moot point if these are already covered by the command-line tool you provide but I’m curious what there could be.

Hi Stefan,

We could have a number of issues in a copy/paste scenario depending on what is being copied and pasted. Most Libraries and Submethod Libraries should be fine as long as they are simple, but more complex ones that refer to other custom or optional libraries would rely heavily on either the user having pre-installed the prerequisites or on everything being copied along with the Submethod Library files. Meanwhile, an Export/Import would include all associated files and be able to work immediately as long as none of the libraries were based on a separate DLL dependency.

When it comes to Layouts, Methods, and Labware, which have a large number of relative and absolute paths referenced throughout, copying and pasting is usually a problem unless the source and target paths are absolutely identical, which isn’t the case if you’re trying to reuse a piece of Labware or Library across all our software platforms that are VECTOR-based (NimbusChannel, Nimbus8, VENUS) as at least one of them uses “Hamilton Company” instead of “HAMILTON” as the root directory for everything. This is also the case if you’re using a 32-bit version of Windows vs. 64-bit since our software installs to Program Files (x86) on 64-bit but it goes to Program Files on a 32-bit Windows OS. As someone who has used Git at one point for source control, I can say that in most cases it’s fine as long as the source and target environments are mirrored, but that is a lot to expect if you cannot control the import environment in all cases, so I only used Git for source control and never for deployment.

That being said, there are also times when copying and pasting is preferred over importing, especially when dealing with different versions of VECTOR. Importing a package file from VECTOR 4.3 to a VECTOR 4.5 install can result in different core libraries being analyzed (if “Include original Hamilton files” is checked), for which you would want to say “No to All” on overwriting these files. In some cases, “No to All” or “No” for overwriting files on Import will result in the files still being copied, but to the Methods directory instead, so you still have them in the Import but they are not replacing the existing versions. The problem is that the Methods may then pick up the presence of that library in the Methods folder (and not bother looking for it in the Library folder as a result) and result in various errors, usually shown as a syntax error in the method analysis step. It is therefore advised to clean up the Methods folder of any Library files after importing to make sure there are no duplicate libraries.

So, all in all, it’s not really a one-size-fits-all solution for either approach and should probably be evaluated in each case for minimizing potential complications. If you do run into issues using one approach, it’s good to have the alternative available.

~ William

2 Likes

Thats extremely informative, thank you!

We have also experienced that there can be problems if library files with the same name exist several times, e.g. in subfolders. Venus may then have problems with the assignment and use the wrong library file(s).

1 Like

Right, the common culprits are the ASW libraries. I uploaded a quick guide that provides an overview of the issue and correction. The software team is aware of the duplication issues so hopefully, it will be remedied in future versions of VENUS.

1 Like

This reminds me! Can you upload any better guides or help docs on utilizing the ‘HSLExtension’ library. Specifically some examples using the dictionary function.

1 Like

I’m sorry, but I don’t have any additional guides for the HSL Extensions library. I can have someone draft a demo method that provides more of an overview of the Dictionary function. I haven’t personally used that sub library, but then again, I don’t get to program as much as I used to!

1 Like

Please see this link for an example method showing off the Dictionary library. The example/use case in the demo method is a dictionary where the keys are barcodes (unique strings) and the values are Labware IDs, so it allows for sequence on the fly building based on barcode.

1 Like

Thanks for the quick guide! We struggled with this particular issue before, and it was hard to troubleshoot when I didn’t know what was causing it specifically.

1 Like

If anyone has access to the library for integrating the Hamilton pH module could you please post it or send it to me at stefanmgolas@gmail.com? Thanks

I can assist, but please note that the library version you use is dependent on the revision number of the modules. I uploaded both to the shared folder here.

2 Likes

Thank you!

@EricSindelar_Hamilton please load Unit Test Framework library mentioned in another thread

I’m not familiar with that library (perhaps it is a method?), but I will do some digging.

@EricSindelar_Hamilton Is there a library to highlight labware positions with track numbers to help user identify loading positions? I believe it’s similiar to the Visual_NTR_Library, but this one is geared more towards plates. Thanks.

There are a few libraries that may help - hopefully, one of them will suffice for your needs! I have uploaded them here.

  • Plate Editor library - displays a 96-well plate to allow well selection
  • Visual Plate Stacker Library - similar to the NTR library that shows placement and tracks for stacked labware and helps with sorting input and output stack sequences
  • Deck Loading Instructions - smt library that automatically creates custom dialogs showing placement of carriers/labware
  • HSL Deck Visualize - default library that comes with VENUS to highlight labware in the run control deck view during runtime
1 Like