-
Notifications
You must be signed in to change notification settings - Fork 10
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
HW: Folder restructuring #138
HW: Folder restructuring #138
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this kind of organization makes a lot of sense. One question that it raises is whether to include the subpackage names (cameras
, daqs
, filters
, etc) in the module names (e.g. orca_camera
vs orca
, ni_daq
vs ni
, etc). I don't have strong opinion but would generally favor not including the subpackage names, since I think the directory structure and import statements are sufficiently unambiguous. The one thing I feel strongly about is to pick a convention and enforce it (which would potentially mean, in this PR, renaming orca_camera
to orca
and asi_stage
to asi
).
A related issue is the specificity of the device subpackage names. It may be wise to include some model number or version in the interest of avoiding future namespace collisions. For example, this could mean using something more specific than asi
for the ASI stage. But I can imagine the trade-off between specificity and verbosity is device-dependent, so it's hard to define conventions for this.
I totally agree with you. I will make updates accordingly(like renaming
Specificity won't be easy to clarify with subpackage names as you pointed out. I am more inclined to being less verbose and more generic(given what I saw from vendor drivers). Possibly this issue deserves a bigger independent discussion. I am also open to evaluate subpackages case-by-case. |
I do like this naming convention. I would further add that the subpackage names should match the names of the abstract classes we implement, as we discussed in #136. This may mean renaming I'm not sure how to deal with things like pumps - maybe we should have a |
I am open to rename subpackages @ieivanov. Also, the names chosen in this PR doesn't need to be final. As we have implementations and abstract classes, we can refactor subpackage names as needed.
I would like to avoid |
I didn't think of that. Let's stick with
It's true that filters would cover most of the devices in this category. Another example of a state device would be a flip mirror, which is not exactly a filter. But maybe it's better to stick with a more descriptive name like filters rather than a more general name like state_devices.
Good point! |
I will merge this PR with
I didn't think of that. Do you have a flip mirror that we can write an adapter for? If so let's make an issue on it and add it. After we see device adapter implementations for filterwheels and flip mirrors it might be easier to merge everything together into a single subpackage. |
This PR restructures the folder in hardware subpackage. The proposed structure is not necessarily final, can be subject to change in the future. Also, this PR creates the first abstract class for camera subpackage (whose content can be populated in another PR). @keithchev and @ieivanov please let me know what do you think on the subfolder structure I introduced here.