-
Notifications
You must be signed in to change notification settings - Fork 109
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
PyDevice PR #414
PyDevice PR #414
Conversation
the numpy install is not neccesarily in the previously defined path
@tlambert03 Thank you for the suggestion. I've added support for annotated_types so that you can use Ge, Le, Interval and Unit. @henrypinkard Thanks for all the feedback. I fixed most of the issues:
Remaining issues that we should think about a bit more:
|
I think this is more than ready to merge and get to next steps at this point. @marktsuchida last things:
I'm happy to take care of this--seems straightforward unless there's something I'm missing. @IvoVellekoop Can you remind me since I've lost track--is there any preferred version of python/numpy this must build with?
I don't understand why this would be an issue, since the .girignore is in a subdirectory. But seems like something that need not block merge for now? |
@henrypinkard Thanks for the nudge. I've already started to add Python to 3rdpartypublic and check the build. Should be ready today. The .gitignore in question is not in a subdirectory. |
We do not want to ignore all .dll files in the repo currently.
@IvoVellekoop I notice that stable.cpp is not included in the vcxproj. Is this intentional? (It also looks like a copy of stable.cpp went to |
Python (3.9, Windows x64) Hope you don't mind I pushed 2 commits, one to update this path and another to fix the .gitignore issue. As far as I'm concerned, the only thing blocking the merge is the stable.cpp file situation (see above). Thanks for your patience with this process. |
@marktsuchida. Good to hear that PyDevice is about to be merged, thanks for the help! I was not aware of any changes in the global .gitignore. If we made changes, they were not intentional and should indeed be reverted. As for the path of python39.lib, that makes sense. I've modified the build instructions in README.md accordingly. stable.cpp was listed as a Resource file rather than a Source file in vcxproj.filters. I fixed it now. There should definitely not be a copy of it in 'enc_temp_folder'. It may be something that Visual Studio did, but it was not intentional. I've removed the file from the repo. @henrypinkard PyDevice does not rely on any specific version of Python anymore. However, for building we need |
Thanks, @IvoVellekoop! Looking forward to working together more after the merge. Thanks again for your major contribution. |
It looks like the CI job needed to pick up this change in the main micro-manager repo is not running (stuck on "Waiting for a runner to pick up this job..." for over 30 min). EDIT: This is now resolved. |
@marktsuchida I just pulled the latest 3rd_party_public but did not see the python .lib file in there as described in instructions. Is is possible you did not commit this? (Not sure how this would be correctly building if so...). Any thoughts? |
@henrypinkard It's there, otherwise the build wouldn't work.... The latest revision is 3rdpartypublic r217 (not 3rd_party_public). $ ls Python/cp39-win_amd64/libs
_tkinter.lib python3.lib python39.lib |
Huh, weird that I didn't see it. Does that trac website where one can view this repo still exist or is the only way to inspect to pull to local? |
For now, https://valelab4.ucsf.edu/svn/3rdpartypublic/Python/cp39-win_amd64/ (certificate is currently expired). |
Was this resolved now? I've cloned the repo and built from scratch this morning to confirm that only python39.lib is needed. So that file indeed needs to be included in the 3rdpartypublic\Python\cp39-win_amd64 folder of the repo if we want developers to build this code out of the box. |
As far as I can tell, there never was a problem: the files are already in 3rdpartypublic (r217 and later). The automated build is already using those files to produce the PyDevice DLL shipped with the nightly build. |
I think this must have been a problem with my subversion client, since the file is there. We were able to build a new version of it, though there were some difficulties along the way to getting the runtime version of python to work. I'll make a new post with details shortly |
Hi all, I've made a new repository (https://github.com/micro-manager/pymmdevice) to house discussions and development of this project moving forward. I look forward to more good discussions there! |
PyDevice is an adapter that imports objects from a Python script and integrates them into MicroManager as devices (e.g. a camera or a stage). This integration enables the use of Python scripts to control microscope hardware, without requiring any programming experience from the end user. Essentially, PyDevice acts as a translator, allowing Python-developed objects to be used in MicroManager with almost no interfacing code required.
We have spent a while working with it and integrating it with our OpenWFS framework. The idea is that both developers and users can have the control they require, without sacrificing modularity and development speed. The OpenWFS repo: https://github.com/IvoVellekoop/openwfs also contains some more advanced devices, such as a laser-scanning object that functions as a MicroManager camera.
We recommend the README.md or example_devices/PyDevice.md as starting points.
It was built by Ivo Vellekoop and Jeroen Doornbos, please let us know what you think! We are very interested in your insights.